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) 💾 Und wie viel Speicherplatz verbraucht das? Datentyp Typische Größe Lesezeichen ein paar KB Passwörter 10–100 KB Formulardaten 50–200 KB Verlauf einige 100 KB Alles zusammen < 2 MB pro Nutzer Vorrausetzung: Public IP Installation: apt install docker.io docker-compose curl Verzeichnis erstellen mkdir /root/bravesync Nun in das Verzeichnis gehen und Repo clonen cd /root/bravesync/ git clone https://github.com/brave/go-sync nun die .env Datei erstellen nano /root/bravesync/go-sync/.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 Dateiersetzen rm /root/bravesync/go-sync/docker-compose.yml nano /root/bravesync/go-sync/docker-compose.yml Inhalt networks: sync: driver: bridge services: dev: build: context: . target: builder args: VERSION: "${VERSION}" COMMIT: "${COMMIT}" BUILD_TIME: "${BUILD_TIME}" depends_on: - dynamo-local - redis networks: - sync environment: - PPROF_ENABLED=true - SENTRY_DSN - ENV=local - DEBUG=1 - AWS_ACCESS_KEY_ID=GOSYNC - AWS_SECRET_ACCESS_KEY=GOSYNC - AWS_REGION=us-west-2 - AWS_ENDPOINT=http://dynamo-local:8000 - REDIS_URL=redis:6379 web: build: context: . target: artifact args: VERSION: "${VERSION}" COMMIT: "${COMMIT}" BUILD_TIME: "${BUILD_TIME}" ports: - "8295:8295" depends_on: - dynamo-local - redis networks: - sync environment: - PPROF_ENABLED=true - SENTRY_DSN - ENV=local - DEBUG=1 - AWS_ACCESS_KEY_ID=GOSYNC - AWS_SECRET_ACCESS_KEY=GOSYNC - AWS_REGION=us-west-2 - AWS_ENDPOINT=http://dynamo-local:8000 - TABLE_NAME=client-entity-dev - REDIS_URL=redis:6379 volumes: - ./brave-sync-logs:/var/log dynamo-local: build: context: . dockerfile: dynamo.Dockerfile ports: - "8000:8000" volumes: - ./data/dynamodb:/home/dynamodblocal/data networks: - sync redis: image: public.ecr.aws/docker/library/redis:6.2 ports: - "6379:6379" environment: - ALLOW_EMPTY_PASSWORD=yes volumes: - ./data/redis:/data networks: - sync caddy: image: caddy:latest restart: always ports: - "80:80" - "443:443" command: caddy reverse-proxy --from ${PUBLIC_URL} --to web:8295 volumes: - ./data/caddy/data:/data - ./data/caddy/config:/config networks: - sync Die Makefile anpassen nano /root/bravesync/go-sync/Makefile Inhalt ... docker: COMMIT=$(GIT_COMMIT) VERSION=$(GIT_VERSION) BUILD_TIME=$(BUILD_TIME) docker compose build docker-up: COMMIT=$(GIT_COMMIT) VERSION=$(GIT_VERSION) BUILD_TIME=$(BUILD_TIME) docker compose up docker-test: COMMIT=$(GIT_COMMIT) VERSION=$(GIT_VERSION) BUILD_TIME=$(BUILD_TIME) docker compose -f docker-compose.yml run --rm dev ma> ... alle docker compose in docker-compose abändern ... docker: COMMIT=$(GIT_COMMIT) VERSION=$(GIT_VERSION) BUILD_TIME=$(BUILD_TIME) docker-compose build docker-up: COMMIT=$(GIT_COMMIT) VERSION=$(GIT_VERSION) BUILD_TIME=$(BUILD_TIME) docker-compose up docker-test: COMMIT=$(GIT_COMMIT) VERSION=$(GIT_VERSION) BUILD_TIME=$(BUILD_TIME) docker-compose -f docker-compose.yml run --rm dev ma> ... 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 konfigurieren: 🧪 Browser starten mit eigenem Sync-Server Auf dem Gerät, das Brave nutzt, musst du Brave mit dem Custom-Sync-Server starten : Du musst Brave mit dem Startparameter ausführen: brave --sync-url=https://dein.sync.server Unter Windows z. B. in der Verknüpfung hinter "C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe" 🛠️ Dauerhaft unter Linux: Bearbeite z. B. den Desktop-Starter: nano ~/.local/share/applications/brave-browser.desktop Finde die Zeile: Exec=/usr/bin/brave-browser-stable %U Und ergänze: Exec=/usr/bin/brave-browser-stable --sync-url=https://dein.sync.server/v2 %U Überprüfen der Sync URL: In der Browser Leiste eingeben: brave://sync-internals Dort steht die URL und viele weitere Dinge zum Sync Status Schritt-für-Schritt: Brave Flatpak & Startparameter Hinweis: Ich habs mit Flatpak nie zum laufen bekommen deshalb Install deb via Terminal hier 1. Standard-Flatpak-Pfad prüfen Der Brave-Flatpak wird in der Regel als: org.brave.Browser ausgeführt. Um zu prüfen, ob das bei dir stimmt: flatpak list | grep Brave 2. .desktop-Datei anpassen (nur für dich) Die Desktop-Startverknüpfung liegt für Benutzerinstallationen meistens hier: ~/.local/share/flatpak/exports/share/applications/org.brave.Browser.desktop Wenn sie dort nicht liegt, dann: find ~/.local/share -name "org.brave.Browser.desktop" 3. Datei editieren Öffne sie z. B. mit Nano oder einem Editor: nano ~/.local/share/flatpak/exports/share/applications/org.brave.Browser.desktop Suche die Zeile: Exec=flatpak run org.brave.Browser Und ergänze sie: Exec=flatpak run org.brave.Browser --sync-url=https://dein.sync.server/v2 4. Desktop neu einlesen (optional) Manchmal musst du die Desktop-Datenbank neu laden: update-desktop-database ~/.local/share/applications/ Oder einfach ab- und wieder anmelden.