halkyon.li's deploy under Halkyon Days' names (D13, D23): the compose
files compose.halkyon.yaml, compose.myrmex.yaml and
compose.myrmex-search.yaml, the service myrmex-server, the images
halkyon-halkyon-server, halkyon-halkyon-dictionaries and
halkyon-myrmex-server, the databases halkyon_halkyon and halkyon_myrmex
and the superuser halkyon_halkyon, and every variable under its
service's name (LEARN_ is HALKYON_, TODO_ MYRMEX_). The Compose project
and its network keep halkyon-learn, as the volumes are named after it.
Every server is a register of its own (D7, D9, D20): no
ACCOUNT_REGISTER_URL, INSTANCE_SECRET or INSTANCE_MEMBER_ any more; each
reads its sign-in settings as <APP>_SIGN_UP, <APP>_SIMPLELOGIN_…, and so
on (the mail server alone is shared), signs in with a SimpleLogin app of
its own, and serves its register's pages itself: Myrmex's, Train's and
Meditate's servers add the SimpleLogin callback, the privacy page and
the profile pages, and their Caddy sites forward them.
Halkyon answers at halkyon.li and Myrmex at myrmex.li (D22):
learn.halkyon.li and todo.halkyon.li leave ramiel's HAProxy and Caddy;
Halkyon's and Myrmex's builds, snaps and F-Droid listings connect to the
new addresses, and Halkyon's App Links name halkyon.li.
The switch is a script run once by hand (D24), as the deployed
redeploy.sh can't carry the migration records nor rename an open
database: deploy/host/switch-0045.sh rewrites .env (env-0045.sh: every
secret kept, a decoy key made for each new register), dumps every
database, renames them and the superuser through a temporary superuser
in one transaction, fast-forwards, carries the migration records to the
modules' new names, migrates, copies the developer's account (its keys
and its operator's scope, D21) into the other registers, and starts
everything. deploy/host/link-simplelogin.sh then links each register's
new SimpleLogin identity to that account, found by the four words of its
wait screen. Their SQL was run against PostgreSQL 16 on the databases
the migrations define. redeploy.sh no longer carries records.
BREAKING CHANGE: learn.halkyon.li and todo.halkyon.li no longer answer;
the apps connect to halkyon.li and myrmex.li, and each app's accounts
are its own.
Whats-New: Each app now keeps its own accounts; Halkyon is at halkyon.li and Myrmex at myrmex.li.
Whats-New-De: Jede App führt jetzt ihre eigenen Konten; Halkyon ist unter halkyon.li erreichbar und Myrmex unter myrmex.li.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
Learn's folder is apps/halkyon, Todo's apps/myrmex; every package of
ours takes the prefix halkyone_ (halkyone_halkyon_*, halkyone_myrmex_*,
halkyone_train_*, halkyone_meditate_*, halkyone_app, halkyone_base_* and
the other shared ones; halkyon_oidc_* keeps its name, D11). Halkyon and
Myrmex take the app IDs one.halky.halkyon and one.halky.myrmex (D10);
Train and Meditate keep theirs, while every app's Android namespace,
Kotlin package and method channels move to one.halky. The snaps are
halkyon and myrmex (D17), each built in a clone with its recipe in
place of snap/, as Train's and Todo's were.
Serverpod finds a database's migrations by its module's name, which
changed with the packages':
- each server's new, empty migration ("rename") records itself under
the new names and deletes the rows under the old ones;
- deploy/redeploy.sh copies each database's record to the new name
before the migrations (carry_module), so the renamed servers find
their databases migrated; a copy, never a move, so a deploy failing
before the migration commits leaves the old rows in place;
- Train and Meditate keep their devices' databases: halkyone_app's
carryMigrationRecord copies their record before the sync engine
opens them (openPersonDatabase);
- the client migrations' generated moduleName getters, one line each,
say the new names: Serverpod's client asserts in debug builds that
every migration names the module, and create-migration never writes
a migration's files again.
Train's WorkManager work is enqueued under new names, the former ones
cancelled: the work kept names the workers' former classes.
The release tool: an app's tags of its earlier names count as its
history (legacyTagPrefixes), the shared packages' former paths count
for its version, and every snap is built in a clone (atRoot gone).
The databases, Docker images and Compose project keep their names
until step 5.
BREAKING CHANGE: Halkyon (Learn) and Myrmex (Todo) are new apps to
Android and the Snap Store: installs of app.halkyon.learn and
app.halkyon.todo don't update to them.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-12 23:57:02 +01:00
Renamed from apps/todo/halkyon_todo_server/config/production.yaml (Previous history)