HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
mozilla-services
syncserver
Python2014–2025
mozilla-services / syncserver · Archived

syncserver

Run-Your-Own Firefox Sync Server

23Distinct people
24Mentions
0Explicit recommenders
2KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Run-Your-Own Firefox Sync Server

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 7:02:50 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year24 dated mentions

Observed mentions: 2014-05-27 17:29:04 UTC to 2025-02-26 18:55:10 UTC.

0123452014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC101
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC000
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC101
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC303
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC303
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC202
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC202
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC202
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC303
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC505
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Run-Your-Own Firefox Sync Server Note that this repository is no longer being maintained. The Firefox Sync Server has been rewritten in Rust, and the new project can be found here: https://github.com/mozilla-services/syncstorage-rs Use this at your own risk, and with the understanding that it is not being maintained, work is being done on its replacement, and that no support or assistance will be offered. This is an all-in-one package for running a self-hosted Firefox Sync server. It bundles the "tokenserver" project for authentication and the "syncstorage" project for storage, to produce a single stand-alone webapp. Complete installation instructions are available at: https://mozilla-services.readthedocs.io/en/latest/howtos/run-sync-1.5.html Quickstart The Sync Server software runs using python 2.7, and the build process requires make and virtualenv. You will need to have the following packages (or similar, depending on your operating system) installed: python2.7 python2.7-dev python-virtualenv gcc and g++ make libstdc++ libffi-dev mysql-dev musl-dev ncurses-dev openssl-dev Take a checkout of this repository, then run "make build" to pull in the necessary python package dependencies: $ git clone https://github.com/mozilla-services/syncserver $ cd syncserver $ make build To sanity-check that things got installed correctly, do the following: $ make test Now you can run the server: $ make serve This should start a server on http://localhost:5000/. Now go into Firefox's about:config page, search for a setting named "tokenServerURI", and change it to point to your server: identity.sync.tokenserver.uri: http://localhost:5000/token/1.0/sync/1.5 (Prior to Firefox 42, the TokenServer preference name for Firefox Desktop was "services.sync.tokenServerURI". While the old preference name will work in Firefox 42 and later, the new preference is recommended as the old preference name will be reset when the user signs out from Sync causing potential confusion.) Firefox should now sync against your local server rather than the default Mozilla-hosted servers. For more details on setting up a stable deployment, see: https://mozilla-services.readthedocs.io/en/latest/howtos/run-sync-1.5.html Customization All customization of the server can be done by editing the file "syncserver.ini", which contains lots of comments to help you on your way. Things you might like to change include: The client-visible hostname for your server. Edit the "public_url" key under the [syncerver] section. The database in which to store sync data. Edit the "sqluri" setting under the [syncserver] section. The secret key to use for signing auth tokens. Find the "secret" entry under the [syncserver] section and follow the instructions in the comment to replace it with a strong random key. Database Backend Modules If your python installation doesn't provide the "sqlite" module by default, you may need to install it as a separate package: $ ./local/bin/pip install pysqlite2 Similarly, if you want to use a different database backend you will need to install an appropriate python module, e.g: $ ./local/bin/pip install PyMySQL $ ./local/bin/pip install psycopg2 Runner under Docker Dockerhub Page There is experimental support for running the server inside a Docker container. The docker image runs with UID/GID 1001/1001. Build the image like this: $ docker build -t syncserver:latest . Then you can run the server by passing in configuration options as environment variables, like this: $ docker run --rm \ -p 5000:5000 \ -e SYNCSERVER_PUBLIC_URL=http://localhost:5000 \ -e SYNCSERVER_SECRET=<PUT YOUR SECRET KEY HERE> \ -e SYNCSERVER_SQLURI=sqlite:////tmp/syncserver.db \ -e SYNCSERVER_BATCH_UPLOAD_ENABLED=true \ -e SYNCSERVER_FORCE_WSGI_ENVIRON=false \ -e SYNCSERVER_DEBUG_ENABLED=true \ -e PORT=5000 \ mozilla/syncserver:latest or $ docker run --rm \ -p 5000:5000 \ -e SYNCSERVER_PUBLIC_URL=http://localhost:5000 \ -e SYNCSERVER_SECRET_FILE=<PUT YOUR SECRET KEY FILE LOCATION HERE> \ -e SYNCSERVER_SQLURI=sqlite:////tmp/syncserver.db \ -e SYNCSERVER_BATCH_UPLOAD_ENABLED=true \ -e SYNCSERVER_FORCE_WSGI_ENVIRON=false \ -e PORT=5000 \ -v /secret/file/at/host:<PUT YOUR SECRET KEY FILE LOCATION HERE> \ mozilla/syncserver:latest Don't forget to generate a random secret key to use in the SYNCSERVER_SECRET environment variable or mount your secret key file! And you can test whether it's running correctly by using the builtin function test suite, like so: $ /usr/local/bin/python -m syncstorage.tests.functional.test_storage \ --use-token-server http://localhost:5000/token/1.0/sync/1.5 If you'd like a persistent setup, you can mount a volume as well: $ docker run -d \ -v /syncserver:/data \ -p 5000:5000 \ -e SYNCSERVER_PUBLIC_URL=http://localhost:5000 \ -e SYNCSERVER_SECRET=<PUT YOUR SECRET KEY HERE> \ -e SYNCSERVER_SQLURI=sqlite:////data/syncserver.db \ -e SYNCSERVER_BATCH_UPLOAD_ENABLED=true \ -e SYNCSERVER_FORCE_WSGI_ENVIRON=false \ -e PORT=5000 \ mozilla/syncserver:latest Make sure that /syncserver is owned by 1001:1001 Docker Compose can also be used for structured deployments: version: '3.7' services: syncserver: container_name: syncserver image: mozilla/syncserver:latest volumes: - /syncserver:/data ports: - 5000:5000 environment: SYNCSERVER_PUBLIC_URL: 'http://localhost:5000' SYNCSERVER_SECRET: '<PUT YOUR SECRET KEY HERE>' SYNCSERVER_SQLURI: 'sqlite:////data/syncserver.db' SYNCSERVER_BATCH_UPLOAD_ENABLED: 'true' SYNCSERVER_FORCE_WSGI_ENVIRON: 'false' PORT: '5000' restart: always Removing Mozilla-hosted data If you have previously uploaded Firefox Sync data to the Mozilla-hosted storage service and would like to remove it, you can use the following script to do so
Read the full README on GitHub

What Hacker News says

2 sources
Is this article a bit outdated? I have noticed some projects not only switched their repositories but also programming languages i.e.: > If you know Python, you can contribute to our web services, including Firefox Sync, or Firefox Accounts Not quite recently (about 6-7 months ago), the syncserver got rewritten to Rust [0], while the Python codebase it's a bit stalled [1]. I guess Mozilla is going to switch to syncserver-rs soon, because they started implementation of Google Cloud Spanner and this looks like a green-light for future deployment. > If you know Java, you can contribute to Firefox on Android, Firefox Focus for Android and Firefox for Fire TV. There is new Firefox Preview on Android, which might disrupt the mobile browser market share soon (if it gets addons support). Some mozillian also worked on projects like Lockwise [2] or
Read the rest
In Contributing to the Mozilla code base

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.