Post

Firefox Syncserver

Firefox Syncserver (syncstorage-rs) is Mozilla's own Rust server behind Firefox Sync, combining the sync storage and the tokenserver in one binary. Self-hosted, it keeps your Firefox bookmarks, history, passwords, open tabs, add-ons and form data on your own infrastructure, while you still sign in with a regular Mozilla account. Firefox encrypts every record before upload, so the server never sees their contents.

Firefox Syncserver
In Development
This script is currently in active development and may be unstable or incomplete. Use in production environments is not recommended.

Installation

Default install:

1
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/ct/firefox-syncserver.sh)"
CPU: 2 cores RAM: 3072 MB Disk: 10 GB OS: Debian 13

Notes

There is no web interface. In Firefox open about:config, set identity.sync.tokenserver.uri to http://[IP]:8000/1.0/sync/1.5, restart Firefox, then sign in to Sync. about:sync-log shows whether it talks to your server. Health check: http://[IP]:8000/__heartbeat__
Sign-in still goes through your Mozilla account at accounts.firefox.com. Only the sync data is stored on this server.
Firefox syncs to the storage URL this server hands out, set by SYNC_TOKENSERVER__INIT_NODE_URL in /opt/firefox-syncserver_data/.env (default http://[IP]:8000). If you use HTTPS through a reverse proxy, or the container IP changes, set it to the public origin (e.g. https://sync.example.com) before the first sign-in and point identity.sync.tokenserver.uri at that origin. It is stored in the nodes table of the syncserver database on first start; changing it later only adds a second node, so also update the existing row.
Firefox for Android: in Settings > About Firefox tap the logo repeatedly to unlock the debug menu, set the custom Sync server to the same /1.0/sync/1.5 URL and stop Firefox from that menu. Do this before signing in.
Install and every update compile the server from source with Rust. The 3 GB RAM is sized for that build; the running server itself uses under 100 MB.

Web Interface

Port: 8000

Source code
Loading...