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:
HarmenandClaude Opus 5.5 committed 2026-10-09 12:26:48 +02:00
1 parent ae6950e2b9
commit ef98bd5483
5 files changed
+110

No files matched your search

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