Direkt zum Hauptinhalt

Brave Sync Server

Beschreibung:

Mann kann den Brave Sync Server.
Auch selbst betreiben, gibt ein Projekt auf Github im docker-container dafür.

https://github.com/brave/go-sync

Was Brave Sync aktuell synchronisiert (Stand 2025):

Kategorie Synchronisiert? Beschreibung
🔖 Lesezeichen ✅ Ja Alle Lesezeichen inkl. Ordnerstruktur
📂 Lesezeichen-Favoritenleiste ✅ Ja Auch diese wird übernommen
📄 Chronik (Verlauf) ✅ Ja Browser-Historie
🧠 Formulardaten (Autofill) ✅ Ja Namen, Adressen, Telefonnummern, etc.
🔐 Passwörter ✅ Ja Gespeicherte Anmeldedaten
🎨 Designs/Themes ✅ Ja Farbthema des Browsers
🧩 Erweiterungen/Add-ons ✅ Ja Installierte Chrome-Extensions
⚙️ Einstellungen ✅ Ja Viele (nicht alle) Einstellungen werden übernommen
📱 Offene Tabs ✅ Ja Geräteübergreifender Tab-Verlauf
🧭 Suchmaschinen-Einstellungen ✅ Ja Eigene oder angepasste Suchanbieter
🔒 Zahlungsmethoden ✅ Ja Kreditkartendaten etc. (wenn aktiviert)


Vorrausetzung:

Public IP

Installation

apt install docker.io docker-compose curl

Verzeichnis erstellen

mkdir /root/mozillasyncbravesync

nun die .env Datei erstellen

nano /root/mozillasync/bravesync/.env

Inhalt

PUBLIC_URL ="http://localhost:5000"   
# ändere auf https://sync.example.com bei Proxy: "http://localhost:5000"   # ändere auf https://sync.example.com bei Proxy

Nun die Docker-compose Datei erstellen

nano /root/mozillasync/bravesync/docker-compose.yml

Inhalt

version: '3.7'

version: "3.7"

services:
  firefox-dynamodb:
    image: amazon/dynamodb-local
    container_name: dynamodb
    ports:
      - "8000:8000"
  volumes:
      - ./ddb:/home/dynamodblocal/data

  brave-sync:
    image: mozilla/syncserverghcr.io/brave/go-sync:main
    container_name: firefox-brave-sync
    depends_on:
      - dynamodb
    environment:
      DYNAMODB_ENDPOINT: http://dynamodb:8000
      SYNCV2_PUBLIC_URL: https://${PUBLIC_URL}
      SYNCV2_BIND_ADDRESS: 0.0.0.0:8295
      SYNCV2_TLS: "false"
    expose:
      - "8295"
    restart: unless-stopped
    environment:
      SYNCSERVER_PUBLIC_URL: ${PUBLIC_URL}
      SYNCSERVER_SECRET: "supergeheimes-passwort-ändern"  # mind. 8 Zeichen, frei wählbar
      SYNCSERVER_SQLURI: 'sqlite:////data/syncserver.db'
      SYNCSERVER_BATCH_UPLOAD_ENABLED: "true"
      SYNCSERVER_FORCE_WSGI_ENVIRON: "true"
      PORT: '5000'
    volumes:
      - firefox-sync-data:/data

  caddy:
    image: caddy:latest
    container_name: caddy
    restart: always
    ports:
      - "80:80"
      - "443:443"
    command: caddy reverse-proxydepends_on:
      --from ${PUBLIC_URL}brave-sync
    environment:
      PUBLIC_URL: mozillasync.hacker-net.de
    volumes:
      --to firefox-sync:5000
    volumes:./caddy/Caddyfile:/etc/caddy/Caddyfile
      - ./data/caddy/data:/data
      - ./data/caddy/config:/config  

volumes:
  firefox-sync-data:



nun Datenverzeichnis anlegen und rechte vergeben

mkdir -p /root/mozillasync/firefox-sync-databravesync/ddb
chmod 777 /root/mozillasync/firefox-sync-databravesync/ddb

Nun die container starten

docker-compose up -d

Nun noch die ufw Firewall regeln anpassen.

Da hier der Docker container sowieso von außen erreichbar sein soll, brauchen wir hier keine Anspassung für docker.
Aber ssh soll nur auf der lokalen Netzwerkkarte zur Verfügung stehen

ufw installieren

apt install ufw

Nun die Regeln setzten

ufw allow in on enp6s18 to any port 22
ufw enable

Brave

Firefox-Konfiguration:

Mozilla Firefox Account erforderlich, aber daten laden aufm Server den wir gerade installiert haben

In Firefox unter about:config:

SchlüsselWert
identity.sync.tokenserver.urihttp://localhost:5000/token/1.0/sync/1.5 (oder deine Domain)

grafik.png

grafik.png

🔐 🔄 Wie funktioniert Firefox Sync (mit eigenem Server)?

✅ Was du selbst hostest:

  • Speicher-Backend für Sync-Daten

    • z. B. Lesezeichen, Passwörter, Chronik

    • liegt auf deinem Server (statt bei Mozilla)

❗ Was nicht selbst gehostet wird:

  • Mozilla-Konto-System (Accounts Server / Auth / OAuth)
    → Firefox-Login läuft weiterhin über Mozilla, außer du hostest auch den Firefox Account Server (aufwändig, meist unnötig)


🧠 Was bedeutet das konkret?

SzenarioErgebnis
Du loggst dich mit deinem Mozilla-Konto einDeine Daten landen auf deinem eigenen Server ✅
Fremder kennt deine Sync-Server-AdresseEr kann sich mit seinem eigenen Mozilla-Konto anmelden
Fremder hat nicht dein Mozilla-PasswortEr kommt nicht an deine Daten 🛡️
Fremder nutzt deinen Server trotzdemJa, er kann dort seine eigenen Daten speichern – isoliert
Du willst das verhindern→ Mit Basic Auth oder IP-Filter abschotten 🔐

🔄 🔧 Firefox zurücksetzen („Bereinigen“)

✅ So geht's Schritt für Schritt:

  1. Öffne diese Adresse in Firefox: about:support

    konfigurieren

     

    1. Klicke oben rechts auf den Button:

      „Firefox bereinigen…“

    2. Bestätige den Dialog:

      „Firefox bereinigen“

    3. Firefox wird neu gestartet – es wird:

      • ein neues Profil angelegt

      • Lesezeichen, Passwörter und Cookies optional übernommen

      • aber: Add-ons, Einstellungen, about:config-Werte, Suchmaschinen, Themes etc. werden gelöscht


    💡 Was genau wird gelöscht?

    Wird behaltenWird gelöscht
    ✔ Lesezeichen❌ Add-ons
    ✔ Passwörter❌ Themes
    ✔ Cookies❌ Einstellungen (auch about:config)
    ✔ Chronik (optional)❌ Suchmaschinen (benutzerdefiniert)
     ❌ Benutzerprofileinstellungen