2022-09-26 00:22:12 +03:00
# snac
A simple, minimalistic ActivityPub instance
2023-02-05 13:23:10 +03:00
## Features
2022-09-26 00:22:12 +03:00
2022-10-30 09:10:19 +03:00
- Lightweight, minimal dependencies
- Extensive support of ActivityPub operations, e.g. write public notes, follow users, be followed, reply to the notes of others, admire wonderful content (like or boost), write private messages...
2022-11-04 11:50:52 +03:00
- Simple but effective web interface
2022-11-28 20:15:55 +03:00
- Multiuser
2022-09-26 00:22:12 +03:00
- Easily-accessed MUTE button to silence morons
2022-11-13 17:09:28 +03:00
- Tested interoperability with related software
2022-09-26 00:22:12 +03:00
- No database needed
2022-11-13 17:09:28 +03:00
- Totally JavaScript-free
2022-11-16 14:16:30 +03:00
- No cookies either
2022-09-26 00:22:12 +03:00
- Not much bullshit
2023-02-05 13:23:10 +03:00
## About
2022-09-26 00:22:12 +03:00
This program runs as a daemon (proxied by a TLS-enabled real httpd server) and provides the basic services for a Fediverse / ActivityPub instance (sharing messages and stuff from/to other systems like Mastodon, Pleroma, Friendica, etc.).
This is not the manual; man pages `snac(1)` (user manual), `snac(5)` (formats) and `snac(8)` (administrator manual) are what you are looking for.
`snac` stands for Social Networks Are Crap.
2023-02-05 13:23:10 +03:00
## Installation
2022-09-26 00:22:12 +03:00
This 2.x release is written in C (unlike the 1.x prototype, which was written in Python). The only external dependencies are `openssl` and `curl` .
On Debian/Ubuntu, you can satisfy these requirements by running
```
apt install libssl-dev libcurl4-openssl-dev
```
2022-11-09 08:23:55 +03:00
On OpenBSD you also need to install `curl` :
```
pkg_add curl
```
2022-09-26 00:22:12 +03:00
Run `make` and then `make install` as root.
See the administrator manual on how to proceed from here.
2023-02-05 13:23:10 +03:00
## Testing via Docker
2022-12-12 13:26:38 +03:00
A `docker-compose` file is provided for development and testing. To start snac with an nginx HTTPS frontend, run:
docker-compose build & & docker-compose up
This will:
- Start snac, storing data in `data/`
- Configure snac to listen on port 8001 with a server name of `localhost` (see `examples/docker-entrypoint.sh` )
- Create a new user `testuser` and print the user's generated password on the console (see `examples/docker-entrypoint.sh` )
- Start nginx to handle HTTPS, using the certificate pair from `nginx-alpine-ssl/nginx-selfsigned.*` (see `examples/nginx-alpine-ssl/entrypoint.sh` )
2023-02-05 13:23:10 +03:00
## License
2022-09-26 00:22:12 +03:00
See the LICENSE file for details.
2022-10-30 09:04:13 +03:00
2023-02-05 13:23:10 +03:00
## Author
2022-10-30 09:04:13 +03:00
grunfink @grunfink@comam .es