90 lines
4.5 KiB
Markdown
90 lines
4.5 KiB
Markdown
# Proefopstelling - plan
|
|||
|
|
|
||
|
|
> Ontwerp en afbakening. **Dit bestand lees je zelden**, alleen bij twijfel over scope of architectuur.
|
||
|
|
> Status staat in [TAKEN.md](TAKEN.md), geschiedenis in [PROGRESS.md](PROGRESS.md), onbesliste punten in
|
||
|
|
> [OPEN.md](OPEN.md).
|
||
|
|
|
||
|
|
## 1. Doel
|
||
|
|
|
||
|
|
Uitzoeken of Evolu Relay zelf gehost bruikbaar is voor Trezor Suite, en met welke **minimale** set
|
||
|
|
containers en omgevingsvariabelen. Dat gebeurt lokaal, buiten Umbrel om, want een pakket bouwen voor iets
|
||
|
|
waarvan je niet weet of het draait is de dure volgorde.
|
||
|
|
|
||
|
|
Als dit plan af is, is er één zin die het volgende plan kan aannemen: "de relay draait met deze containers
|
||
|
|
en deze variabelen, en Trezor Suite synchroniseert ermee." Zonder die zin is elk manifest een gok.
|
||
|
|
|
||
|
|
## 2. Afbakening
|
||
|
|
|
||
|
|
Alles tot en met een label dat op apparaat A gezet wordt en op apparaat B verschijnt, via een relay die op
|
||
|
|
het thuisnetwerk draait en die niets van Trezor nodig heeft.
|
||
|
|
|
||
|
|
Binnen dit plan valt ook het opschrijven van wat er nodig bleek: welke variabelen, welke poorten, welke
|
||
|
|
volumes, en waar de images vandaan komen. Dat is niet de bijvangst maar het eigenlijke product; het
|
||
|
|
volgende plan leest het.
|
||
|
|
|
||
|
|
## 3. Niet-doelen
|
||
|
|
|
||
|
|
- **Geen `umbrel-app.yml` en geen `docker-compose.yml` in Umbrel-vorm.** Dat is het masterplan
|
||
|
|
**Umbrelapp**, en het heeft de uitkomst van dit plan nodig.
|
||
|
|
- **Geen bereikbaarheid van buiten, geen TLS, geen Tailscale.** Masterplan **Bereikbaarheid**. Hier
|
||
|
|
volstaat een IP op het eigen netwerk.
|
||
|
|
- **Geen eigen image bouwen of publiceren.** Blijkt dat nodig, dan is dat een bevinding van dit plan en
|
||
|
|
werk van het volgende.
|
||
|
|
- **Niets met quota's of betalen.** De quota-manager is hier een obstakel dat je wegwerkt of moet
|
||
|
|
meenemen, geen functionaliteit die we willen.
|
||
|
|
- **Geen bijdrage aan `trezor/trezor-suite-sync`.** Ook niet als er onderweg iets stuk blijkt.
|
||
|
|
|
||
|
|
## 4. Ontwerp
|
||
|
|
|
||
|
|
### 4a. De volgorde is: eerst wat het project kan doden
|
||
|
|
|
||
|
|
Het vooronderzoek zet "clone en draai" als eerste stap. Dat is niet de goedkoopste weerlegging. Er zijn
|
||
|
|
twee aannames waarop dit project stukloopt, en de eerste kost een minuut:
|
||
|
|
|
||
|
|
1. **Kan Trezor Suite überhaupt naar een eigen relay wijzen?** Het vooronderzoek gaat uit van een
|
||
|
|
"Custom server"-veld. Bestaat dat niet in de Suite-versie van de gebruiker, of alleen op een platform
|
||
|
|
dat hij niet gebruikt, dan is er niets te pakketteren. Dit is te controleren in de interface, zonder
|
||
|
|
iets te installeren.
|
||
|
|
2. **Is de quota-manager verplicht?** Zie [Upstream-evolu-relay.md](../../../Referenties/Upstream-evolu-relay.md)
|
||
|
|
§3. Dit is te lézen in `.env.sample`, de compose en de broncode, en pas daarna te bewijzen door hem weg
|
||
|
|
te laten.
|
||
|
|
|
||
|
|
Pas als die twee goed staan, is "clone en draai" de moeite waard.
|
||
|
|
|
||
|
|
### 4b. Wat er gedraaid wordt
|
||
|
|
|
||
|
|
De compose van Trezor zelf, ongewijzigd waar het kan, met de quota-manager uitgeschakeld. Ongewijzigd is
|
||
|
|
hier een doel op zich: elke aanpassing die je maakt, is een aanpassing waarvan je later niet meer weet of
|
||
|
|
hij nodig was. Werkt het niet zonder wijziging, dan is de wijziging zelf een bevinding.
|
||
|
|
|
||
|
|
### 4c. Wat er opgeschreven wordt
|
||
|
|
|
||
|
|
Per container: image en herkomst, poorten, volumes, en de omgevingsvariabelen die **echt** nodig bleken,
|
||
|
|
niet de hele `.env.sample`. Dat onderscheid is het verschil tussen een manifest van tien regels en een van
|
||
|
|
veertig, en het is achteraf niet meer te maken.
|
||
|
|
|
||
|
|
Daarbij twee dingen die het volgende plan hard nodig heeft en die je alleen hier tegenkomt: **komt de
|
||
|
|
image uit een registry of alleen uit een Dockerfile**, en **hoe authenticeert Suite zich tegen de relay**.
|
||
|
|
Die tweede bepaalt of de app achter de inlog van umbrelOS kan staan; zie het masterplan **Umbrelapp**,
|
||
|
|
§4b.
|
||
|
|
|
||
|
|
## 5. Raakvlakken
|
||
|
|
|
||
|
|
- **Umbrelapp** is hard afhankelijk van dit plan: het aantal containers, de variabelen en de
|
||
|
|
authenticatievraag komen hier vandaan.
|
||
|
|
- **Bereikbaarheid** leunt op één bevinding hier: accepteert Suite een `http://`-adres, of eist het TLS?
|
||
|
|
- **Publicatie** leunt op de herkomst van de image. Zonder een gepinde multi-arch image uit een registry
|
||
|
|
komt dat plan niet van de grond.
|
||
|
|
|
||
|
|
## 6. Verificatie
|
||
|
|
|
||
|
|
Wat als bewijs telt, in oplopende sterkte:
|
||
|
|
|
||
|
|
1. de relay start en blijft draaien zonder quota-manager;
|
||
|
|
2. Trezor Suite accepteert het adres en meldt geen fout;
|
||
|
|
3. een label dat op apparaat A gezet wordt, verschijnt op apparaat B na een synchronisatie. **Dit is de
|
||
|
|
enige die telt.** De eerste twee kunnen slagen terwijl er niets gesynchroniseerd wordt.
|
||
|
|
|
||
|
|
Wat hier per se **niet** bewezen wordt, en wat dus niet als "werkt" gemeld mag worden: gedrag op arm64,
|
||
|
|
overleven van een herstart, gedrag onder umbrelOS, en bereikbaarheid van buiten het thuisnetwerk.
|