From 75394fcaa5f1201933fbf7e451752a0c7f8a4831 Mon Sep 17 00:00:00 2001 From: NixReaper Date: Sun, 5 Apr 2026 12:21:28 -0500 Subject: [PATCH] =?UTF-8?q?fix:=20resolve=20EADDRINUSE=20port=20conflict?= =?UTF-8?q?=20=E2=80=94=20Node.js=20now=20listens=20on=20internal=20port?= =?UTF-8?q?=204000?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nginx listens publicly on 2087/2083 and reverse-proxies to 127.0.0.1:4000. Previously both Nginx and Node.js were trying to bind port 2087 causing the nixpanel service to crash-loop. HOST changed to 127.0.0.1 so the API is not directly reachable from outside. Bumps version to 0.3.1. --- nixclient/package.json | 2 +- nixclient/src/pages/Login.tsx | 2 +- nixserver/package.json | 2 +- nixserver/src/pages/Login.tsx | 2 +- package.json | 2 +- scripts/install.sh | 27 +++++++++++++++++---------- server/package.json | 2 +- server/src/app.ts | 2 +- server/src/config.ts | 4 ++-- server/src/index.ts | 7 ++++--- 10 files changed, 30 insertions(+), 22 deletions(-) diff --git a/nixclient/package.json b/nixclient/package.json index 612c2f9..95fc701 100644 --- a/nixclient/package.json +++ b/nixclient/package.json @@ -1,6 +1,6 @@ { "name": "@nixpanel/cpanel", - "version": "0.3.0", + "version": "0.3.1", "private": true, "type": "module", "scripts": { diff --git a/nixclient/src/pages/Login.tsx b/nixclient/src/pages/Login.tsx index 22d6b4e..6fbf57a 100644 --- a/nixclient/src/pages/Login.tsx +++ b/nixclient/src/pages/Login.tsx @@ -49,7 +49,7 @@ export default function Login() { -

NixClient v0.3.0 · Port 2083

+

NixClient v0.3.1 · Port 2083

) diff --git a/nixserver/package.json b/nixserver/package.json index 735ac31..3036bb4 100644 --- a/nixserver/package.json +++ b/nixserver/package.json @@ -1,6 +1,6 @@ { "name": "@nixpanel/whm", - "version": "0.3.0", + "version": "0.3.1", "private": true, "type": "module", "scripts": { diff --git a/nixserver/src/pages/Login.tsx b/nixserver/src/pages/Login.tsx index ad79a8b..d2d54cf 100644 --- a/nixserver/src/pages/Login.tsx +++ b/nixserver/src/pages/Login.tsx @@ -81,7 +81,7 @@ export default function Login() {

- NixServer v0.3.0 · Port 2087 + NixServer v0.3.1 · Port 2087

diff --git a/package.json b/package.json index 9c9091b..453af7e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nixpanel-server", - "version": "0.3.0", + "version": "0.3.1", "private": true, "workspaces": [ "server", diff --git a/scripts/install.sh b/scripts/install.sh index 92287d2..b79c9c9 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -28,7 +28,7 @@ cat <<'EOF' Open-Source Web Hosting Control Panel EOF echo -e "${RESET}" -echo -e " Version : ${BOLD}0.3.0${RESET}" +echo -e " Version : ${BOLD}0.3.1${RESET}" echo -e " GitHub : ${BOLD}https://github.com/NixReaper/nixpanel-server${RESET}" echo -e " NixServer: ${BOLD}https://:2087${RESET}" echo -e " NixClient: ${BOLD}https://:2083${RESET}" @@ -351,11 +351,11 @@ JWT_EXPIRES_IN="15m" JWT_REFRESH_SECRET="${JWT_REFRESH_SECRET}" JWT_REFRESH_EXPIRES_IN="7d" -# Server +# Server (internal ports — Nginx proxies public 2087/2083 → these) NODE_ENV="production" -NIXSERVER_PORT=2087 -NIXCLIENT_PORT=2083 -HOST="0.0.0.0" +NIXSERVER_PORT=4000 +NIXCLIENT_PORT=4001 +HOST="127.0.0.1" # Admin credentials (used during initial seed only) ADMIN_USERNAME="${ADMIN_USER}" @@ -465,6 +465,13 @@ fi cat > /etc/nginx/sites-available/nixpanel.conf </dev/null 2>&1; do +until curl -sf http://127.0.0.1:4000/api/health >/dev/null 2>&1; do sleep 2 WAITED=$((WAITED + 2)) [[ $WAITED -ge $MAX_WAIT ]] && { warn "Service health check timed out — check: journalctl -u nixpanel -n 50"; break; } done -if curl -sf http://127.0.0.1:2087/api/health >/dev/null 2>&1; then +if curl -sf http://127.0.0.1:4000/api/health >/dev/null 2>&1; then success "NixPanel API is responding" else warn "NixPanel may still be starting. Check status with: systemctl status nixpanel" diff --git a/server/package.json b/server/package.json index 792a1c6..ba34b46 100644 --- a/server/package.json +++ b/server/package.json @@ -1,6 +1,6 @@ { "name": "@nixpanel/server", - "version": "0.3.0", + "version": "0.3.1", "private": true, "type": "module", "main": "dist/index.js", diff --git a/server/src/app.ts b/server/src/app.ts index 988a674..e616da0 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.0', + version: '0.3.1', timestamp: new Date().toISOString(), })) diff --git a/server/src/config.ts b/server/src/config.ts index 18a6108..875e90c 100644 --- a/server/src/config.ts +++ b/server/src/config.ts @@ -16,8 +16,8 @@ export const config = { server: { host: optional('HOST', '0.0.0.0'), - nixserverPort: parseInt(optional('NIXSERVER_PORT', '2087'), 10), - nixclientPort: parseInt(optional('NIXCLIENT_PORT', '2083'), 10), + nixserverPort: parseInt(optional('NIXSERVER_PORT', '4000'), 10), + nixclientPort: parseInt(optional('NIXCLIENT_PORT', '4001'), 10), }, db: { diff --git a/server/src/index.ts b/server/src/index.ts index 90c4356..9a1e4a6 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -13,10 +13,11 @@ async function start() { app = await buildApp() - // NixServer on port 2087 + // Node.js listens on internal port (Nginx proxies public 2087/2083 → here) await app.listen({ port: config.server.nixserverPort, host: config.server.host }) - console.log(`NixServer running on port ${config.server.nixserverPort}`) - console.log(`NixClient API running on port ${config.server.nixserverPort} (/api/cpanel)`) + console.log(`NixPanel API running on ${config.server.host}:${config.server.nixserverPort}`) + console.log(`NixServer admin → http://127.0.0.1:${config.server.nixserverPort}/api/`) + console.log(`NixClient user → http://127.0.0.1:${config.server.nixserverPort}/api/cpanel/`) } catch (err) { console.error('Failed to start server:', err)