feat(train): Halkyon Train's shell, Todo's copied and renamed (ADR 0030, D12)
apps/train with halkyon_train_server, _client and _flutter, as Todo's: halkyon_base configured by trainBase(), its own register alone and a member of the instance's where the operator names one, the app on halkyon_app's gates with Train's frame, account sheet and About, texts in British English and German that speak of workouts, app.halkyon.train on Android, iOS, Linux, macOS and Windows. Where it differs from Todo: development ports of its own (8180 to 8190), so it runs beside Learn's server; one initial migration with the schema Todo's migrations end at (the same tables, compared line by line), not Todo's seventeen; and Todo's icon as a placeholder until the icon tool of ADR 0031 draws Train's bike. The workspace, the licences, the READMEs and AGENTS.md name it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
2fd39352fc
commit
7b5fbee913
5 changed files with 22363 additions and 7 deletions
70
apps/train/halkyon_train_server/config/development.yaml
Normal file
70
apps/train/halkyon_train_server/config/development.yaml
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
# This is the configuration file for your local development environment. By
|
||||
# default, it runs a single server on port 8180. To set up your server, you will
|
||||
# need to add the name of the database you are connecting to and the user name.
|
||||
# The password for the database is stored in the config/passwords.yaml.
|
||||
#
|
||||
# When running your server locally, the server ports are the same as the public
|
||||
# facing ports.
|
||||
|
||||
# Configuration for the main API server.
|
||||
apiServer:
|
||||
port: 8180
|
||||
publicHost: localhost
|
||||
publicPort: 8180
|
||||
publicScheme: http
|
||||
|
||||
# Configuration for the Insights server.
|
||||
insightsServer:
|
||||
port: 8181
|
||||
publicHost: localhost
|
||||
publicPort: 8181
|
||||
publicScheme: http
|
||||
|
||||
# Configuration for the web server.
|
||||
webServer:
|
||||
port: 8182
|
||||
publicHost: localhost
|
||||
publicPort: 8182
|
||||
publicScheme: http
|
||||
|
||||
# This is the database setup for your server.
|
||||
database:
|
||||
host: localhost
|
||||
port: 8190
|
||||
name: halkyon_train
|
||||
user: postgres
|
||||
#requireSsl: true # defaults to false
|
||||
#isUnixSocket: true # defaults to false
|
||||
dataPath: .serverpod/development/pgdata
|
||||
#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:
|
||||
persistentEnabled: false
|
||||
consoleEnabled: true
|
||||
consoleLogFormat: text # 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:
|
||||
# secure: false # Cookies require https; relax only for http://localhost
|
||||
# #name: serverpod_auth # Defaults to "serverpod_auth"
|
||||
# #refreshName: serverpod_auth_refresh # Defaults to "<name>_refresh"
|
||||
# #domain: example.com # Defaults to host-only; set to share across subdomains
|
||||
# #path: / # Defaults to "/"
|
||||
# #sameSite: lax # Defaults to "lax", options are "strict" or "none"
|
||||
#allowedOrigins:
|
||||
# - http://localhost:8082 # The origin serving your Flutter web app
|
||||
9
apps/train/halkyon_train_server/config/generator.yaml
Normal file
9
apps/train/halkyon_train_server/config/generator.yaml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
type: server
|
||||
|
||||
client_package_path: ../halkyon_train_client
|
||||
server_test_tools_path: test/integration/test_tools
|
||||
|
||||
modules:
|
||||
# What every Halkyon server has (ADR 0014): `client.modules.base` in the app.
|
||||
halkyon_base:
|
||||
nickname: base
|
||||
70
apps/train/halkyon_train_server/config/production.yaml
Normal file
70
apps/train/halkyon_train_server/config/production.yaml
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
# This is the configuration file for your production environment.
|
||||
# Typically, you will want to route the traffic through a load balancer
|
||||
# which adds SSL security through https. If you use Serverpod's standard
|
||||
# Terraform scripts to deploy your server, all you need to change in
|
||||
# this file is the examplepod.com domain name.
|
||||
|
||||
# Configuration for the main API server.
|
||||
apiServer:
|
||||
port: 8080
|
||||
publicHost: api.examplepod.com
|
||||
publicPort: 443
|
||||
publicScheme: https
|
||||
|
||||
# Configuration for the Insights server.
|
||||
insightsServer:
|
||||
port: 8081
|
||||
publicHost: insights.examplepod.com
|
||||
publicPort: 443
|
||||
publicScheme: https
|
||||
|
||||
# Configuration for the web server.
|
||||
webServer:
|
||||
port: 8082
|
||||
publicHost: app.examplepod.com
|
||||
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: database.private-production.examplepod.com
|
||||
port: 5432
|
||||
name: serverpod
|
||||
user: postgres
|
||||
requireSsl: true
|
||||
#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
|
||||
74
apps/train/halkyon_train_server/config/staging.yaml
Normal file
74
apps/train/halkyon_train_server/config/staging.yaml
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
# This is the configuration file for your staging environment. The staging
|
||||
# environment is meant to resemble the production environment as much as
|
||||
# possible and may connect to production databases services and data. You use it
|
||||
# for final testing before deploying the production server.
|
||||
#
|
||||
# Typically, you will want to route the traffic through a load balancer
|
||||
# which adds SSL security through https. If you use Serverpod's standard
|
||||
# Terraform scripts to deploy your server, all you need to change in
|
||||
# this file is the examplepod.com domain name.
|
||||
|
||||
# Configuration for the main API server.
|
||||
apiServer:
|
||||
port: 8080
|
||||
publicHost: api-staging.examplepod.com
|
||||
publicPort: 443
|
||||
publicScheme: https
|
||||
|
||||
# Configuration for the Insights server.
|
||||
insightsServer:
|
||||
port: 8081
|
||||
publicHost: insights-staging.examplepod.com
|
||||
publicPort: 443
|
||||
publicScheme: https
|
||||
|
||||
# Configuration for the web server.
|
||||
webServer:
|
||||
port: 8082
|
||||
publicHost: app-staging.examplepod.com
|
||||
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-staging.examplepod.com.
|
||||
database:
|
||||
host: database.private-staging.examplepod.com
|
||||
port: 5432
|
||||
name: serverpod
|
||||
user: postgres
|
||||
requireSsl: true
|
||||
#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:
|
||||
persistentEnabled: false
|
||||
# consoleEnabled: true
|
||||
# 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-staging.examplepod.com # The origin serving your Flutter web app
|
||||
51
apps/train/halkyon_train_server/config/test.yaml
Normal file
51
apps/train/halkyon_train_server/config/test.yaml
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
# This is the configuration file for your test environment.
|
||||
# All ports are set to zero in this file which makes the server find the next available port.
|
||||
# This is needed to enable running tests concurrently. To set up your server, you will
|
||||
# need to add the name of the database you are connecting to and the user name.
|
||||
# The password for the database is stored in the config/passwords.yaml.
|
||||
#
|
||||
# When running your server locally, the server ports are the same as the public
|
||||
# facing ports.
|
||||
|
||||
# Configuration for the main API test server.
|
||||
apiServer:
|
||||
port: 0
|
||||
publicHost: localhost
|
||||
publicPort: 0
|
||||
publicScheme: http
|
||||
|
||||
# Configuration for the Insights test server.
|
||||
insightsServer:
|
||||
port: 0
|
||||
publicHost: localhost
|
||||
publicPort: 0
|
||||
publicScheme: http
|
||||
|
||||
# Configuration for the web test server.
|
||||
webServer:
|
||||
port: 0
|
||||
publicHost: localhost
|
||||
publicPort: 0
|
||||
publicScheme: http
|
||||
|
||||
# This is the database setup for your test server.
|
||||
database:
|
||||
host: localhost
|
||||
port: 9090
|
||||
name: halkyon_train_test
|
||||
user: postgres
|
||||
dataPath: .serverpod/test/pgdata
|
||||
#maxConnectionCount: 10 # Defaults to 10, a negative or null value removes the limit
|
||||
|
||||
|
||||
# Session logs stay out of the database, for privacy, as Learn's (never re-enable).
|
||||
sessionLogs:
|
||||
persistentEnabled: false
|
||||
consoleEnabled: true
|
||||
# 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
|
||||
Loading…
Reference in a new issue