Files
Dashboard/server/index.ts
T
Syco 627b238dcc
ci/woodpecker/push/woodpecker Pipeline was successful
Add Docker and GitHub release update tracker widgets
2026-05-16 17:00:07 +02:00

55 lines
1.9 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'
import jellyfin from './routes/jellyfin'
import navidrome from './routes/navidrome'
import romm from './routes/romm'
import weather from './routes/weather'
import transit from './routes/transit'
import updates from './routes/updates'
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)
app.use('/api/jellyfin', jellyfin)
app.use('/api/navidrome', navidrome)
app.use('/api/romm', romm)
app.use('/api/weather', weather)
app.use('/api/transit', transit)
app.use('/api/updates', updates)
// 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}`))