Move .env.example where Compose actually looks, and make it true

It sat in backend/ while Compose reads .env from the repository root, so
the "cp .env.example .env" in the compose header pointed at nothing.

It also documented four settings that Compose never forwarded to the
container: ALLOWED_ORIGINS and the three version-retention knobs would
have been set in .env and silently done nothing. They are passed through
now, unset meaning the server's own defaults. Checked both directions:
every variable Compose reads is documented, and nothing documented is
ignored.

Dropped PORT from the example — the bundled nginx proxies to 4000 by
name, so changing it could only break that. Added the data-directory and
uid/gid settings, which were read but undocumented.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
marcandClaude Opus 5 committed 2026-08-08 13:09:29 +02:00
1 parent d01aa85ff9
commit a61e6901b1
5 files changed
+63 -36

No files matched your search

-34
View File
@@ -1,34 +0,0 @@
# Copy to ../.env next to docker-compose.yml and fill in.
# Back this file up together with the database: without ENCRYPTION_KEY the
# stored notes cannot be read again.
# Signs session tokens. Changing it logs everyone out.
# openssl rand -hex 32
JWT_SECRET=
# Encrypts note bodies at rest. LOSING THIS MEANS LOSING THE NOTES.
# Must be exactly 32 bytes as hex.
# openssl rand -hex 32
ENCRYPTION_KEY=
# The first administrator.
#
# There is no public sign-up — accounts are created by an admin inside the app
# under Account → Administration. These two settle who the first one is:
#
# empty database → the account is created from both values
# existing users, → INKNOTE_ADMIN_USER names which of them becomes admin.
# no admin yet Without it, the oldest account is promoted.
# an admin exists → both are ignored entirely
#
# So they can never reset an existing password or take rights away; the worst
# they can do on a running instance is nothing.
INKNOTE_ADMIN_USER=
INKNOTE_ADMIN_PASSWORD=
# ── Optional ──
# PORT=4000
# ALLOWED_ORIGINS= # only if the UI is served from another host
# MAX_VERSIONS_PER_NOTE=50
# VERSION_RETENTION_DAYS=90
# VERSION_COALESCE_MINUTES=5