49 lines
2.1 KiB
Markdown
49 lines
2.1 KiB
Markdown
# Configuration
|
|||
|
|
|
||
|
|
Everything is an environment variable. There is no config file — a Rune has
|
||
|
|
nowhere to put one that the operator would ever see.
|
||
|
|
|
||
|
|
## Core
|
||
|
|
|
||
|
|
| Variable | Default | What it does |
|
||
|
|
|---|---|---|
|
||
|
|
| `VERDANDE_BASE_URL` | `http://localhost:8080` | The public address. Invite links, password resets, calendar feeds and the mail-to-task address are all built from it. |
|
||
|
|
| `VERDANDE_ADDR` | `:8080` | Listen address. |
|
||
|
|
| `VERDANDE_DATA_DIR` | `/data` | Database, uploaded files and backups. |
|
||
|
|
| `VERDANDE_DEV` | `false` | Human-readable logs at debug level, and a relaxed origin check so a Vite dev server can connect. Never in production. |
|
||
|
|
|
||
|
|
## Sessions and links
|
||
|
|
|
||
|
|
| Variable | Default | What it does |
|
||
|
|
|---|---|---|
|
||
|
|
| `VERDANDE_SESSION_TTL` | `720h` | How long a login lasts. |
|
||
|
|
| `VERDANDE_INVITE_TTL` | `168h` | How long an invite link stays valid. |
|
||
|
|
| `VERDANDE_RESET_TTL` | `1h` | How long a password-reset link stays valid. |
|
||
|
|
|
||
|
|
Any Go duration: `720h`, `30m`, `45s`.
|
||
|
|
|
||
|
|
## Mail
|
||
|
|
|
||
|
|
| Variable | Default | What it does |
|
||
|
|
|---|---|---|
|
||
|
|
| `VERDANDE_SMTP_HOST` | — | Blank disables outbound mail entirely. |
|
||
|
|
| `VERDANDE_SMTP_PORT` | `587` | |
|
||
|
|
| `VERDANDE_SMTP_USER` | — | |
|
||
|
|
| `VERDANDE_SMTP_PASS` | — | |
|
||
|
|
| `VERDANDE_SMTP_FROM` | `verdande@localhost` | Sender address. Also decides the domain of the [mail-to-task address](mail.md). |
|
||
|
|
| `VERDANDE_SMTP_STARTTLS` | `true` unless port 465 | Port 465 is TLS from the first byte; everything else negotiates. |
|
||
|
|
| `VERDANDE_SMTP_INSECURE` | `false` | Skip certificate verification. For a self-signed internal mail server, and nothing else. |
|
||
|
|
|
||
|
|
!!! info "Running without a mail server"
|
||
|
|
Perfectly supported. Invite links are shown in the app for you to send
|
||
|
|
yourself, password resets are written to the log, and reminders arrive in the
|
||
|
|
app and as Web Push rather than by email.
|
||
|
|
|
||
|
|
## What is *not* configured here
|
||
|
|
|
||
|
|
**AI providers** are per-user, under settings in the app — see [AI](ai.md). One
|
||
|
|
person's key is not the instance's key.
|
||
|
|
|
||
|
|
**The VAPID keypair** for Web Push is generated on first use and stored in the
|
||
|
|
database. There is nothing to set.
|