Brave-sync
Brave naršyklės sinchronizavimo įrankis, kurį gali paleisti kiekvienas. Mėgstamas "self-hosted" bendruomenės parašytas naudojant golang.
Docker swarm
Prieš tai jau turėtų būti paruoštas docker swarm cluster, sudėti node labeliai ir paleistas traefik. Atkreipkite dėmesį, kad šiame docker composer template yra nurodyta aarch64 architektūros konteinerių atvaizdai, kurie neveiks ant standartinės Intel architektūros. Originalų repozitorių galima rasti čia. Modifikuotas ARM64 (aarch64) randasi čia.
version: '3.4'
services:
web:
image: nulldevil/brave-go-sync:aarch64
depends_on:
- dynamo-local
- redis
networks:
- sync
- traefik_public
command: "./main"
deploy:
resources:
limits:
cpus: '2.75' # one cpu
memory: 480M
placement:
constraints: [node.labels.name == node0]
labels:
# traefik common
- traefik.enable=true
- traefik.docker.network=traefik_public
# traefikv1
- traefik.frontend.rule=Host:brave.domenas.lt
- traefik.port=8295
# traefikv2
- "traefik.http.routers.brave.rule=Host(`brave.domenas.lt`)"
- "traefik.http.services.brave.loadbalancer.server.port=8295"
environment:
- PPROF_ENABLED=true
- SENTRY_DSN
- ENV=local
- DEBUG=1
- AWS_ACCESS_KEY_ID=#
- AWS_SECRET_ACCESS_KEY=#
- AWS_REGION=us-west-2
- AWS_ENDPOINT=http://dynamo-local:8000
- TABLE_NAME=client-entity-dev
- REDIS_URL=redis:6379
dynamo-local:
image: nulldevil/go-sync_dynamo:aarch64
volumes:
- ./data/db:/db
user: root
deploy:
resources:
limits:
cpus: '2.75' # one cpu
memory: 480M
placement:
constraints: [node.labels.name == node0]
networks:
- sync
redis:
image: public.ecr.aws/ubuntu/redis:latest
volumes:
- ./data/redis:/var/lib/redis
deploy:
resources:
limits:
cpus: '2.75' # one cpu
memory: 480M
placement:
constraints: [node.labels.name == node0]
environment:
- ALLOW_EMPTY_PASSWORD=yes
networks:
- sync
networks:
traefik_public:
external: true
sync:
driver: overlay
ipam:
config:
- subnet: 172.16.21.0/24
Kliento nustatymai
Kadangi kūrėjai labai tingūs ir tokio dalyko kaip sinchronizavino serverio url keitimo neįdėjo į naršyklės nuostatas, t.y jį galima pakeisti tiktai paduodant komandinį parametrą --sync-url=http://sync-serveris.lt/. Žemiau aprašyta keletas triukų kaip pasilengvinti sau gyvenimą, kad nereiktų šio parametro rašinėti kiekvieną kartą paleidžiant naršyklę.
MacOS
Paleidimas gana paprastas
/Applications/Brave\ Browser.app/Contents/MacOS/Brave\ Browser --sync-url=https://brave.domenas.lt/v2
Bet norint pastovumo, toliau sekite instrukcijas
1 Variantas
Įdedame failą pavadinimu "launcher" su šiuo turiniu į /Applications/Brave Browser.app/Contents/MacOS/launcher:
#!/bin/sh
RealBin="Brave Browser"
AppDir="$(dirname "$0")"
exec "$AppDir/$RealBin" --sync-url=https://brave.domenas.lt/v2 "$@"
Paredaguojame Info.plist:
/usr/libexec/PlistBuddy -c "Set CFBundleExecutable launcher" /Applications/Brave\ Browser.app/Contents/Info.plist
Pažiūrime ar pasikeitė:
/usr/libexec/PlistBuddy -c "Print CFBundleExecutable" /Applications/Brave\ Browser.app/Contents/Info.plist
Perkeliame "Brave Browser" iš /Applications į Desktop, poto vėl atgal (laikydami Shift+CMD). Apgauname MacOS cache, kitaip jis neaptiks Info.plist pakeitimų.
2 Variantas
Panaudojant Apple Script
do shell script "\"/Applications/Brave Browser.app/Contents/MacOS/Brave Browser\" --sync-url=https://brave.domenas.lt/v2"
quit
Išsaugome kaip apple script, ir spaudžiame export kaip app bundle, išsaugome ant darbalaukio. Toliau atsidarome ~/Desktop/Brave\ Browserys.app/Contents/Info.plist ir po pirmojo <dict> pridedame šias dvi eilutes
<key>NSUIElement</key>
<true/>
Pastarosios paslepia patį apple script langą paleidžiant naršyklę.
Windows
Windows sistemoje viskas daug paprasčiau, susiradę ant desktop "Brave browser" nuorodą spaudžiame ant jos dešinį pelės mygelį ir pasirenkame properties arba tiesiog alt+enter ant nuorodos. Atsiradusiame lange, langelyje Target darašome po brave.exe"
--sync-url=https://brave.domenas.lt/v2
Visa eilutė turetų atrodyti taip:
"C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe" --sync-url=https://brave.domenas.lt/v2