84 lines
4.5 KiB
Bash
84 lines
4.5 KiB
Bash
# Copy to .env next to docker-compose.yml and edit. Compose reads it automatically;
|
|
# git ignores .env. Every value here is optional — the defaults in docker-compose.yml
|
|
# are what you get without it.
|
|
|
|
# --- Ports on your machine -----------------------------------------------------------
|
|
# Container-side ports are fixed (API 5000, nginx 80); only these move.
|
|
#LADOSE_WEB_PORT=8080
|
|
#LADOSE_API_PORT=5000
|
|
|
|
# --- Database ------------------------------------------------------------------------
|
|
# Overrides ConnectionStrings:DbContext from LaDOSE.Api/appsettings.json. The stack has
|
|
# no Postgres of its own, so this has to point at a reachable server.
|
|
#
|
|
# Postgres on the machine running the containers:
|
|
#LADOSE_DB_CONNECTION=Host=host.docker.internal;Username=tom;Password=tom;Database=ladoseapi
|
|
#
|
|
# Postgres elsewhere on the LAN — check the name resolves *inside* the container
|
|
# (`docker compose run --rm api getent hosts kafka.local`) and use the IP if it does not:
|
|
#LADOSE_DB_CONNECTION=Host=kafka.local;Username=tom;Password=tom;Database=ladoseapi
|
|
#
|
|
# Sql/dump_20240316.sql then Sql/2026-08-05_roles.sql populate an empty database.
|
|
|
|
# --- Secrets -------------------------------------------------------------------------
|
|
# appsettings.json carries placeholders for these. Any value works for JWT locally, but
|
|
# it must be at least 32 characters: Startup.cs feeds it to HMAC-SHA256 as raw ASCII.
|
|
#LADOSE_JWT_SECRET=dev-only-secret-not-for-any-deployed-environment
|
|
#LADOSE_SMASH_API_KEY=
|
|
#LADOSE_CHALLONGE_API_KEY=
|
|
|
|
# --- Google Sheets export ------------------------------------------------------------
|
|
# Powers "Push to Google Sheets" next to Export CSV on /tournaments: writes the generated
|
|
# ranking table into one tab, named after the latest event in the selection.
|
|
#
|
|
# Writer: Disabled | Logging | ServiceAccount.
|
|
# Disabled the button says "not configured" and refuses (the default)
|
|
# Logging writes the payload to the API log instead of Google — use this to check
|
|
# a selection without touching a spreadsheet
|
|
# ServiceAccount writes for real
|
|
#LADOSE_SHEETS_WRITER=Disabled
|
|
#
|
|
# The target spreadsheet. THIS is the value to change each year when you start a new
|
|
# sheet — then share the new sheet with the service-account address below as Editor.
|
|
# It is the id from the sheet URL, not the whole URL:
|
|
# https://docs.google.com/spreadsheets/d/<THIS PART>/edit
|
|
#LADOSE_SHEETS_SPREADSHEET_ID=
|
|
#
|
|
# Path *inside the container* to the service-account JSON key. docker-compose.yml mounts
|
|
# ./secrets (git-ignored) at /run/secrets, so drop the key there and leave this as is.
|
|
#
|
|
# One-time Google setup: create a project, enable the Google Sheets API, create a service
|
|
# account, create a JSON key, save it as secrets/ladose-sheets-sa.json, then share the
|
|
# spreadsheet with the account's ...iam.gserviceaccount.com address as Editor. Only that
|
|
# last sharing step repeats when you switch to a new sheet.
|
|
#LADOSE_SHEETS_SA_CREDENTIALS_PATH=/run/secrets/ladose-sheets-sa.json
|
|
|
|
# --- Discord bot -----------------------------------------------------------------------
|
|
# LaDOSE.DiscordBot only runs when you ask for it: `docker compose --profile bot up`.
|
|
# These values are rendered into the container's settings.json at start — the bot reads
|
|
# that file and never the environment.
|
|
#
|
|
# From https://discord.com/developers/applications -> your application -> Bot -> Reset
|
|
# Token. Setting this is what enables the rendering; leave it commented out and the bot
|
|
# falls back to the placeholder settings.json baked into the image (which cannot connect).
|
|
# The bot also needs the MESSAGE CONTENT intent enabled on that same page: Program.cs asks
|
|
# for DiscordIntents.MessageContents and Discord refuses the connection otherwise.
|
|
#LADOSE_DISCORD_TOKEN=
|
|
#
|
|
# Where the bot finds LaDOSE.Api. Resolved inside the container, so this is the compose
|
|
# service name, not localhost, and LADOSE_API_PORT does not apply.
|
|
#LADOSE_BOT_REST_URL=http://api:5000
|
|
#
|
|
# A LaDOSE.Api login for the bot — the commands that read events and rankings authenticate
|
|
# with it. Without it those commands log "Unable to contact services" and the rest of the
|
|
# bot still works.
|
|
#LADOSE_BOT_REST_USER=
|
|
#LADOSE_BOT_REST_PASSWORD=
|
|
#
|
|
# Challonge is shared with the api service: LADOSE_CHALLONGE_API_KEY above feeds both.
|
|
|
|
# --- Frontend ------------------------------------------------------------------------
|
|
# Only needed if the API is not on http://localhost:${LADOSE_API_PORT}. Resolved by the
|
|
# browser, so container names like http://api:5000 will not work.
|
|
#LADOSE_API_BASE_URL=http://localhost:5000
|