# Inkwell production settings. Copy to `.env` and edit: # # cp .env.example .env # # Only POSTGRES_PASSWORD has no default — compose refuses to start without it. # Everything else here is optional. Anything NOT in this file (site name, signups, # attachment limits, trash retention, link previews) is configured in the admin # Settings UI and stored in the database, not here. # --- required --------------------------------------------------------------- # Generate one and keep it: changing it later means changing it inside the database # too. Letters and digits only — it goes into a URL, where `@ / : #` break it. # # openssl rand -base64 24 | tr -d '/+=' | head -c 32 POSTGRES_PASSWORD= # --- optional --------------------------------------------------------------- # Which build: `latest` (the `main` branch, default), `dev` (newer, less settled), # or a commit sha on `main` to pin one exact build — the rollback lever. #INKWELL_TAG=latest # The host port the app is published on. #INKWELL_PORT=5000 # Which interface to bind. Behind a reverse proxy, set 127.0.0.1 so only the proxy # can reach the app. #INKWELL_BIND=0.0.0.0 # How many proxies sit in front is a setting, not an env var: Settings → Security → # "Trusted proxy hops" (default 1). # How much the app logs. Credential events (sign-ins, failures, throttles, device # tokens issued) log at INFO; read them with `docker compose logs app`. #INKWELL_LOG_LEVEL=INFO # Database identity. Changing these AFTER the first start does not rename anything # that already exists — the volume keeps whatever the first run created. #POSTGRES_USER=inkwell #POSTGRES_DB=inkwell # --- Upgrading from ThoughtSync --------------------------------------------- # # Inkwell was called ThoughtSync, and a deployment installed under that name has # its data in volumes and a database named for it. Point at them instead of # renaming anything. Leaving these unset on such a deployment starts Inkwell # against EMPTY volumes; the old data is untouched, but you would not see it. # # Use the full names `docker volume ls` prints — compose prefixes them with the # project name, so they usually look like `thoughtsync_thoughtsync-db`: #INKWELL_DB_VOLUME=thoughtsync_thoughtsync-db #INKWELL_DATA_VOLUME=thoughtsync_thoughtsync-data # # And the database identity the first start created, which a volume keeps: #POSTGRES_USER=thoughtsync #POSTGRES_DB=thoughtsync # # Rename any THOUGHTSYNC_* lines already in your .env to INKWELL_*; the old names # aren't read. # --- a note on HTTPS -------------------------------------------------------- # # The session cookie is marked Secure automatically when a request arrives over # HTTPS, directly or via a proxy setting X-Forwarded-Proto. # # The desktop and Android apps read a bare hostname as https://, so a server on # plain HTTP has to be typed with its `http://`.