63 lines
5.5 KiB
Markdown
63 lines
5.5 KiB
Markdown
# Plan: Trezor Suite Sync als Umbrel App
|
|||
|
|
|
||
|
|
## Status quo (onderzocht 25 aug 2026)
|
||
|
|
- Trezor's custom-sync-server heet **Evolu Relay**, onderdeel van de repo `trezor/trezor-suite-sync`.
|
||
|
|
- De repo bevat twee services: **evolu-relay** (poort 4000, de eigenlijke sync-relay) en **quota-manager** (poort 4001, betaal/quota-server) plus een **Postgres**-database.
|
||
|
|
- Er bestaat een `Dockerfile` en `docker-compose.yaml` in de repo — dus containeriseren is al gedeeltelijk gedaan door Trezor zelf.
|
||
|
|
- **Geen bestaande Umbrel-app**: niet in de officiële store (`getumbrel/umbrel-apps`), en ik heb geen relevante custom store gevonden die 'm aanbiedt.
|
||
|
|
- Conclusie: je zou de eerste zijn. Dat is haalbaar, want Umbrel-apps zijn in de kern "een `umbrel-app.yml` manifest + een `docker-compose.yml`" bovenop een al bestaande Docker-gebaseerde app.
|
||
|
|
|
||
|
|
## Doel
|
||
|
|
Een installeerbare Umbrel-app die de Evolu Relay (en evt. quota-manager) draait, zodat je in Trezor Suite bij "Custom server" een lokale/eigen URL kunt invullen die naar je Umbrel wijst.
|
||
|
|
|
||
|
|
## Belangrijke open vraag eerst
|
||
|
|
De quota-manager lijkt bedoeld voor **Trezor's eigen betaalde/quota-gebaseerde hosting** (het noemt een "Payment Server" en Notion API-spec). Voor puur privégebruik op je eigen Umbrel heb je waarschijnlijk **alleen de evolu-relay** nodig, zonder quota-manager. Dit moet je bevestigen door de `.env.sample` en broncode door te nemen — mogelijk verwacht de relay wél een werkende quota-manager-verbinding om te draaien. Zet dit als eerste stap in je proof-of-concept.
|
||
|
|
|
||
|
|
## Stap 1 — Proof of concept (lokaal, buiten Umbrel om)
|
||
|
|
1. Clone `trezor/trezor-suite-sync`.
|
||
|
|
2. Draai `docker compose up` zoals in de README, met alleen Postgres + evolu-relay (probeer quota-manager eerst weg te laten).
|
||
|
|
3. Test of Trezor Suite (desktop) succesvol labels kan syncen naar `http://<jouw-ip>:4000`.
|
||
|
|
4. Documenteer welke environment variables daadwerkelijk nodig zijn (uit `.env.sample`).
|
||
|
|
5. **Blocker-check:** als de relay hard afhankelijk blijkt van de quota-manager, moet die ook mee gepakketteerd worden.
|
||
|
|
|
||
|
|
## Stap 2 — Umbrel App Framework structuur opzetten
|
||
|
|
Volgens `getumbrel/umbrel-apps` heeft elke app een vaste structuur:
|
||
|
|
```
|
||
|
|
trezor-suite-sync/
|
||
|
|
├── umbrel-app.yml # manifest: naam, versie, poort, categorie, beschrijving
|
||
|
|
├── docker-compose.yml # services, aangepast voor Umbrel's netwerkconventies
|
||
|
|
└── exports.sh (optioneel) # env vars die andere apps kunnen gebruiken
|
||
|
|
```
|
||
|
|
Aandachtspunten bij het omzetten van Trezor's eigen `docker-compose.yaml`:
|
||
|
|
- Alle services moeten achter Umbrel's **`app_proxy`** draaien (voor routing/auth), tenzij je zelf auth afhandelt (zoals bv. Gitea/Budibase doen met `PROXY_AUTH_ADD: "false"`).
|
||
|
|
- Poorten mogen niet botsen met andere geïnstalleerde apps — kies een vast, uniek poortnummer.
|
||
|
|
- Data (Postgres-volumes) moet in Umbrel's `${APP_DATA_DIR}`-conventie staan zodat backups/updates werken.
|
||
|
|
- Vervang eventuele Kubernetes-specifieke config (`.k8s/` map) — die is niet relevant voor Umbrel, puur Docker Compose telt.
|
||
|
|
|
||
|
|
## Stap 3 — HTTPS / bereikbaarheid van buitenaf
|
||
|
|
Trezor Suite (desktop/mobiel, ook onderweg) moet de relay kunnen bereiken:
|
||
|
|
- **Alleen thuisnetwerk:** lokaal IP + poort volstaat, geen HTTPS nodig als je Suite ook alleen thuis gebruikt.
|
||
|
|
- **Ook buitenshuis:** dan heb je een manier nodig om je Umbrel veilig van buitenaf te bereiken — bijvoorbeeld via **Tailscale** (Umbrel heeft hier al een officiële app voor, zoals ook bij hun Nostr-relay-app wordt geadviseerd) of via een reverse proxy met een eigen domein + TLS-certificaat.
|
||
|
|
- Aanbevolen aanpak: begin met Tailscale, dat is de weg van de minste weerstand en vermijdt dat je zelf poorten moet open zetten op je router.
|
||
|
|
|
||
|
|
## Stap 4 — Testen
|
||
|
|
- Test op echte hardware: Raspberry Pi 5, x86-systeem, of Umbrel Home (zoals Umbrel's eigen testrichtlijnen voorschrijven).
|
||
|
|
- Test het volledige label-sync-scenario: label toevoegen op device A, checken of het verschijnt op device B na sync.
|
||
|
|
- Test update-/herstart-gedrag: overleeft de Postgres-data een app-herstart of Umbrel-OS-update?
|
||
|
|
|
||
|
|
## Stap 5 — Distributie: officieel vs. eigen store
|
||
|
|
| Optie | Voor | Nadeel |
|
||
|
|
|---|---|---|
|
||
|
|
| **PR naar `getumbrel/umbrel-apps`** | Bereikt alle Umbrel-gebruikers, officieel gereviewd | Moet aan Umbrel's kwaliteitseisen voldoen, review kan lang duren, mogelijk willen ze afstemming met Trezor zelf |
|
||
|
|
| **Eigen custom app store** (zoals `dentropy/dentropys-umbrel-appstore`) | Snel live, volledige controle | Alleen bereikbaar via handmatige CLI-toevoeging (`sudo ~/umbrel/scripts/repo add <url>`), kleiner bereik |
|
||
|
|
|
||
|
|
**Advies:** begin met een eigen custom store/repo voor je eigen gebruik en testen. Als het stabiel werkt, overweeg een PR naar de officiële store — lees eerst `AGENTS.md` in `getumbrel/umbrel-apps` voor de exacte richtlijnen.
|
||
|
|
|
||
|
|
## Risico's / dingen om in de gaten te houden
|
||
|
|
- Trezor kan de relay-architectuur wijzigen (het is een vrij nieuw, actief project — laatste release v0.1.8, april 2026).
|
||
|
|
- Quota-manager suggereert mogelijk een businessmodel rond gehoste sync; zelf-hosten omzeilt dat, maar controleer of er geen impliciete afhankelijkheden zijn (bv. licenties, rate-limits ingebakken in de relay-code).
|
||
|
|
- Data is end-to-end versleuteld volgens Trezor (client-side), dus zelf-hosten van de relay verandert niets aan de privacy-garanties — het haalt alleen Trezor's eigen server uit de vergelijking.
|
||
|
|
|
||
|
|
## Volgende concrete actie
|
||
|
|
Begin met **Stap 1**: lokaal draaien zonder Umbrel, en uitzoeken of quota-manager verplicht is. Dat bepaalt of dit een simpel 1-service-pakket wordt of een 3-service-stack (relay + quota-manager + postgres).
|