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:
| |
🔐 🔄 Wie funktioniert Firefox Sync (mit eigenem Server)?
✅ Was du selbst hostest:
Speicher-Backend für Sync-Datenz. B. Lesezeichen, Passwörter, Chronikliegt aufdeinem 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 denFirefox Account Server(aufwändig, meist unnötig)
🧠 Was bedeutet das konkret?
🔄 🔧 Firefox zurücksetzen („Bereinigen“)
✅ So geht's Schritt für Schritt:
Öffne diese Adresse in Firefox: about:support
konfigurieren💡 Was genau wird gelöscht?

