Mit Docker
Hol dir den Code und starte den Relay mit Docker Compose. Das Image baut für amd64 und arm64, die Datenbank liegt im Volume relay-data.
git clone https://github.com/harryneufeld/bubble.git
cd bubble
docker compose up -d --build
Ohne eigenen Build geht es mit dem fertigen Image ghcr.io/harryneufeld/bubble-relay. Es wird bei jeder Änderung am Relay getestet und für amd64 und arm64 veröffentlicht.
docker run -d --name bubble-relay -p 5080:5080 \
-v relay-data:/data --restart unless-stopped \
ghcr.io/harryneufeld/bubble-relay:latest
Der Relay hört danach auf Port 5080. In der App trägst du beim Einrichten oder später unter „Server“ die Adresse ein, zum Beispiel 192.168.1.20:5080.
Auf einem Raspberry Pi
Auf einem Pi mit 64-Bit-Betriebssystem richtet scripts/setup-pi.sh alles ein: Es installiert bei Bedarf Git und Docker, holt den Code und startet den Relay. Erneut ausführen aktualisiert ihn.
scp scripts/setup-pi.sh pi@192.168.1.20:/tmp/bubble-setup.sh
ssh -t pi@192.168.1.20 "bash /tmp/bubble-setup.sh"
Der erste Build auf dem Pi dauert ein paar Minuten.
Erreichbar aus dem Internet
Der Relay spricht nur HTTP. Für Zugriff von außen gehört ein HTTPS-Proxy davor, zum Beispiel Caddy, nginx oder Traefik.
Gegen einen laufenden Relay kannst du die Live-Tests ausführen:
BUBBLE_RELAY_URL=http://<server>:5080/ dotnet test --filter LiveRelayTests
Selbst entwickeln
Bubble basiert auf .NET 10. Der Code teilt sich in vier Projekte:
| Projekt | Inhalt |
|---|---|
Bubble.Core | Krypto, Nachrichtenformat, Einladungen, Backup, Relay-Client, Feed-Logik |
Bubble.Relay | ASP.NET-Core-Relay mit SQLite, speichert nur verschlüsselte Blobs |
Bubble.App | .NET-MAUI-App für Android, iOS und Windows |
Bubble.Tests | Tests für Core und Relay, inklusive End-to-End über einen In-Memory-Relay |
dotnet test
dotnet run --project src/Bubble.Relay
Der Relay läuft dann auf http://localhost:5080. Der Android-Emulator erreicht ihn über 10.0.2.2:5080.