build(deploy)!: the instance's compose file is compose.learn.yaml, beside compose.train.yaml and compose.todo.yaml

No file has Compose's default name any more, so .env's COMPOSE_FILE is always set,
naming compose.learn.yaml first (.env.example sets it). compose.yaml stays as a link to
compose.learn.yaml for the one deploy that switches learn.halkyon.eu's .env over: the
deploy's merge runs with the COMPOSE_FILE from before. A later commit removes it.

BREAKING CHANGE: an instance's deploy/.env must set COMPOSE_FILE, starting with
compose.learn.yaml, before the link goes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-02 22:06:18 +01:00
commit 3ac1880ac8
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64
3 changed files with 267 additions and 260 deletions

View file

@ -26,12 +26,12 @@ EDRDG's licence asks a server showing its dictionaries to update them at least
once a month:
- **An instance** keeps them current by itself: the `dictionaries` service in
`deploy/compose.yaml` (the curator, in a container of its own) downloads
`deploy/compose.learn.yaml` (the curator, in a container of its own) downloads
EDRDG's files of the day once its files are a week old, converts them, and
replaces them in a volume the server reads (`curate update`, the curator's
README); the server takes them up within the hour. To supply files yourself
instead, remove the service and mount `deploy/dictionaries/` into the server
(`compose.yaml` says how), and update them monthly.
(`compose.learn.yaml` says how), and update them monthly.
- **Development:** `dart run halkyon_learn_curator:curate update --into
../halkyon_learn_server/dictionaries` in the curator's folder (about a
minute); the server takes them up within the hour.

View file

@ -25,7 +25,7 @@ webServer:
publicPort: 443
publicScheme: https
# The database: the `postgres` service of deploy/compose.yaml, reachable only inside
# The database: the `postgres` service of deploy/compose.learn.yaml, reachable only inside
# the Compose network (it publishes no port), so no TLS between server and database.
# The password comes from the environment (SERVERPOD_DATABASE_PASSWORD, set in
# deploy/.env); there is no production passwords.yaml.

View file

@ -3,7 +3,7 @@ import 'package:halkyon_learn_server/src/dictionary/dictionary_loader.dart';
import 'package:serverpod/serverpod.dart';
/// Rereads the dictionary folder and loads the files that changed: the
/// dictionaries service replaces them weekly (`deploy/compose.yaml`); the
/// dictionaries service replaces them weekly (`deploy/compose.learn.yaml`); the
/// server schedules it hourly when it starts (`server.dart`): an hour
/// with nothing changed costs it a hash of each file.
class DictionaryReloadFutureCall extends FutureCall {