2026-08-25 17:18:22 +02:00
|
|
|
# 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
|
2026-08-28 11:49:15 +02:00
|
|
|
category: files
|
2026-08-25 17:18:22 +02:00
|
|
|
name: Evolu Relay
|
2026-08-28 12:08:19 +02:00
|
|
|
version: "0.3.0"
|
2026-08-28 11:49:15 +02:00
|
|
|
tagline: Encrypted sync and backup for your local-first apps
|
2026-08-25 17:18:22 +02:00
|
|
|
description: >-
|
2026-08-28 11:49:15 +02:00
|
|
|
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.
|
2026-08-25 17:18:22 +02:00
|
|
|
|
|
|
|
|
|
2026-08-28 11:49:15 +02:00
|
|
|
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.
|
2026-08-25 17:18:22 +02:00
|
|
|
|
|
|
|
|
|
2026-08-28 11:49:15 +02:00
|
|
|
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.
|
2026-08-28 11:22:32 +02:00
|
|
|
|
|
|
|
|
|
2026-08-28 11:49:15 +02:00
|
|
|
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.
|
2026-08-25 17:18:22 +02:00
|
|
|
|
|
|
|
|
|
2026-08-28 11:49:15 +02:00
|
|
|
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.
|
2026-08-25 17:18:22 +02:00
|
|
|
releaseNotes: >-
|
2026-08-28 11:41:58 +02:00
|
|
|
Fixes 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. It now uses a name that is unique to this one.
|
|
|
|
|
|
|
|
|
|
|
2026-08-28 11:49:15 +02:00
|
|
|
This release also drops the wording that tied the app to one particular client. It is a general
|
2026-08-28 11:51:41 +02:00
|
|
|
purpose Evolu relay: any app built on Evolu can use it. And the explanation under the new owners
|
|
|
|
|
switch now matches the switch: it used to describe the open state even when it was closed.
|
2026-08-28 11:49:15 +02:00
|
|
|
|
|
|
|
|
|
2026-08-28 11:41:58 +02:00
|
|
|
Earlier releases:
|
|
|
|
|
|
|
|
|
|
|
2026-08-28 11:49:15 +02:00
|
|
|
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.
|
2026-08-25 18:31:20 +02:00
|
|
|
|
|
|
|
|
|
2026-08-28 11:49:15 +02:00
|
|
|
0.2.0 also added the status page behind your umbrelOS login, and control over who may sync.
|
2026-08-25 17:18:22 +02:00
|
|
|
|
|
|
|
|
|
2026-08-28 11:49:15 +02:00
|
|
|
Not verified yet: reading back from a second device, and whether every client platform can use a
|
|
|
|
|
relay of your own.
|
2026-08-25 17:18:22 +02:00
|
|
|
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
|
2026-08-28 11:22:32 +02:00
|
|
|
# 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
|
2026-08-28 11:49:15 +02:00
|
|
|
# een pagina wel achter en een relay niet. De cliënt wijst naar 3852, die de
|
2026-08-28 11:22:32 +02:00
|
|
|
# relay zelf publiceert. Zie docker-compose.yml en het plan Umbrelapp, PLAN.md §4h.
|
2026-08-25 17:18:22 +02:00
|
|
|
#
|
|
|
|
|
# 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 ────────────────
|
|
|
|
|
#
|
2026-08-28 11:13:23 +02:00
|
|
|
# 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
|
2026-08-25 17:18:22 +02:00
|
|
|
|
|
|
|
|
# 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: []
|