Fedify

Running it

The habits that take a fedify app from federating to running in production — each with the manual page that covers it.

Split web and worker. Serve HTTP in one process; run the queue with manuallyStartQueue + startQueue in another. Both Hollo and Hackers' Pub converged on this after slow federation work degraded user-facing requests. manual/mq · manual/deploy.

Behind a proxy, pin the origin. Set the origin option (or the x-forwarded-fetch middleware) so signatures verify against your public URL rather than the rewritten internal Host. manual/federation.

Leave the safety rails on. Signature verification is on by default (manual/inbox); the document loader refuses private addresses (manual/federation § allowPrivateAddress). Both mark the line between "appears to work" and "is safe" — relax them only in tests (manual/test).

Debug with the CLI, lint in your editor. fedify lookup inspects any remote object, fedify inbox gives you a throwaway inbox, fedify tunnel exposes your dev server over HTTPS (CLI reference). The @fedify/lint plugin catches interop mistakes — a missing key pair, an outbox listener that never delivers — as you type (manual/lint). And DrFed, the team's dedicated ActivityPub debugger, is on the way.

Start from the tutorials, not the API reference. The basics tutorial and the federated microblog walk the whole path. There's an llms.txt if your editor's AI is doing the reading.


Back to Fedify