53 lines
1.4 KiB
Markdown
53 lines
1.4 KiB
Markdown
# Configuration
|
|
|
|
> Status: initial draft. Field semantics are finalised as the loader lands.
|
|
|
|
volumen is configured by a single **TOML** file. By default it lives at
|
|
`/etc/volumen/config.toml` and is auto-generated on first start. CLI flags
|
|
passed to `volumen serve` override the file.
|
|
|
|
## Example `config.toml`
|
|
|
|
```toml
|
|
[server]
|
|
host = "0.0.0.0"
|
|
port = 9090
|
|
|
|
# Directory containing your Markdown posts.
|
|
content_dir = "/var/lib/volumen/posts"
|
|
|
|
[site]
|
|
title = "My Blog"
|
|
description = "A blog powered by volumen."
|
|
base_url = "https://example.com"
|
|
language = "en"
|
|
author = "Anonymous"
|
|
|
|
[admin]
|
|
# scrypt hash produced by `volumen hash-password`.
|
|
password_hash = ""
|
|
# Secret used to sign session cookies. Leave empty to auto-generate per start
|
|
# (sessions reset on restart).
|
|
session_key = ""
|
|
# Session lifetime in seconds (default 24h).
|
|
session_ttl = 86400
|
|
```
|
|
|
|
## CLI overrides
|
|
|
|
```bash
|
|
volumen serve --config /etc/volumen/config.toml \
|
|
--content ./posts \
|
|
--host 127.0.0.1 \
|
|
--port 9000
|
|
```
|
|
|
|
## Why TOML
|
|
|
|
- **First-class dates** — `date = 2026-01-15` is a real date, not a string.
|
|
- **Explicit typing** — no YAML-style implicit coercion (`no` → false, etc.).
|
|
- **No whitespace pitfalls** — indentation is not significant.
|
|
|
|
The same format is used for post frontmatter; see the post format section in
|
|
the project [`README.md`](../README.md).
|