Beide pagina's volgen nu HomeGit/Docs/website-design-system.html, in dezelfde ronde als AssetApp. Drie dingen, en de volgorde is niet willekeurig: - een accentgloed achter de pagina, uit de linkerbovenhoek. Dit is de VOORWAARDE voor de rest en niet de finishing touch: een backdrop-filter op een egale ondergrond levert per definitie niets op, dus er moet eerst iets achter de vlakken staan; - kaarten doorschijnend, met een randlicht bovenlangs en een schaduw uit een token; - één hoek voor elk buitenste kader. De kaart van --radius-xl naar --radius-lg, gelijk aan het logkader, dat zijn geneste hoek daarvan afleidt. Het volle accentpalet van AssetApp (vijf kleuren, licht en donker) staat erin; beide apps blijven op oranje en krijgen bewust geen knop. Om dezelfde reden staat de diepte hier vast aan, terwijl het in AssetApp een instelling is: dit zijn statuspagina's met licht/donker en verder geen bediening. --pos is groen geworden in plaats van oranje. Hij volgde het accent, en dat las als merkkleur in plaats van als betekenis; zichtbaar gevolg is dat de badge "Running" nu groen is. Meegevonden en meteen gerepareerd: prefers-reduced-motion en prefers-reduced-transparency mogen niet in één media-query. Windows heeft een schakelaar "Animatie-effecten" die bij veel mensen uit staat en die zet reduced-motion op reduce; samen in één query bleef er van de hele opmaak niets over. Ze staan apart, en reduced-motion haalt alleen de overgang weg. Alleen de pagina's, dus geen nieuwe images: VERSION in tools/evolu-relay/build.sh blijft staan en alleen de manifesten gaan omhoog. Suite groen: 22 + 43 + 54 + 22 + 65 + 39 + 115. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
145 lines
7.2 KiB
YAML
145 lines
7.2 KiB
YAML
# De veldvolgorde hieronder is niet vrij: de packaging-documentatie van de
|
|
# officiele appstore schrijft hem voor. Zie de tabel in
|
|
# Docs/Referenties/Umbrel-appstore-spec.md.
|
|
#
|
|
# Wat de spec niet noemt staat onderaan dit bestand en niet ertussen. Dan is de
|
|
# voorgeschreven kop letterlijk goed en hoeft er bij inlevering alleen iets weg.
|
|
#
|
|
# `dependencies` is weggelaten en niet leeg gezet: deze app hangt van geen enkele
|
|
# andere app af. Een leeg veld zou suggereren dat er iets te kiezen valt.
|
|
manifestVersion: 1
|
|
id: whatsnext-evolu-relay
|
|
category: files
|
|
name: Evolu Relay
|
|
version: "0.5.2"
|
|
tagline: Encrypted sync and backup for your local-first apps
|
|
description: >-
|
|
Local-first apps keep your data on your own device and work whether or not you have a
|
|
connection. A relay is what lets a second device catch up: it holds the encrypted changes
|
|
until your other devices come online. This app runs that relay on your Umbrel, so the copy
|
|
in the middle sits on hardware you own.
|
|
|
|
|
|
It is the relay from the Evolu project, taken straight from the package they publish and not
|
|
reimplemented here. Any app built on Evolu can use it.
|
|
|
|
|
|
Your data is encrypted on your device before it leaves. The relay holds encrypted blobs,
|
|
padded so their size says nothing, and never has the key. What it can see is an owner id,
|
|
which identifies data without identifying you, along with timestamps and the addresses that
|
|
connect. Self-hosting does not make the data more secret than it already is; what it changes
|
|
is who keeps the encrypted copy, who can see that you are syncing at all, and whether anyone
|
|
can pull the service out from under you.
|
|
|
|
|
|
What this app adds is the part a self-hosted relay needs and a public one does not: control
|
|
over who may use it. New owners are accepted one at a time. The first one that connects is
|
|
remembered, and you close the door again once your own devices are paired; anything new is
|
|
refused until you open it. Any owner can be blocked or removed later.
|
|
|
|
|
|
The tile opens a status page behind your umbrelOS login, showing whether the relay is
|
|
running, how much it holds, when it was last written to, and which owners are allowed. Point
|
|
your app at the address shown there. Away from home you will need a way in, such as Tailscale
|
|
or a reverse proxy with your own domain.
|
|
releaseNotes: >-
|
|
A visual refresh, shared with the other apps in this store. The page now has a soft glow behind it in
|
|
the accent colour, and the cards are translucent with a light edge and a shadow, so they read as
|
|
panels sitting on the page instead of flat blocks painted on it. Card corners are a little tighter,
|
|
and every framed element now uses the same corner radius. Nothing about what the relay does has
|
|
changed.
|
|
|
|
|
|
Everything in 0.5.1:
|
|
|
|
|
|
Fixes a message at the top of the page that never went away. Confirming that a command was sent is worth
|
|
saying for a second or two, but it stayed until you reloaded the page, so it was still there long after it
|
|
stopped being true. It now clears itself as soon as the relay has picked the command up. A refusal is the
|
|
exception and stays put: that is the only explanation you get of what went wrong.
|
|
|
|
|
|
Everything in 0.5.0, released the same day:
|
|
|
|
|
|
Accepting a new owner is now a two minute window instead of a switch you have to remember to turn
|
|
back off. Open it, pair your device, and it closes on its own; you can close it early or restart the
|
|
two minutes if you need longer. The countdown runs on the Umbrel, so closing the page does not leave
|
|
the door open.
|
|
|
|
|
|
Owner ids can be given a name. They are long strings of random characters that say nothing about
|
|
which of your devices or wallets they are, so hover a row and label it. Names are kept on your Umbrel
|
|
and are never sent anywhere.
|
|
|
|
|
|
Blocked owners and refused attempts were two lists and are now one, because what you do with them is
|
|
the same: allow, or forget. Each row carries a badge saying which it was.
|
|
|
|
|
|
The page itself has been rebuilt to match Electrum Gate in this store: the same width, the same
|
|
layout, the same header, and the version number where you can see it. Buttons appear when you hover a
|
|
row, so a page you are only reading stays quiet. Explanatory paragraphs have moved into a new
|
|
"About this app" item in the menu, which also spells out what the relay can and cannot see.
|
|
|
|
|
|
Earlier releases:
|
|
|
|
|
|
0.4.0 fixed a status page that alternated between working and showing an error. It reached its helper
|
|
by a short name that another app in this store uses as well, so about half of its requests ended up
|
|
at the wrong app.
|
|
|
|
|
|
0.4.0 also dropped the wording that tied the app to one particular client. It is a general purpose
|
|
Evolu relay: any app built on Evolu can use it.
|
|
|
|
|
|
0.2.0 replaced the relay this app shipped with. Until 0.0.2 it packaged a vendor's own deployment,
|
|
which came with a quota manager and a PostgreSQL database and could not work outside that vendor's
|
|
service: clients skip the quota manager as soon as you point them at a relay of your own, while
|
|
that relay refuses every owner the quota manager never registered. 0.2.0 uses the relay from the
|
|
Evolu project instead. Measured, not assumed: a client synced to it and the data arrived. Three
|
|
containers became one relay plus a status page, and the database and its password are gone.
|
|
|
|
|
|
0.2.0 also added the status page behind your umbrelOS login, and control over who may sync.
|
|
|
|
|
|
Not verified yet: reading back from a second device, and whether every client platform can use a
|
|
relay of your own.
|
|
developer: "WhatsNext?"
|
|
website: https://sc.kamenier-hamer.nl/sysop/UmbrelApps
|
|
repo: https://sc.kamenier-hamer.nl/sysop/UmbrelApps
|
|
support: https://sc.kamenier-hamer.nl/sysop/UmbrelApps/issues
|
|
# De poort waarop umbrelOS deze app aanbiedt. Sinds 0.1.0 is dat de STATUSPAGINA
|
|
# en niet de relay: de app-proxy zet er de inlog van umbrelOS voor, en daar hoort
|
|
# een pagina wel achter en een relay niet. De cliënt wijst naar 3852, die de
|
|
# relay zelf publiceert. Zie docker-compose.yml en het plan Umbrelapp, PLAN.md §4h.
|
|
#
|
|
# Niet 4000, de eigen poort van de relay: die is een veelgebruikte poort en een
|
|
# botsing op de host merk je pas als de app niet start. Dat heeft bij Electrum
|
|
# Gate een keer een dag gekost, met 50002 tegen Fulcrum. 3851 sluit aan op de 3850
|
|
# van die app.
|
|
port: 3851
|
|
# Leeg laten bij een nieuw pakket; de plaatjes doet het store-team zelf.
|
|
gallery: []
|
|
path: ""
|
|
submitter: "WhatsNext?"
|
|
submission: https://sc.kamenier-hamer.nl/sysop/UmbrelApps
|
|
|
|
# ── Hieronder staat wat de voorgeschreven volgorde niet noemt ────────────────
|
|
#
|
|
# Het icoon, sinds 28-08-2026. Het bestand staat in deze repo en wordt door Gitea
|
|
# rauw uitgeleverd; dezelfde constructie als bij Electrum Gate. Bij inlevering in
|
|
# de officiële store moet deze regel juist weg, want die host iconen apart.
|
|
# Daarom staat hij als laatste: dan is het één regel schrappen.
|
|
icon: https://sc.kamenier-hamer.nl/sysop/UmbrelApps/raw/branch/main/whatsnext-evolu-relay/icon.png
|
|
|
|
# Wat niet in de back-up hoeft. Paden zijn relatief aan de app-datamap.
|
|
#
|
|
# Voor deze app is dat vrijwel niets, en dat is expres: de database ís de waarde
|
|
# van de app. Electrum Gate gebruikt dit veld wel, maar daar gaat het om een log
|
|
# en een statusbestand. Neem die keuze hier niet uit gewoonte over.
|
|
backupIgnore: []
|