Configuration
ConvoLog is configured via environment variables passed to the Docker container. Set them in your docker-compose.yml under environment:, or in a .env file alongside your Compose file.
Required variables
| Variable | Description |
|---|---|
DATABASE_URL | Path to the SQLite database file. Recommended: file:/app/data/convolog.db |
NEXTAUTH_SECRET | A random string used to sign session tokens. Generate with openssl rand -base64 32. |
NEXTAUTH_URL | The canonical public URL of your ConvoLog instance, e.g. https://convolog.example.com. |
Optional variables
| Variable | Default | Description |
|---|---|---|
UPLOAD_DIR | /app/data/uploads | Directory for file evidence uploads. |
BACKUP_DIR | /app/backups | Directory where scheduled backups are written. |
BACKUP_CRON | 0 2 * * * | Cron expression for scheduled backups. Default: daily at 02:00 UTC. |
MAX_UPLOAD_SIZE_MB | 25 | Maximum size of a single file upload in megabytes. |
LOG_LEVEL | info | Logging verbosity: debug, info, warn, error. |
DISABLE_SIGNUP | false | Set to true to prevent new users from registering without an invite. |
Example .env file
DATABASE_URL=file:/app/data/convolog.dbNEXTAUTH_SECRET=your-random-secret-hereNEXTAUTH_URL=https://convolog.example.com
BACKUP_CRON=0 3 * * *MAX_UPLOAD_SIZE_MB=50DISABLE_SIGNUP=trueNever commit your
.envfile. Add it to.gitignore.
Generating a secret
openssl rand -base64 32Or with Node.js:
require('crypto').randomBytes(32).toString('base64')Volumes
Make sure the following paths are mounted as Docker volumes so data survives container restarts:
| Container path | Purpose |
|---|---|
/app/data | SQLite database and uploads |
/app/backups | Scheduled backup output |