diff options
Diffstat (limited to 'CHANGELOG.md')
| -rw-r--r-- | CHANGELOG.md | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..18cc413 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,51 @@ +# Changelog + +## 0.1.0 — 2026-02-10 + +Initial release. + +Witryna is a minimalist Git-based static site deployment orchestrator. +It listens for webhook triggers, pulls Git repositories, runs +containerized build commands, and publishes static assets via atomic +symlink switching. + +### Features + +- **HTTP webhook server** (axum) with bearer token auth, rate limiting, + and JSON error responses +- **Git integration**: clone, fetch, shallow/full depth, automatic + submodule initialization, LFS support +- **Containerized builds** via Podman or Docker with security hardening + (`--cap-drop=ALL`, `--network=none` default, resource limits) +- **Atomic publishing** via timestamped directories and symlink switching +- **Post-deploy hooks** with environment variables (`WITRYNA_SITE`, + `WITRYNA_BUILD_DIR`, `WITRYNA_PUBLIC_DIR`, `WITRYNA_BUILD_TIMESTAMP`) +- **SIGHUP hot-reload** for adding/removing/reconfiguring sites without + restart +- **Periodic polling** with configurable intervals and new-commit + detection +- **Build queue** (depth-1, latest-wins) for concurrent webhook requests +- **Per-site environment variables** passed to builds and hooks +- **Build config overrides** in `witryna.toml` (image, command, public) +- **Container working directory** (`container_workdir`) for monorepo + support +- **Cache volumes** for persistent build caches across deploys +- **Old build cleanup** with configurable retention + (`max_builds_to_keep`) +- **Build and git timeouts** with configurable durations + +### CLI + +- `witryna serve` — start the deployment server +- `witryna validate` — validate config and print summary +- `witryna run <site>` — one-off synchronous build with `--verbose` +- `witryna status` — deployment status with `--json` and `--site` + +### Packaging + +- Debian/Ubuntu `.deb` and Fedora/RHEL `.rpm` packages with systemd + service, man pages, and example configurations +- Automatic container runtime detection in postinst (Docker group + + systemd override, or Podman subuids + lingering + override) +- Static binary tarball for manual installs +- Example reverse proxy configs for Caddy and nginx |
