Self-host snac
2.92Minimal Fediverse server in portable C with Mastodon API
- Port
- 8001 (TCP socket the snac daemon listens on in the documented examples (proxy by nginx/Apache/httpd for TLS))
What is snac?
snac (Social Networks Are Crap) is a Fediverse server: one small daemon speaking ActivityPub so an individual or a small group can run their own instance and exchange posts with Mastodon, Pleroma, Friendica and other systems. The code is plain C with only OpenSSL and curl needed at build time, everything is kept as files in a base directory rather than in a database, and the browser side is free of JavaScript and cookies while offering public, private and instance timelines that render conversations as nested trees. Writing supports a Markdown-like subset, media attachments, polls, drafts, scheduled publishing, content warnings and public / unlisted / followers-only / direct scopes; users can follow, mute, hide, limit or block accounts, admins can block whole instances, hashtags can be followed or blocked, and incoming post content can be filtered with regular expressions. From version 2.27 an optional Mastodon API lets third-party mobile and desktop clients connect with an API token, and bookmarks, lists and follows can be exported or imported as Mastodon-compatible CSV, including migrating an account away to Mastodon. Installation is make plus make install, then snac init <basedir>, snac adduser and snac httpd <basedir>, with nginx, Apache2 or OpenBSD httpd in front for TLS; tuning happens in server.json, and notifications can go out by email, webhook, Telegram or ntfy. The bundled docker-compose setup is only meant for development and testing, and the storage layout relies on a filesystem with hard-link support.
Should you self-host snac?
snac scores 61/100 on selfhost.directory (how scoring works) and ranks #18 of 69 in Social Networks & Forums.
There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.
Setup is advanced: plan for several services and some ongoing maintenance. It is MIT-licensed.
Its closest alternative on selfhost.directory is Discourse (83/100, 48 024 stars). It scores higher overall, so compare the two before you pick. See snac vs Discourse side by side.
Features
- ActivityPub Federation
- Content warnings
- Hashtag following and blocking
- Mastodon API supportOptional at build time via -DNO_MASTODON_API
- Mastodon-compatible import/export
- Media attachments
- Multi-user support
- Nested conversation threads
- No Database Required
- Notifications
- Polls
- Post visibility levels
- Scheduled posts
- Web Interface
How to install snac
Install snac with Build from Source
DEBUG, SNAC_BASEDIR, EDITOR, LANGRequirements:
apt install libssl-dev libcurl4-openssl-dev # as root
Build and install:
make
make install # as root
Then `snac init <basedir>`, `snac adduser` and `snac httpd <basedir>` behind a TLS reverse proxy.
More in Microblogging
TakahēSelf-hosted open-source ActivityPub server for microblogging with multi-domain and multi-identity support, Mastodon API compatible.
yarn.socialYarn.social is a decentralized, self-hosted social media platform based on the Twtxt format, focusing on privacy and user control.
AkkomaAkkoma is a federated social networking platform compatible with Mastodon and other ActivityPub implementations, focusing on custom expression and performance.
BroadcastChannelSelf-hosted, open-source Astro site that mirrors a public Telegram channel as a microblog with RSS, sitemap, reactions, comments and zero browser-side JS.
Ech0Self-hosted, open-source microblog platform for publishing short posts, links, and media to a personal timeline, with RSS, comments, OAuth/OIDC login, and an AI copilot.
Glitch-SocMastodon Glitch Edition is a self-hosted, open-source ActivityPub microblogging server adding experimental features like Markdown posts and advanced theming to Mastodon.
HolloHollo is a self-hosted, open-source ActivityPub microblogging server for single users that implements the Mastodon API so you can use any compatible client.
Iceshrimp.NETIceshrimp.NET is a decentralized and federated social networking service implementing the ActivityPub standard, with a focus on performance, stability, and maintainability.
MastodonOpen-source self-hosted microblogging server that federates over ActivityPub, with chronological timelines, media posts, moderation tools and an OAuth2 REST API.
MisskeyOpen-source ActivityPub software for running your own social network: self-hosted servers with notes, reactions, custom emojis, and roles.
PleromaPleroma is a lightweight fediverse server compatible with other Fediverse software such as Mastodon, Misskey, and Pixelfed.
ShaarliThe personal, minimalist, super-fast, database free, bookmarking service - community repo

0 comments