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)

💾 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

image.png

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.