halkyon/deploy/.env.example
Tizian 「ティツィアーン」 6541af937a
docs: ADR 0009, feature parity for the other languages
What applies of Japanese's features to Chinese, Korean, Greek, German and
English, with the developer's choices and each decision's reason: Unihan's
characters, KRDict's words and levels, Make Me a Hanzi's and the curator's
own strokes, typed pinyin, radicals and readings by language; what doesn't
apply or has no open data. AGENTS.md, the server's README and the
instance's example environment follow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-14 14:35:35 +02:00

68 lines
3.8 KiB
Shell

# Copy to deploy/.env, restrict it (chmod 600), and fill in. deploy/.env is git-ignored
# and never goes into an image. How it reaches the server is decided when the server is
# set up (e.g. rendered from Proton Pass on the deploying machine and copied over SSH,
# so the server itself never holds Proton credentials).
# `http://localhost` for the local rehearsal; `learn.halkyon.eu` on its server.
DOMAIN=http://localhost
# Sidecars switched on beside the instance (sidecars/README.md), each by its compose file
# after the instance's own: compose.jellyfin.yaml, a Jellyfin people watch and listen to
# learn from. Unset: the instance alone.
#COMPOSE_FILE=compose.yaml:compose.jellyfin.yaml
# With the Jellyfin sidecar: the domain it answers at, which the instance then suggests
# to its people (the app's Jellyfin sign-in fills it in).
#JELLYFIN_DOMAIN=jellyfin.example.org
# Postgres password, shared by the postgres and server services.
# Generate: openssl rand -base64 32
POSTGRES_PASSWORD=
# Pepper for hashing session keys (server-side sessions). NEVER change it once
# sessions exist: everyone would be signed out, and anonymous accounts can't sign
# back in. Rotation only via fallbackSessionKeyHashPeppers.
# Generate: openssl rand -base64 32
SESSION_KEY_HASH_PEPPER=
# GitHub sign-in (optional): the client ID and secret of this instance's own GitHub
# OAuth app (GitHub → Settings → Developer settings → OAuth Apps), registered with the
# callback URLs app.halkyon.learn://github-callback and http://127.0.0.1/github-callback.
# Empty: GitHub sign-in is off, and the app doesn't offer it.
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
# Where the source of what this instance runs is, shown in the app's About dialog: both
# licences (AGPL for the app, SSPL for the server) require offering it to the people who
# use the instance. Empty: the project's repository, which is right for unmodified code.
# Running modified code, set it to where your modified source is published.
SOURCE_URL=
# The languages besides Japanese whose dictionaries this instance keeps (the dictionaries
# service): Chinese from CC-CEDICT, weekly (some 4 MB), in simplified and traditional
# characters; Korean from KRDict, about monthly (some 84 MB); their characters from
# Unihan, weekly (some 8 MB); the rest from Wiktionary (German and Greek with English
# meanings, English with German ones; for Korean the forms of its words and the
# readings of its Hanja), whose whole dump (some 3 GB) it downloads whenever kaikki.org
# makes a new one, about monthly, and converts in ten minutes. Unset: de,el,en,ko,zh.
# Empty: none. Files of a language taken out are removed, and the server unloads them.
#DICTIONARY_LANGUAGES=de,el,en,ko,zh
# The Jellyfin server the app suggests to this instance's people, who watch and listen
# to learn from it (Halkyon Learn's Watch screen). Empty: `https://jellyfin.` on the
# domain registered for this instance (learn.example.org → jellyfin.example.org), if a
# Jellyfin server answers there; `none`: no suggestion.
JELLYFIN_URL=
# How much room people's images and sounds may take on this instance, in MiB. Empty: the
# defaults, 100 for an anonymous person (anonymous accounts are meant to become identified
# ones), 500 for one signed in with GitHub, and 15000 for everyone together (0: no limit
# for everyone together). Every file is in the database, so also in each of the 3 dumps
# this server keeps (and a fourth while a deploy writes its own): files take five times
# their size on the disk. One person may get more than the default; as the operator,
# in deploy/ (their id is their account's, "authUserId"):
# docker compose exec postgres psql -U halkyon_learn -d halkyon_learn -c "INSERT INTO
# file_allowance (\"authUserId\", \"maxBytes\", note) VALUES ('<id>', 2147483648, 'asked by mail')"
FILE_LIMIT_ANONYMOUS_MB=
FILE_LIMIT_IDENTIFIED_MB=
FILE_LIMIT_INSTANCE_MB=