Files
InkNote/.env.example
T
marcandClaude Opus 5 26a48af620 Put the OIDC set-up where it can be read
The .env.example had grown a page of prose around seven variables, which is
the wrong place for it: that file is read while editing, one line at a time.
It now names the variables and points at the readme.

The readme carries the whole thing instead, worked through with PocketID: the
client at the provider, the settings, the two lines the boot log can print,
and a table of what each failure looks like from the outside — including the
one that catches everyone, a server container that cannot reach an issuer the
browser reaches perfectly well.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 16:51:15 +02:00

44 lines
2.0 KiB
Bash

# cp .env.example .env — Compose reads it from this directory.
# Back the finished .env up with the database: without ENCRYPTION_KEY the
# stored notes cannot be read again.
# Both: openssl rand -hex 32
JWT_SECRET=
ENCRYPTION_KEY=
# The first administrator. There is no public sign-up — every other account is
# created in the app under Account → Administration. Used only until an admin
# exists, then ignored, so they can never reset anything later.
INKNOTE_ADMIN_USER=
INKNOTE_ADMIN_PASSWORD=
# Where the notes are kept on the host. Defaults to /srv/inknote in production
# and ./data for development — leave it commented unless you want another path,
# since one .env serves both. Create the directory first, or Docker creates it
# as root and the server (uid 1000) cannot write:
# mkdir -p /srv/inknote/{db,uploads} && chown -R 1000:1000 /srv/inknote
# INKNOTE_DATA_DIR=/srv/inknote
#
# Under /root also run "chmod o+x /root", or the server cannot reach it at all.
# That and the alternative: readme.md → Where the data lives.
# ── Optional ── unset keeps the default shown
# INKNOTE_MAX_IMAGE_MB=25 # pasted images
# INKNOTE_MAX_PDF_MB=200 # imported PDFs, limited separately
# INKNOTE_UID=1000 # must own INKNOTE_DATA_DIR
# INKNOTE_GID=1000
# MAX_VERSIONS_PER_NOTE=50 # default; each notebook can set its own
# VERSION_RETENTION_DAYS= # off: versions expire by count, not by age
# VERSION_COALESCE_MINUTES=5
# ALLOWED_ORIGINS= # only if the UI is on another host
# ── Signing in through an identity provider (OIDC) ── optional, off when empty
# Set-up and what it does: readme.md → Signing in through an identity provider
# INKNOTE_PUBLIC_URL=https://notes.example.com
# INKNOTE_OIDC_ISSUER=https://id.example.com
# INKNOTE_OIDC_CLIENT_ID=
# INKNOTE_OIDC_CLIENT_SECRET=
# INKNOTE_OIDC_LABEL=PocketID # the button says "Continue with …"
# INKNOTE_OIDC_SCOPES=openid profile email
# INKNOTE_OIDC_REDIRECT_URI= # only if not <public url>/api/auth/oidc/callback