Skip to content

Releases: nusendra/ployer

v0.1.0-alpha.44

v0.1.0-alpha.44 Pre-release
Pre-release

Choose a tag to compare

@nusendra nusendra released this 03 Jul 06:04

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

v0.1.0-alpha.43 Pre-release
Pre-release

Choose a tag to compare

@nusendra nusendra released this 03 Jul 05:42

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

v0.1.0-alpha.42 Pre-release
Pre-release

Choose a tag to compare

@nusendra nusendra released this 03 Jul 04:31

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

v0.1.0-alpha.41 Pre-release
Pre-release

Choose a tag to compare

@nusendra nusendra released this 03 Jul 03:49

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

v0.1.0-alpha.40 Pre-release
Pre-release

Choose a tag to compare

@nusendra nusendra released this 03 Jul 03:14

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.caddy and applied on caddy reload.
    • Token is seeded from the settings DB on startup, with CF_API_TOKEN env 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

v0.1.0-alpha.39 Pre-release
Pre-release

Choose a tag to compare

@nusendra nusendra released this 03 Jul 00:20

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 wildcard flag (migration 007).
    • Real domains get Let's Encrypt DNS-01 wildcard certs via Cloudflare when CF_API_TOKEN is set; nip.io/sslip.io stay 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.sh installs a Cloudflare-plugin Caddy build and wires CF_API_TOKEN into the caddy service when a token is provided.

Setup for HTTPS wildcard

  1. Point *.yourdomain + apex A records at the server (DNS-only).
  2. Provide a Cloudflare API token (Zone:DNS:Edit) as CF_API_TOKEN.
  3. Add the domain with wildcard: true and 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

v0.1.0-alpha.38 Pre-release
Pre-release

Choose a tag to compare

@nusendra nusendra released this 02 Jul 23:00

Fixes

  • fix: preserve apps.caddy across self-update — the installer truncated apps.caddy on 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. Now apps.caddy is 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

v0.1.0-alpha.37 Pre-release
Pre-release

Choose a tag to compare

@nusendra nusendra released this 29 Jun 09:58

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

v0.1.0-alpha.36 Pre-release
Pre-release

Choose a tag to compare

@nusendra nusendra released this 29 Jun 02:54

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

v0.1.0-alpha.35 Pre-release
Pre-release

Choose a tag to compare

@nusendra nusendra released this 29 Jun 01:36

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