Federation Guide
Rox is built on the ActivityPub protocol, allowing it to communicate and exchange content with thousands of other servers in the Fediverse (Federated Universe).
How Federation Works
When a user on your Rox instance follows a user on another server (e.g., mastodon.social), the servers exchange messages to:
- Subscribe: Your server asks the remote server to send updates.
- Deliver: When the remote user posts, their server pushes the activity to your server's Inbox.
- Process: Your server processes the activity and adds it to your user's timeline.
Supported Activities
Rox supports the following ActivityPub activities:
Create(Notes/Posts)Delete(Notes)Follow/Undo FollowLike/Undo LikeAnnounce(Renote/Boost)Update(Profile updates)
Configuration
Federation is enabled by default but can be configured in your .env file.
Basic Settings
# Enable/Disable Federation
FEDERATION_ENABLED=true
# Shared Inbox (Recommended for performance)
SHARED_INBOX_ENABLED=true
Allow/Block Lists
You can control which instances your server communicates with.
# Allow List (If set, only these domains are allowed)
FEDERATION_ALLOWLIST=mastodon.social,misskey.io
# Block List (These domains are blocked)
FEDERATION_BLOCKLIST=spam-instance.com,bad-actors.net
Discovery
WebFinger
Rox implements WebFinger (RFC 7033) to allow users to be discovered by their handle (e.g., @[email protected]).
Endpoint: /.well-known/webfinger?resource=acct:[email protected]
NodeInfo
Rox provides NodeInfo metadata to help other servers and crawlers understand your instance's capabilities and software version.
Endpoint: /.well-known/nodeinfo
Troubleshooting Federation
"Remote user not found"
- Verify the handle format:
@[email protected]. - Check if the remote instance is online.
- Ensure your server can make outbound HTTPS requests.
"Posts not arriving"
- Check your background job queue (BullMQ/Dragonfly). Federation delivery is asynchronous.
- Verify that your
SHARED_INBOXis accessible from the internet. - Check for signature verification errors in the logs.
"Signature verification failed"
- Ensure your system time is accurate (NTP).
- Check if your SSL certificate is valid.
- Verify that your instance keys were generated correctly during setup.