Código livre

archelon

Seu servidor do fediverso, num binário só.

Um servidor do fediverso para uma única pessoa, que fala a mesma API do Mastodon sem ser um fork dele: você segue usando o cliente que já tem.

Instalar Ver o código no GitLab

Terminal no GNOME com o archelon rodando: a pasta da instância com o binário, o arquivo de configuração, o banco SQLite e um backup, e o registro do servidor no ar.

Uma instância em três comandos

init cria a configuração, o banco e as chaves da conta, passwd define a senha de login e serve sobe o servidor. Sem PostgreSQL, Redis nem Node: só um arquivo de configuração, um SQLite e uma pasta de mídia.

Terminal com o archelon init criando a instância, com os caminhos da configuração, do banco e da mídia, e o archelon passwd definindo a senha de login.

Os clientes do Mastodon já funcionam

Tusky, Ice Cubes, Phanpy, Elk e Toot! apontam para o domínio da instância e entram pelo fluxo OAuth normal: você digita a senha da conta e vê o que o aplicativo pede antes de autorizar.

GNOME Web com a página Autorizar aplicativo do archelon: o toot pede acesso para ler tudo, publicar e seguir contas, com os botões Autorizar e Negar.

Uma página de perfil

Quem abre o endereço da conta no navegador encontra o perfil, com avatar, cabeçalho, bio e campos tirados do arquivo de configuração, e a contagem de posts e seguidores. Para seguir, a pessoa busca a conta no aplicativo dela.

GNOME Web com o perfil público de @demo@exemplo.org no archelon: cabeçalho com uma montanha ao entardecer, avatar de um gato cinza, bio, os campos Site e Fotos e a contagem de posts e seguidores.

A mesma API para scripts

token create emite um token com os escopos que você escolher, e qualquer ferramenta que fale HTTP usa a API do Mastodon da instância.

Terminal com o archelon token create emitindo um token de leitura e escrita e o curl usando esse token para consultar a conta na API do Mastodon.

Backup e restauração num arquivo só

archelon backup junta banco, mídia, chaves e configuração num .tar.gz, sem parar o servidor, e restore o devolve numa pasta nova. Quem vem do Mastodon importa o perfil e as postagens do arquivo exportado.

Terminal com o archelon backup gerando um arquivo .tar.gz e o ls mostrando o tamanho dele.

Mais recursos

Federado

ActivityPub completo, com WebFinger, assinaturas HTTP, caixas de entrada e saída e NodeInfo, conversando com Mastodon, GoToSocial, Akkoma, Misskey e o resto do fediverso.

Uma conta só

A instância hospeda exatamente uma conta, a sua, sem cadastros, convites nem moderação de terceiros.

Tudo em arquivo

O serviço e o perfil da conta ficam num arquivo de configuração que pode ser versionado e reproduzido.

Manutenção pela linha de comando

cache clean apaga as miniaturas de mídia remota, e statuses prune e accounts prune removem postagens e contas remotas antigas que nada seu referencia, com as regras do tootctl do Mastodon.

Sobre o projeto

O archelon é um servidor ActivityPub para quem quer ter a própria instância sem administrar um Mastodon. É um binário só, com um arquivo de configuração, um arquivo SQLite e uma pasta de mídia: sem PostgreSQL, Redis, Sidekiq nem Node.

Ele não é um fork do Mastodon, e sim uma implementação independente da mesma API. Não tem interface web: o front-end é o cliente que você preferir, e as únicas páginas servidas são as do fluxo de autorização OAuth e o perfil público da conta. Também deixa de fora, de propósito, cópia local de mídia remota, cartões de prévia de links e tudo o que depende do ffmpeg.

A federação é testada em contêineres, nos dois sentidos, contra doze servidores: Mastodon, GoToSocial, Akkoma, Pixelfed, Sharkey, Mitra, Iceshrimp.NET, Friendica, Lemmy, PieFed, Mbin e NodeBB.

Tecnologias

Rust, num único binário, com SQLite para os dados e uma pasta para a mídia.

Licença: AGPL-3.0-or-later

Material de exemplo usado nas telas:

Instalar o archelon

Para compilar, precisa de Rust 1.90 ou mais novo.

Do binário publicado

Binário estático, sem dependências do sistema, também para ARM64 (troque amd64 por arm64). O pacote traz a configuração de exemplo, a página de manual e a unidade do systemd.

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

Do código-fonte

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

Depois de instalar, archelon init, archelon passwd e archelon serve criam e sobem a instância. O fediverso só federa por HTTPS, então ela precisa de um domínio com proxy reverso na frente; o passo a passo, com systemd e contêiner, está na documentação de instalação.

Conte o que você precisa resolver.

adriano@ars.tec.br

@adriano@ars.tec.br