summaryrefslogtreecommitdiff
path: root/CHANGELOG.md
diff options
context:
space:
mode:
authorDawid Rycerz <dawid@rycerz.xyz>2026-01-22 22:07:32 +0100
committerDawid Rycerz <dawid@rycerz.xyz>2026-02-10 18:44:26 +0100
commit064a1d01c5c14f5ecc032fa9b8346a4a88b893f6 (patch)
treea2023f9ccd297ed8a41a3a0cc5699c2add09244d /CHANGELOG.md
witryna 0.1.0 — initial releasev0.1.0
Minimalist Git-based static site deployment orchestrator. Webhook-triggered builds in Podman/Docker containers with atomic symlink publishing, SIGHUP hot-reload, and zero-downtime deploys. See README.md for usage, CHANGELOG.md for details.
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md51
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