Firefox Sync Server

Firefox Sync Server
DALL-E did a good job with "a confused firefox synchronising with a mobile phone"

Most of this (well, almost all of it really!) was copied from https://jlelse.blog/dev/firefox-sync-server . The first step is to put the following into a docker-compose or portainer stack.

Everything below that is in "<>" needs you to replace that string with the correct data for your setup. i.e. delete the "<string>" & replace it with the real value, don't leave the brackets there! :)

version: "3.2"

services:
  firefox-syncserver:
    image: crazymax/firefox-syncserver:latest
    container_name: firefox_syncserver
    ports:
      - 5000:5000
    volumes:
      - "/home/<user>/docker/ffs:/data"
    environment:
      - "TZ=Europe/London"
      - "PUID=1000"
      - "PGID=1000"
      - "FF_SYNCSERVER_PUBLIC_URL=https://<myFirefoxSyncDomain>"
      - "FF_SYNCSERVER_SECRET=<complicatedStringThatNoOneWillGuess>"
      - "FF_SYNCSERVER_ALLOW_NEW_USERS=true"
      - "FF_SYNCSERVER_FORCE_WSGI_ENVIRON=true"
    restart: always

volumes:
  firefox-syncserver:
docker-compose.yml

The next steps are exactly as per that website

  1. Go to about:config and search for identity.sync.tokenserver.uri.
  2. Now change replace https://token.services.mozilla.com/1.0/sync/1.5 with https://yourawesomeurl.tld/token/1.0/sync/1.5. Don’t forget the token, because the self hosted Firefox sync server is exposing the token server in a subdicrectory.
  3. Just to make sure everything is set up correctly, log out of Firefox (if you logged in before) and restart the browser.
  4. Now go to the settings, login with your Firefox account and the synchronization can start.

There is a wrinkle if you are using Firefox Mobile (taken from their docs)

Firefox for Android (“Daylight”, versions 79 and later) does support using a non-Mozilla-hosted Sync server. Before logging in, go to App Menu > Settings > About Firefox and click the logo 5 times. You should see a “debug menu enabled” notification. Go back to the main menu and you will see two options for a custom account server and a custom Sync server. Set the Sync server to the URL given above and then log in.

I've got the sync server running behind a caddy reverse proxy, but the Caddyfile entry is a one liner: "reverse_proxy <internal ip>:<internal port>"