Skip to main content

Configuration

Everything goes in .env, next to the compose file. Every setting has a sensible default.

The server​

VariableDefault
TUCK_SECRETRequired. openssl rand -hex 32. Seals the salts, questions and wrapped key. Keep it out of your database backups and back it up separately
TUCK_SECRET_FILERead the secret from a file instead, for Docker secrets
TUCK_FEATURESbothssh, files or both
TUCK_TRUSTED_PROXIESYour proxy's address or CIDR range, comma-separated. Required behind a proxy
TUCK_SECURE_COOKIEStruefalse only for local testing over plain HTTP
TUCK_SESSION_HOURS12The longest a login lasts
TUCK_FREEZE_AFTER6Timed lockouts before the account freezes
TUCK_MAX_FILE_MB25The largest file
TUCK_MAX_ITEMS5000Items per account
TUCK_MAX_STORAGE_MB1024Storage per account

The front door​

VariableDefault
TUCK_GATE_PASSWORDHides the login page until it's typed. See the front door
TUCK_GATE_WORDtuck.What the hidden page shows, up to 64 characters

The database​

VariableDefault
POSTGRES_PASSWORDThe bundled Postgres only. Letters and digits
TUCK_DATABASE_URLYour own Postgres only. See your own Postgres
TUCK_DB_SCHEMAtuckThe schema Tuck's tables live in
TUCK_DB_ALLOW_PLAINTEXTfalseAllow a remote database without TLS

Compose​

VariableDefault
TUCK_VERSIONlatestThe image tag to run
TUCK_BIND127.0.0.1The address compose publishes Tuck on
TUCK_PORT8080The port compose publishes Tuck on

Commands​

docker compose exec tuck /tuck assets

Prints the SHA-256 of every file Tuck serves, so you can check them against your own build. /tuck healthcheck is what Docker's health check runs.

docker compose exec tuck /tuck unfreeze <username>

Lifts a frozen account.