Firefox Sync Server

From ArchWiki

Gnome-colors-add-files-to-archive.pngThis article is being considered for archiving.Gnome-colors-add-files-to-archive.png

Reason: No longer developed and is beeing replaced by syncstorage-rs. The package has been dropped from AUR but nowhere do we presently talk about its replacement in the wiki. (Discuss in Talk:Firefox Sync Server#Obsolete)

Firefox Sync is a protocol developed by Mozilla to synchronize a browser configuration and profile between different Firefox instances which could run on different platforms (e.g. mobile and desktop). In a default configuration, the user data is encrypted and stored on Mozilla servers.

This page details on how to setup an own Firefox Sync Server and how to configure the client software to use it.

Server setup


mozilla-firefox-sync-serverAUR[broken link: package not found] is available in the AUR.


One file is available to configure a firefox sync server: /etc/webapps/mozilla-firefox-sync-server/syncserver.ini. Most options are explained clearly in the official documentation. You might want to change two variables, the accepted domain name (public_url) and the database backend (sqluri):

public_url =
sqluri = sqlite:////var/lib/mozilla-firefox-sync-server/syncserver.db


Other databases can be used as backend for the firefox sync server such as MySQL or PostgreSQL instead of SQLite. In order to achieve this it is necessary to add python packages via pip.


/usr/share/webapps/mozilla-firefox-sync-server/local/bin/pip install PyMySQL

For PostgreSQL

/usr/share/webapps/mozilla-firefox-sync-server/local/bin/pip install psycopg2

Then appropriate databases and users must be created in the database engine that will be used.

The syncserver.ini file should also be modified to reflect the change of database and it uses the SQLAlchemy syntax.


sqluri = pymysql://

For PostgreSQL

sqluri = postgresql://

Example nginx and uwsgi setup

It is recommended to serve the firefox sync server with uwsgi in a production environment. In this case you have to install uwsgi-plugin-python. Create following uwsgi configuration file:

socket = /run/uwsgi/%n.sock
uid = ffsync
gid = ffsync
chdir = /usr/share/webapps/mozilla-firefox-sync-server
master = true
plugins = python2
file = syncserver.wsgi

Enable and start the uwsgi@mozilla\\x2dfirefox\\x2dsync\\x2dserver service.

An example Nginx configuration looks something like this:

server {
  access_log /var/log/nginx/;
  error_log /var/log/nginx/ info;
  server_tokens off;

  client_max_body_size 15M;

  location / {
    include uwsgi_params;
    uwsgi_pass unix:/run/uwsgi/mozilla-firefox-sync-server.sock;

Client configuration

Note: Since version 1.5 of the protocol, a Firefox Account is required in order to use the synchronization service.

To configure desktop Firefox to talk to your new Sync server, go to about:config, search for identity.sync.tokenserver.uri and change its value to the URL of your server with a path of token/1.0/sync/1.5:

Tip: Enter about:sync-log in the Firefox URL bar to get a list of logs related to Firefox Sync.

See also