Releases: nusendra/ployer
Release list
v0.1.0-alpha.44
Fixes
- Normalize and validate domain input. A domain entered as a full URL (e.g.
https://slw.homes) was stored verbatim, and its slashes broke the per-domain REST routes (405 on wildcard/primary/verify/delete). Domains are now normalized on add — scheme, path, port, leading*., and trailing dot stripped, lowercased — and non-hostnames are rejected with a clear 400.
Full Changelog: v0.1.0-alpha.43...v0.1.0-alpha.44
Full Changelog: v0.1.0-alpha.43...v0.1.0-alpha.44
v0.1.0-alpha.43
Fixes
- Wildcard hint text wrapping. The add-domain wildcard hint collapsed to one character per line; it now wraps normally across the full width (block flow, inline checkbox).
Full Changelog: v0.1.0-alpha.42...v0.1.0-alpha.43
Full Changelog: v0.1.0-alpha.42...v0.1.0-alpha.43
v0.1.0-alpha.42
Fixes & Features
- Toggle wildcard on existing domains. Previously the wildcard checkbox only applied when creating a domain, so an existing domain could never become a wildcard. Added a per-domain Enable/Disable Wildcard button (
POST /applications/:app_id/domains/:domain/wildcard); the flag persists and the route is rewritten on the next deploy. - Fix hint overflow — the add-domain wildcard hint text no longer overflows its container.
Full Changelog: v0.1.0-alpha.41...v0.1.0-alpha.42
Full Changelog: v0.1.0-alpha.41...v0.1.0-alpha.42
v0.1.0-alpha.41
Features
- Wildcard toggle in the app domain form. Adding a domain now has a wildcard checkbox (previewing
*.<domain>); it sends the flag on create and shows a Wildcard badge on wildcard domains. Completes the UI for the wildcard custom-domain feature (alpha.39/40).
Add domain yourdomain.com with wildcard checked, set the app's tenant-domain env, then redeploy to serve *.yourdomain.com over HTTPS.
Full Changelog: v0.1.0-alpha.40...v0.1.0-alpha.41
Full Changelog: v0.1.0-alpha.40...v0.1.0-alpha.41
v0.1.0-alpha.40
Features
- Manage the Cloudflare API token from the settings UI. Configure HTTPS wildcard domains in the browser instead of editing server files.
- New Settings → Wildcard Domains (HTTPS) section: masked token field, save/clear, token-set status, and a warning with the installer command when the running Caddy lacks the Cloudflare DNS plugin.
- Token is stored in the settings DB (never returned by the API) and applied to the running proxy immediately — no restart. New wildcard deploys pick it up; the token is embedded into
apps.caddyand applied oncaddy reload. - Token is seeded from the settings DB on startup, with
CF_API_TOKENenv as a fallback.
Pairs with alpha.39 (wildcard custom domains). Set the token in Settings, then add a wildcard domain and redeploy.
Full Changelog: v0.1.0-alpha.39...v0.1.0-alpha.40
Full Changelog: v0.1.0-alpha.39...v0.1.0-alpha.40
v0.1.0-alpha.39
Features
- Wildcard custom domains with optional HTTPS. An app can now host unbounded tenant subdomains (
*.example.com) behind a single Caddy route.- Domains gain a
wildcardflag (migration 007). - Real domains get Let's Encrypt DNS-01 wildcard certs via Cloudflare when
CF_API_TOKENis set;nip.io/sslip.iostay on plain HTTP to avoid LE rate limits. - Every deploy re-persists all of an app's domains with the fresh ephemeral host port, so wildcard/HTTPS routes never go stale after a redeploy.
install.shinstalls a Cloudflare-plugin Caddy build and wiresCF_API_TOKENinto the caddy service when a token is provided.
- Domains gain a
Setup for HTTPS wildcard
- Point
*.yourdomain+ apex A records at the server (DNS-only). - Provide a Cloudflare API token (
Zone:DNS:Edit) asCF_API_TOKEN. - Add the domain with
wildcard: trueand redeploy.
Full Changelog: v0.1.0-alpha.38...v0.1.0-alpha.39
Full Changelog: v0.1.0-alpha.38...v0.1.0-alpha.39
v0.1.0-alpha.38
Fixes
- fix: preserve apps.caddy across self-update — the installer truncated
apps.caddyon every run. Because self-update re-runs the installer, this wiped every deployed app's Caddy route, so app subdomains fell through to the dashboard catch-all and redirected to/login. Nowapps.caddyis only created when missing, so app routes survive updates.
Full Changelog: v0.1.0-alpha.37...v0.1.0-alpha.38
Full Changelog: v0.1.0-alpha.37...v0.1.0-alpha.38
v0.1.0-alpha.37
Fix — 502 after redeploy
Regression from alpha.35 (ephemeral host ports). App containers get a new host port on every deploy, but the Caddy route was written only once and never updated — so after a redeploy Caddy pointed at the old, dead port and returned 502.
persist_route now upserts: it removes any existing block for the domain and rewrites it with the current upstream, then reloads Caddy. Routes stay valid across redeploys.
Upgrade note: hosts must update to this build for redeploys to stop 502ing.
Full Changelog: v0.1.0-alpha.36...v0.1.0-alpha.37
Full Changelog: v0.1.0-alpha.36...v0.1.0-alpha.37
v0.1.0-alpha.36
Hardening — disk safety
Prevents a single app from filling the host disk and taking down Ployer's own database (the failure behind dashboard 500s + zeroed stats).
- Container log rotation: every container Ployer creates now uses json-file rotation
max-size=10m max-file=5— a 50MB ceiling on captured stdout/stderr per container. - Host disk guard: the stats loop checks the root filesystem each cycle and logs a warning at 85% used, error at 95%, so the operator is alerted before the disk fills.
Also fixes a pre-existing ployer-docker test (missing restart field).
Full Changelog: v0.1.0-alpha.35...v0.1.0-alpha.36
Full Changelog: v0.1.0-alpha.35...v0.1.0-alpha.36
v0.1.0-alpha.35
Fix
Multi-app port collision — app containers were published on the host using the container's own EXPOSE port, so any app exposing :80 failed with address already in use (collided with Caddy and with other apps).
- App containers now publish on an auto-assigned ephemeral host port; Caddy is pointed at
localhost:<assigned_port>. - Removed
remove_containers_by_port, which was meaningless with ephemeral ports and could target the reverse proxy.
Unblocks running multiple apps (or any app on :80) on one host.
Full Changelog: v0.1.0-alpha.34...v0.1.0-alpha.35
Full Changelog: v0.1.0-alpha.34...v0.1.0-alpha.35