feat(halkyon,myrmex,train,meditate)!: a register for each app, at halkyon.li and myrmex.li (ADR 0045, step 5)
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>
2026-11-13 02:04:48 +01:00
|
|
|
# Halkyon Meditate's site (compose.meditate.yaml, ADR 0038, step 7): its API server, its
|
|
|
|
|
# register's pages, and the operator's library's files from its web server (D16), which
|
|
|
|
|
# serves them only with an access its catalogue gave a person signed in.
|
feat(meditate,deploy): Meditate beside the instance, and every server's public address from .env
Meditate's deploy step (ADR 0038, step 7; ADR 0039, D14), as Todo's: the
server's Dockerfile with the library's check compiled beside it, its
production config on its own database and role, compose.meditate.yaml as a
member of the register, its site sending /library/* to the web server and
the rest to the API server, the operator's library read-only in a compose
file of its own, and redeploy.sh, backup.sh and the image replay taking it
in.
Every server's public address now comes from .env (Serverpod's
SERVERPOD_API_SERVER_PUBLIC_HOST and _WEB_SERVER_, which win over the
config file): Train, Todo and Meditate from their domains, Learn from
LEARN_PUBLIC_HOST, unset learn.halkyon.eu as before. Without it a server on
halkyon.li would name halkyon.eu in its SimpleLogin callback, profile pages
and privacy page.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-08 19:12:31 +01:00
|
|
|
{$MEDITATE_DOMAIN} {
|
|
|
|
|
encode zstd gzip
|
|
|
|
|
|
|
|
|
|
# Recordings and pictures, served by ranges (encode leaves audio and pictures
|
|
|
|
|
# as they are).
|
|
|
|
|
handle /library/* {
|
|
|
|
|
reverse_proxy meditate-server:8082
|
|
|
|
|
}
|
|
|
|
|
|
feat(halkyon,myrmex,train,meditate)!: a register for each app, at halkyon.li and myrmex.li (ADR 0045, step 5)
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>
2026-11-13 02:04:48 +01:00
|
|
|
# Its register's pages (Halkyon Days' ADR 0045, D20), on its web server: the
|
|
|
|
|
# profile pages (`/@handle`), the privacy page and SimpleLogin's forwarding page.
|
|
|
|
|
# Never the calls between servers (`/halkyon-base/…`), which nothing makes now.
|
|
|
|
|
@register path /@* /privacy /simplelogin-callback
|
|
|
|
|
handle @register {
|
|
|
|
|
reverse_proxy meditate-server:8082
|
|
|
|
|
}
|
|
|
|
|
|
feat(meditate,deploy): Meditate beside the instance, and every server's public address from .env
Meditate's deploy step (ADR 0038, step 7; ADR 0039, D14), as Todo's: the
server's Dockerfile with the library's check compiled beside it, its
production config on its own database and role, compose.meditate.yaml as a
member of the register, its site sending /library/* to the web server and
the rest to the API server, the operator's library read-only in a compose
file of its own, and redeploy.sh, backup.sh and the image replay taking it
in.
Every server's public address now comes from .env (Serverpod's
SERVERPOD_API_SERVER_PUBLIC_HOST and _WEB_SERVER_, which win over the
config file): Train, Todo and Meditate from their domains, Learn from
LEARN_PUBLIC_HOST, unset learn.halkyon.eu as before. Without it a server on
halkyon.li would name halkyon.eu in its SimpleLogin callback, profile pages
and privacy page.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-08 19:12:31 +01:00
|
|
|
# Serverpod's streaming methods use WebSockets; reverse_proxy upgrades them as-is.
|
feat(halkyon,myrmex,train,meditate)!: a register for each app, at halkyon.li and myrmex.li (ADR 0045, step 5)
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>
2026-11-13 02:04:48 +01:00
|
|
|
# The visitor's address comes last in X-Forwarded-For, as for Halkyon's server.
|
feat(meditate,deploy): Meditate beside the instance, and every server's public address from .env
Meditate's deploy step (ADR 0038, step 7; ADR 0039, D14), as Todo's: the
server's Dockerfile with the library's check compiled beside it, its
production config on its own database and role, compose.meditate.yaml as a
member of the register, its site sending /library/* to the web server and
the rest to the API server, the operator's library read-only in a compose
file of its own, and redeploy.sh, backup.sh and the image replay taking it
in.
Every server's public address now comes from .env (Serverpod's
SERVERPOD_API_SERVER_PUBLIC_HOST and _WEB_SERVER_, which win over the
config file): Train, Todo and Meditate from their domains, Learn from
LEARN_PUBLIC_HOST, unset learn.halkyon.eu as before. Without it a server on
halkyon.li would name halkyon.eu in its SimpleLogin callback, profile pages
and privacy page.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-08 19:12:31 +01:00
|
|
|
handle {
|
|
|
|
|
reverse_proxy meditate-server:8080
|
|
|
|
|
}
|
|
|
|
|
}
|