Clone this repository
For self-hosted knots, clone URLs may differ based on your setup.
Download tar.gz
Caddy now serves files from each site's dist/ directory for normal
visitors, only proxying to the Rust app for CMS/auth/API/websocket
paths. Falls back to the app if no static file is found.
- docker-compose: pass DEFAULT_STORAGE_LIMIT env var to container
- entrypoint: write default_storage_limit to lichen.toml on first run
- env.j2: template the new var from ansible inventory
- inventory.example: add lichen_default_storage_limit example ("5MB")
override.yml uploads a locally-built binary to {{ deploy_dir }}/bin/lichen-server
and restarts the app container. The compose entrypoint already prefers that
path over the image-bundled binary when present, so no other changes are
needed to take effect.
Usage:
# deploy
ansible-playbook override.yml --extra-vars \
"lichen_binary_src=./target/x86_64-unknown-linux-musl/release/lichen-server"
# revert to stock
ansible-playbook override.yml --extra-vars \
"lichen_override_revert=true"
Pre-tasks enforce exactly one mode and that the local binary exists before
uploading. Post-upload waits for healthcheck to go green so a bad build
fails loudly instead of silently.
README adds a "Deploy a custom binary" section with the build command.