Files
Dashboard/server/index.ts
T
2026-05-10 21:23:42 +02:00

43 lines
1.4 KiB
TypeScript

import 'dotenv/config'
import express from 'express'
import cors from 'cors'
import path from 'path'
import proxmox from './routes/proxmox'
import synology from './routes/synology'
import adguard from './routes/adguard'
import crowdsec from './routes/crowdsec'
import headscale from './routes/headscale'
import fritzbox from './routes/fritzbox'
import authentik from './routes/authentik'
import vaultwarden from './routes/vaultwarden'
import kuma from './routes/kuma'
import arr from './routes/arr'
import qbt from './routes/qbittorrent'
const app = express()
const PORT = Number(process.env.PORT ?? 3001)
app.use(cors())
app.use(express.json())
app.use('/api/proxmox', proxmox)
app.use('/api/synology', synology)
app.use('/api/adguard', adguard)
app.use('/api/crowdsec', crowdsec)
app.use('/api/headscale', headscale)
app.use('/api/fritzbox', fritzbox)
app.use('/api/authentik', authentik)
app.use('/api/vaultwarden', vaultwarden)
app.use('/api/kuma', kuma)
app.use('/api/arr', arr)
app.use('/api/qbt', qbt)
// Serve built frontend in production only
if (process.env.NODE_ENV === 'production') {
const distPath = path.join(__dirname, '..', 'dist')
app.use(express.static(distPath))
app.get('*', (_req, res) => res.sendFile(path.join(distPath, 'index.html')))
}
app.listen(PORT, () => console.log(`Dashboard server running on http://localhost:${PORT}`))