Atreides Services: app-map in de store
Naar het voorbeeld van whatsnext-atreides-assets: compose, manifest, icoon en data/app/.gitkeep. De beheer-app (8090) hangt achter app_proxy, zonder ports: en zonder wachtwoord in de compose; ATREIDES_SERVICES_HOST staat op 0.0.0.0. Poort 3854 in het manifest. De image is nog niet gepind: er is nog geen release. Na de eerste zet tools/release-bump.mjs tag en digest erin. Het icoon is de stier van Atreides Assets op blauw getint glas, zodat de twee te onderscheiden zijn. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ae6950e2b9
commit
ef98bd5483
5 files changed
+110
No files matched your search
@@ -8,6 +8,7 @@ A community app store for [Umbrel](https://umbrel.com), store id `whatsnext`. Ad
|
||||
| **Electrum Gate** | Reach your own Electrum server from outside your network, over TLS. |
|
||||
| **Evolu Relay** | Run the sync relay behind Trezor Suite's labels on your own Umbrel, with an owner allowlist. |
|
||||
| **Atreides Assets** | A self-hosted overview of your crypto and precious metals. |
|
||||
| **Atreides Services** | Your own price feed for Atreides Assets, recorded around the clock. Early version. |
|
||||
|
||||
The image recipes for the first two are in [tools/](tools/); the tests are in [tests/](tests/).
|
||||
|
||||
|
||||
Whitespace-only changes.
@@ -0,0 +1,58 @@
|
||||
# ═══════════════════════════════════════════════════════════════════════════════
|
||||
# Atreides Services - een eigen koersdienst: legt dag en nacht koersen vast en
|
||||
# levert ze straks via een API aan Atreides Assets.
|
||||
#
|
||||
# Eén container: de Node-server serveert de beheer-app én bezit de database. Het
|
||||
# recept staat NIET in deze repo maar in `HomeGit/AtreidesServices` (de Dockerfile
|
||||
# in de root daar), net als bij Atreides Assets; deze store draagt alleen de
|
||||
# app-definitie.
|
||||
#
|
||||
# Geen `ports:` hier. De beheer-app is een web-UI en hangt volledig achter
|
||||
# app_proxy. De API voor afnemers krijgt later een eigen poort, en pas DIE wordt
|
||||
# eventueel gepubliceerd; daar staat nu nog niets voor.
|
||||
# ═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
services:
|
||||
# umbrelOS genereert deze service zelf; wij vullen alleen in waar hij heen moet
|
||||
# wijzen. De hostnaam heeft de vorm <app-id>_<compose-service>_1.
|
||||
#
|
||||
# PROXY_AUTH_ADD blijft weg, dus de inlog van umbrelOS staat ervoor: dit is de
|
||||
# beheer-app en geen dienst voor een cliënt zonder browsersessie.
|
||||
app_proxy:
|
||||
environment:
|
||||
APP_HOST: whatsnext-atreides-services_server_1
|
||||
APP_PORT: 8090
|
||||
|
||||
server:
|
||||
# NOG NIET GEPIND: er is nog geen image geduwd. Na de eerste release zet
|
||||
# `node tools/release-bump.mjs whatsnext-atreides-services <versie> <digest>`
|
||||
# de tag en de digest hier neer; dat script vervangt de hele regel en
|
||||
# controleert anoniem bij het register dat de digest onder die tag hangt.
|
||||
#
|
||||
# DE TAG IS DE VERSIE VAN DE IMAGE EN NIET DIE VAN DE APP, net als bij Atreides
|
||||
# Assets: `version` in umbrel-app.yml moet bij élke wijziging omhoog, ook als
|
||||
# alleen dit bestand verandert.
|
||||
image: sc.kamenier-hamer.nl/sysop/atreides-services:0.0.1
|
||||
restart: on-failure
|
||||
# Geen `user:` nodig: de image zet zelf `USER node` (uid 1000). Of die in een
|
||||
# door umbrelOS aangemaakte datamap mag schrijven, is nog niet bewezen; zie
|
||||
# de werkafspraken van UmbrelApps, sectie Atreides Assets.
|
||||
#
|
||||
# Geen healthcheck hier: die zit in de image (GET /api/health, ook zonder
|
||||
# login bereikbaar).
|
||||
environment:
|
||||
# ZONDER DIT IS DE APP ONBEREIKBAAR. De server bindt op 127.0.0.1 zolang TLS
|
||||
# én wachtwoord ontbreken, en in een container is dat de loopback van de
|
||||
# container: app_proxy komt er dan niet bij. De waarschuwing over TLS bij het
|
||||
# opstarten is daardoor verwacht. De netwerkgrens is hier de afwezigheid van
|
||||
# een `ports:`-regel plus de proxy.
|
||||
ATREIDES_SERVICES_HOST: "0.0.0.0"
|
||||
# HIER STAAT MET OPZET GEEN `ATREIDES_SERVICES_PASSWORD`. De login is
|
||||
# optioneel en wordt in de app zelf gezet, op de pagina Systeem. Een
|
||||
# wachtwoord uit de omgeving wint van dat scherm, en dan is het alleen nog
|
||||
# via dit bestand te veranderen: de les van Atreides Assets 0.1.0.
|
||||
volumes:
|
||||
# De datamap: db.sqlite, de minuutbestanden per maand en secrets.json. Een
|
||||
# koersreeks per moment is niet opnieuw op te halen, dus dit is de map die
|
||||
# in de back-up van umbrelOS hoort.
|
||||
- ${APP_DATA_DIR}/data/app:/data
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,51 @@
|
||||
# De veldvolgorde hieronder is niet vrij: de packaging-documentatie van de
|
||||
# officiele appstore schrijft hem voor. Zie de tabel in
|
||||
# HomeGit/Docs/Referenties/UmbrelApps/Umbrel-appstore-spec.md, en de toets in
|
||||
# tests/test_appstore_vorm.py die hem vasthoudt.
|
||||
#
|
||||
# Wat de spec niet noemt, staat onderaan dit bestand en niet ertussen.
|
||||
manifestVersion: 1
|
||||
id: whatsnext-atreides-services
|
||||
category: finance
|
||||
name: Atreides Services
|
||||
version: "0.0.1"
|
||||
tagline: Your own price feed, recorded around the clock
|
||||
description: >-
|
||||
A price service that runs on your Umbrel and keeps what it records. It is built to fetch
|
||||
prices from the sources you configure, day and night, and to store every point with where
|
||||
it came from and when it was fetched. A price series per moment cannot be fetched again
|
||||
later, so this one is kept, in your app folder, and goes along with your Umbrel backup.
|
||||
|
||||
|
||||
It is the companion of Atreides Assets: that app will read its prices from here instead
|
||||
of every portfolio asking the providers on its own. The service knows instruments and
|
||||
prices, never what anyone owns.
|
||||
|
||||
|
||||
This is an early version. It brings the administration app with its System page and an
|
||||
optional login of its own; collecting prices and the API for other apps follow in later
|
||||
versions.
|
||||
releaseNotes: >-
|
||||
First version in this store: the administration app, without price collection yet.
|
||||
developer: "WhatsNext?"
|
||||
website: https://sc.kamenier-hamer.nl/sysop/UmbrelApps
|
||||
dependencies: []
|
||||
repo: https://sc.kamenier-hamer.nl/sysop/UmbrelApps
|
||||
support: https://sc.kamenier-hamer.nl/sysop/UmbrelApps/issues
|
||||
# De poort waarop umbrelOS de beheer-app aanbiedt. 3850, 3851 en 3853 zijn van de
|
||||
# andere drie apps in deze store, 3852 is de eigen poort van de relay.
|
||||
port: 3854
|
||||
# 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 ────────────────
|
||||
#
|
||||
# GEEN defaultPassword. De login van de beheer-app is optioneel en wordt in de
|
||||
# app zelf gezet, op de pagina Systeem; zie het commentaar in docker-compose.yml.
|
||||
|
||||
# Het icoon hoort bij een eigen store en moet bij inlevering in de officiele
|
||||
# store juist weg: die host iconen apart. Daarom staat het als laatste.
|
||||
icon: https://sc.kamenier-hamer.nl/sysop/UmbrelApps/raw/branch/main/whatsnext-atreides-services/icon.png
|
||||
Reference in new issue
Block a user