All checks were successful
CI / check (push) Successful in 46m25s
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>
65 lines
2.6 KiB
YAML
65 lines
2.6 KiB
YAML
# Myrmex's server at myrmex.li (Halkyon Days' ADR 0045, D22; todo.halkyon.eu, then
|
|
# todo.halkyon.li before it), behind the instance's Caddy (deploy/compose.myrmex.yaml):
|
|
# its API and its web server on the one domain, as Halkyon's and Train's; its database
|
|
# in the instance's PostgreSQL.
|
|
|
|
# Configuration for the main API server.
|
|
apiServer:
|
|
port: 8080
|
|
publicHost: myrmex.li
|
|
publicPort: 443
|
|
publicScheme: https
|
|
|
|
# No insightsServer, as Halkyon's: without the block Serverpod doesn't start Insights.
|
|
|
|
# Configuration for the web server.
|
|
webServer:
|
|
port: 8082
|
|
publicHost: myrmex.li
|
|
publicPort: 443
|
|
publicScheme: https
|
|
|
|
# This is the database setup for your servers. The default for the Google Cloud
|
|
# Engine Terraform configuration is to connect on a private IP address.
|
|
# If you are connecting on a public IP (e.g. on AWS or Google Cloud Run), you
|
|
# connect on the public IP of the database e.g. database.examplepod.com.
|
|
database:
|
|
host: postgres
|
|
port: 5432
|
|
name: halkyon_myrmex
|
|
user: halkyon_myrmex
|
|
# On the instance's own network, never leaving the server.
|
|
requireSsl: false
|
|
#isUnixSocket: true # defaults to false
|
|
#maxConnectionCount: 10 # Defaults to 10, a negative or null value removes the limit
|
|
|
|
|
|
maxRequestSize: 524288 # The maximum size of requests allowed in bytes
|
|
|
|
# Session logs stay out of the database, for privacy, as Learn's (never re-enable).
|
|
sessionLogs:
|
|
consoleEnabled: false
|
|
persistentEnabled: false
|
|
# consoleLogFormat: json # Defaults to "json", options are "text" or "json"
|
|
|
|
#futureCall:
|
|
# enabled: true # Defaults to true, set to false to disable scheduling and running future calls
|
|
# executionEnabled: true # Defaults to true
|
|
# concurrencyLimit: 1 # Defaults to 1, a negative or null value removes the limit
|
|
# scanInterval: 5000 # Unit in milliseconds, defaults to 5000
|
|
|
|
# Recommended when serving web clients: keeps auth tokens in httpOnly
|
|
# cookies. Without this, web tokens live in JavaScript-readable storage,
|
|
# where any XSS can steal them. Web clients opt in with
|
|
# `client.cookieAuth = true`. Requires `allowedOrigins`; browsers from
|
|
# origins not in the list lose cross-origin access, including to public
|
|
# endpoints.
|
|
#authCookie:
|
|
# sameSite: lax # Defaults to "lax", options are "strict" or "none"
|
|
# #name: serverpod_auth # Defaults to "serverpod_auth"
|
|
# #refreshName: serverpod_auth_refresh # Defaults to "<name>_refresh"
|
|
# #domain: examplepod.com # Defaults to host-only; set to share across subdomains
|
|
# #path: / # Defaults to "/"
|
|
# #secure: true # Defaults to true; the cookie is only sent over https
|
|
#allowedOrigins:
|
|
# - https://app.examplepod.com # The origin serving your Flutter web app
|