From 489755136c068da3b8d51f66bc76f71439dfeb8f Mon Sep 17 00:00:00 2001 From: NixReaper Date: Sat, 11 Apr 2026 09:05:14 -0500 Subject: [PATCH] chore: bump version to 0.4.1, update CHANGELOG --- CHANGELOG.md | 11 +++++++++++ nixclient/package.json | 2 +- nixserver/package.json | 2 +- package.json | 2 +- server/package.json | 2 +- server/src/app.ts | 2 +- 6 files changed, 16 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3124a07..8748e85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,17 @@ Pre-1.0 versions treat MINOR as feature releases and PATCH as bug fixes. --- +## [0.4.1] — 2026-04-11 + +### Bug Fixes (Installer) +- **SpamAssassin service name**: On Ubuntu 24.04 the service unit is `spamd`, not `spamassassin`. The old `systemctl enable spamassassin` caused the install to abort due to `set -euo pipefail`. +- **PowerDNS port 53 conflict**: `systemd-resolved` stub listener now disabled in a dedicated step that runs *before* package installation. Previously it ran after apt had already tried (and failed) to restart `pdns` during post-install because port 53 was still held by `systemd-resolved`. +- **Git clone into pre-existing directory**: The directory structure step (`mkdir -p`) creates `$INSTALL_DIR` before the clone step, causing `git clone` to fail with "destination path already exists". Fixed by cloning to a temp directory and copying contents into place (preserving any existing `data/` and `logs/` subdirectories). +- **Apache 403 on frontend assets**: Frontend dist files were created with root-only permissions. Added a post-build step that sets 755/644 on all dist directories and files so Apache (`www-data`) can read them. +- **Apache 500 on all API requests**: `mod_proxy_http` was not enabled. Without it, `ProxyPass http://...` directives silently fail and Apache returns 500 for every API call. Also enabled `mod_proxy_wstunnel` (required for the `ws://` WebSocket reverse proxy). + +--- + ## [0.4.0] — 2026-04-11 ### New Features diff --git a/nixclient/package.json b/nixclient/package.json index 83a1ea3..13b9bd3 100644 --- a/nixclient/package.json +++ b/nixclient/package.json @@ -1,6 +1,6 @@ { "name": "@nixpanel/cpanel", - "version": "0.4.0", + "version": "0.4.1", "private": true, "type": "module", "scripts": { diff --git a/nixserver/package.json b/nixserver/package.json index 1b6f035..6cb068f 100644 --- a/nixserver/package.json +++ b/nixserver/package.json @@ -1,6 +1,6 @@ { "name": "@nixpanel/whm", - "version": "0.4.0", + "version": "0.4.1", "private": true, "type": "module", "scripts": { diff --git a/package.json b/package.json index 7ddd1dd..73eacfb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nixpanel-server", - "version": "0.4.0", + "version": "0.4.1", "private": true, "workspaces": [ "server", diff --git a/server/package.json b/server/package.json index b27bdc3..ecf8a74 100644 --- a/server/package.json +++ b/server/package.json @@ -1,6 +1,6 @@ { "name": "@nixpanel/server", - "version": "0.4.0", + "version": "0.4.1", "private": true, "type": "module", "main": "dist/index.js", diff --git a/server/src/app.ts b/server/src/app.ts index 3c241d4..b1b46ab 100644 --- a/server/src/app.ts +++ b/server/src/app.ts @@ -73,7 +73,7 @@ export async function buildApp() { fastify.get('/api/health', async () => ({ status: 'ok', - version: '0.3.2', + version: '0.4.1', timestamp: new Date().toISOString(), }))