Files
nixpanel-server/server/src/routes/nixserver/index.ts
T
NixReaper fa61d0d766 feat: first-run setup wizard on initial admin login
After first login, admins are redirected to a 4-step setup wizard:
1. Server hostname (FQDN)
2. Primary and secondary nameservers
3. Admin email and optional password change
4. Review and confirm

Setup state is persisted in the settings table (setup_complete=true).
Once complete, the redirect never triggers again. Settings are saved
to the DB and hostname is applied via hostnamectl.
2026-04-05 13:17:16 -05:00

31 lines
1.3 KiB
TypeScript

import type { FastifyInstance } from 'fastify'
import accountRoutes from './accounts.js'
import packageRoutes from './packages.js'
import resellerRoutes from './resellers.js'
import dnsRoutes from './dns.js'
import emailRoutes from './email.js'
import sslRoutes from './ssl.js'
import phpRoutes from './php.js'
import serviceRoutes from './services.js'
import systemRoutes from './system.js'
import securityRoutes from './security.js'
import backupRoutes from './backup.js'
import webserverRoutes from './webserver.js'
import setupRoutes from './setup.js'
export default async function nixserverRoutes(fastify: FastifyInstance) {
fastify.register(setupRoutes, { prefix: '/setup' })
fastify.register(accountRoutes, { prefix: '/accounts' })
fastify.register(packageRoutes, { prefix: '/packages' })
fastify.register(resellerRoutes, { prefix: '/resellers' })
fastify.register(dnsRoutes, { prefix: '/dns' })
fastify.register(emailRoutes, { prefix: '/email' })
fastify.register(sslRoutes, { prefix: '/ssl' })
fastify.register(phpRoutes, { prefix: '/php' })
fastify.register(serviceRoutes, { prefix: '/services' })
fastify.register(systemRoutes, { prefix: '/system' })
fastify.register(securityRoutes, { prefix: '/security' })
fastify.register(backupRoutes, { prefix: '/backup' })
fastify.register(webserverRoutes, { prefix: '/webserver' })
}