# Configuration for the production instance learn.halkyon.eu. # Caddy terminates TLS on 443 and forwards to the API server on 8080, and the # web server's paths to it on 8082; Insights doesn't run. # Configuration for the main API server. apiServer: port: 8080 publicHost: learn.halkyon.eu publicPort: 443 publicScheme: https # No insightsServer: without this block Serverpod doesn't start Insights at all (it # would otherwise listen on every interface). To use Insights later, add the block # back (port 8081), set `serviceSecret` in the production passwords, and reach the # port through an SSH tunnel, never through Caddy. # The web server serves profile pages (ADR 0011), the dictionaries devices # download (ADR 0012), SimpleLogin's forwarding page (ADR 0020) and the calls # between the instance's services (ADR 0016). Caddy forwards the paths of the # first three alone to it (deploy/Caddyfile), never the last; everything else # stays on the API server. webServer: port: 8082 publicHost: learn.halkyon.eu publicPort: 443 publicScheme: https # 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. database: host: postgres port: 5432 name: halkyon_learn user: halkyon_learn requireSsl: false #isUnixSocket: true # defaults to false #maxConnectionCount: 10 # Defaults to 10, a negative or null value removes the limit # This is the setup for Redis. 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. redis.examplepod.com. redis: enabled: false host: redis.private-production.examplepod.com port: 6379 #user: # defaults to empty #requireSsl: true # defaults to false maxRequestSize: 524288 # The maximum size of requests allowed in bytes sessionLogs: consoleEnabled: true persistentEnabled: false # consoleLogFormat: json # Defaults to "json", options are "text" or "json" # futureCallExecutionEnabled: true # Defaults to true #futureCall: # 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 "_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