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 die .env Datei erstellen

nano /root/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/bravesync/docker-compose.yml

Inhalt

version: '3.7'

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

  brave-sync:
    build:image: context: ./go-sync
      dockerfile: Dockerfile
      args:
        VERSION: "v1.0.0"
        BUILD_TIME: "${BUILD_TIME:-$(date -u +'%Y-%m-%dT%H:%M:%SZ')}"
        COMMIT: "local-dev"sync_dev:latest
    container_name: 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

 caddy:
    image: caddy:latest
    restart: always
    ports:
      - "80:80"
      - "443:443"
    command: caddy reverse-proxy --from ${PUBLIC_URL} --to brave-sync:8295
    volumes:
      - ./data/caddy/data:/data
      - ./data/caddy/config:/config  



Repo clonen

git clone https://github.com/brave/go-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 das Image erstellen:

cd /root/bravesync/go-sync/
make docker
cd /root/bravesync/

nun Datenverzeichnis anlegen und rechte vergeben

mkdir -p /root/bravesync/ddb
chmod 777 /root/bravesync/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 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 %U

Schritt-für-Schritt: Brave Flatpak & Startparameter

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
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.