Free software

archelon

Your own fediverse server, in one binary.

A fediverse server for a single person, which speaks the same API as Mastodon without being a fork of it: you keep using the client you already have.

Install See the code on GitLab

Terminal on GNOME with archelon running: the instance folder with the binary, the configuration file, the SQLite database and a backup, and the server log running.

An instance in three commands

init creates the configuration, the database and the account keys, passwd sets the login password and serve starts the server. No PostgreSQL, Redis or Node: just one configuration file, one SQLite file and one media folder.

Terminal with archelon init creating the instance, with the paths of the configuration, database and media, and archelon passwd setting the login password.

Mastodon clients just work

Tusky, Ice Cubes, Phanpy, Elk and Toot! point at the instance domain and sign in through the usual OAuth flow: you type the account password and see what the app asks for before authorising it.

GNOME Web with archelon's Authorise app page, in Portuguese: toot asks for access to read everything, post and follow accounts, with the Authorise and Deny buttons.

A profile page

Whoever opens the account's address in a browser finds the profile, with the avatar, header, bio and fields taken from the configuration file, and the post and follower counts. To follow, they look the account up in their own app.

GNOME Web with the public profile of @demo@exemplo.org on archelon, in Portuguese: a header with a mountain at sunset, a grey cat as the avatar, the bio, the Site and Photos fields, and the post and follower counts.

The same API for scripts

token create issues a token with the scopes you choose, and any tool that speaks HTTP uses the instance's Mastodon API.

Terminal with archelon token create issuing a read and write token and curl using it to fetch the account from the Mastodon API.

Backup and restore in a single file

archelon backup packs the database, media, keys and configuration into one .tar.gz without stopping the server, and restore puts it back into a fresh folder. If you come from Mastodon, you import the profile and posts from the exported archive.

Terminal with archelon backup producing a .tar.gz file and ls showing its size.

More features

Federated

Full ActivityPub, with WebFinger, HTTP signatures, inbox and outbox and NodeInfo, talking to Mastodon, GoToSocial, Akkoma, Misskey and the rest of the fediverse.

One account only

The instance hosts exactly one account, yours, with no sign-ups, invites or third-party moderation.

Everything in a file

The service and the account profile live in one configuration file that can be versioned and reproduced.

Maintenance from the command line

cache clean deletes the thumbnails of remote media, and statuses prune and accounts prune remove old remote posts and accounts that nothing of yours points at, with the rules of Mastodon's tootctl.

About the project

archelon is an ActivityPub server for people who want their own instance without running a Mastodon. It is a single binary with one configuration file, one SQLite file and one media folder: no PostgreSQL, Redis, Sidekiq or Node.

It is not a fork of Mastodon but an independent implementation of the same API. There is no web interface: the front end is the client you prefer, and the only pages it serves are those of the OAuth authorisation flow and the account's public profile. It also deliberately leaves out local copies of remote media, link preview cards and anything that needs ffmpeg.

Federation is tested in containers, both ways, against twelve servers: Mastodon, GoToSocial, Akkoma, Pixelfed, Sharkey, Mitra, Iceshrimp.NET, Friendica, Lemmy, PieFed, Mbin and NodeBB.

Technologies

Rust, in a single binary, with SQLite for data and a folder for media.

License: AGPL-3.0-or-later

Sample material shown in the screenshots:

Install archelon

To build, you need Rust 1.90 or newer.

From a release

A static binary with no system dependencies, also for ARM64 (swap amd64 for arm64). The package carries the example configuration, the man page and the systemd unit.

curl -LO https://gitlab.com/alteronauta/archelon/-/releases/26.10.3/downloads/archelon-26.10.3-linux-amd64.tar.gz
curl -LO https://gitlab.com/alteronauta/archelon/-/releases/26.10.3/downloads/SHA256SUMS
sha256sum --check --ignore-missing SHA256SUMS
tar xzf archelon-26.10.3-linux-amd64.tar.gz
install -D archelon-26.10.3-linux-amd64/archelon ~/.local/bin/archelon

From source

git clone https://gitlab.com/alteronauta/archelon.git && cd archelon
cargo build --release --locked
install -D target/release/archelon ~/.local/bin/archelon

After installing, archelon init, archelon passwd and archelon serve create and start the instance. The fediverse only federates over HTTPS, so it needs a domain with a reverse proxy in front; the step-by-step, with systemd and a container, is in the install documentation.

Tell us what you need to solve.

adriano@ars.tec.br

@adriano@ars.tec.br