feat: initial release of volumen — a file-based Markdown blog engine
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# 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).
|
||||
Reference in New Issue
Block a user