Documentation

Start here

Documentation is written the way the software is built: one page per job, no page pretending a decision is easier than it is. If something is not certified yet, it says so on the page where it matters.

Guides

The configuration file

One annotated TOML file holds everything. littlefedi init writes a working version of it and comments out what you skipped, so the file doubles as a reference for what you did not enable.

Sections of littlefedi.toml
SectionCovers
top levellocal_domain, web_domain, low_power, background_maintenance
[db]SQLite path or PostgreSQL DSN, pool sizing
[queue], [streaming]Delivery workers, retry behaviour, streaming backend
[http]Listener, proxy_uri, trusted_proxies
[media], [media.s3]Local or S3 storage, size limits, remote cache policy
[instance]Name, descriptions, rules, moderation contact, terms
[federation]Relays, signing options, sign_with_oip
[mesh], [lighthouse], [directory]littleMesh node, relay and directory roles
[web]Public local timeline, catch-up, interface options
[auth], [rate_limits]Registrations, approval, verified email, MFA, limits
[housekeeping], [backup], [cache]Retention sweeps, built-in backups, cache sizing
[blog]Static blog generation
[smtp], [push]Outgoing mail and Web Push
[observability]Metrics, profiler, log detail

Secrets do not belong in the TOML. Put them in a root-owned environment file next to it, with mode 0640:

LITTLEFEDI_AUTH_MFA_ENCRYPTION_KEY=<openssl rand -base64 32>
LITTLEFEDI_MEDIA_PROXY_SECRET=<openssl rand -hex 32>
LITTLEFEDI_SMTP_PASSWORD=<SMTP password>

Every configuration key has an environment-variable equivalent with the LITTLEFEDI_ prefix, which is what makes that split possible.

The command line

The same binary is the server and the administration tool. Run any command with --help for its full option list.

Command groups
CommandWhat it does
littlefediRuns the server with the given --config
initInteractive setup: instance or lighthouse, domains, proxy, littleMesh, instance profile
postPublishes standard input or a Markdown file, with visibility and blog options
adminAccounts, invitations, approval, suspension, domain blocks, relays, media, blogs, audit
backupbackup now and backup restore
meshid, peers, ping, publish
self-destructRetires an instance deliberately, instead of leaving debris on every peer
printf 'Hello\n' | ./littlefedi --config littlefedi.toml post
./littlefedi --config littlefedi.toml post --username alice \
  --markdown --visibility private post.md

./littlefedi --config littlefedi.toml admin create-user --username alice --admin
./littlefedi --config littlefedi.toml admin refresh-actors
./littlefedi --config littlefedi.toml backup now --media

About the source

Get the source archive and its SHA-256 checksum from the downloads directory. Each archive includes the build instructions, configuration examples, service files and licence notices.

Extract the archive and follow the installation guide. littleFedi is beta software; keep a backup before upgrading an existing instance.