# 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 # ── HoneyOS bar ─────────────────────────────────────────────────────────────── # The strip along the top that ties the apps together. Empty = no bar. # Wirkt beim Neustart, nicht beim Bauen. # HONEYBAR_ORIGIN=https://honeyos.example.com # Only needed when HoneyOS lives on a different site than InkNote — then the # browser will not send its session and the bar needs this to fetch the app # list. Same domain (notes.example.org + example.org): leave empty. # HONEYBAR_KEY= # 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 /api/auth/oidc/callback