feat: v0.4.0 — Apache service stack, shell access, log viewer, changelog
Service stack (backend): - webserver.ts rewritten: apache2/php-fpm routes replacing nginx; per-account Apache log endpoint; PHP-FPM reload per version; apache2ctl configtest/reload - accounts.ts: added PUT /:id/shell to toggle /bin/bash vs /usr/sbin/nologin, runs usermod -s and writes audit log New UI features (nixserver): - ShellAccess page: grant/revoke SSH access per account via AccountPicker - ApacheLogs page: live log viewer (access/error) per account; replaces stub - NginxLogs: re-exports ApacheLogs (NixPanel uses Apache, not NGINX) - WebServer page: shows apache2, php8.2-fpm, php8.3-fpm status with reload buttons; config test; Apache log viewer Bug fixes: - Accounts.tsx: Lucide icon size prop type widened (string|number); removed unused Users import; dropped duplicate NGINX log card - Removed soon badge from ShellAccess and ApacheLogs entries Project: - CHANGELOG.md created with full history from 0.2.x through 0.4.0 - All packages bumped from 0.3.2 to 0.4.0
This commit is contained in:
+8
-9
@@ -2,33 +2,32 @@ import 'dotenv/config'
|
||||
import { buildApp } from './app.js'
|
||||
import { config } from './config.js'
|
||||
import prisma from './db/client.js'
|
||||
import { startScheduler, stopScheduler } from './scheduler.js'
|
||||
|
||||
async function start() {
|
||||
let app
|
||||
|
||||
try {
|
||||
// Verify DB connection
|
||||
await prisma.$connect()
|
||||
console.log('Database connected')
|
||||
console.log('[nixpanel] Database connected')
|
||||
|
||||
app = await buildApp()
|
||||
|
||||
// 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(`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/`)
|
||||
console.log(`[nixpanel] API running on ${config.server.host}:${config.server.nixserverPort}`)
|
||||
|
||||
startScheduler()
|
||||
|
||||
} catch (err) {
|
||||
console.error('Failed to start server:', err)
|
||||
console.error('[nixpanel] Failed to start:', err)
|
||||
await prisma.$disconnect()
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
// Graceful shutdown
|
||||
const shutdown = async (signal: string) => {
|
||||
console.log(`${signal} received, shutting down...`)
|
||||
console.log(`[nixpanel] ${signal} received, shutting down...`)
|
||||
await app?.close()
|
||||
await stopScheduler()
|
||||
await prisma.$disconnect()
|
||||
process.exit(0)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user