archy/apps/router/src/index.ts
2026-01-24 23:18:24 +00:00

60 lines
1.1 KiB
TypeScript

import express from 'express';
import bonjour from 'bonjour';
const app = express();
const port = 8080;
// Initialize Bonjour for mDNS
const bonjourInstance = bonjour();
// Publish Archipelago Router service
bonjourInstance.publish({
name: 'Archipelago Router',
type: 'http',
port: port,
txt: {
version: '1.0.0',
mesh: 'enabled',
discovery: 'enabled'
}
});
// Middleware
app.use(express.json());
// Health check endpoint
app.get('/health', (req, res) => {
res.json({ status: 'ok', service: 'archipelago-router' });
});
// Network topology endpoint
app.get('/api/topology', (req, res) => {
res.json({
nodes: [],
links: [],
timestamp: Date.now()
});
});
// Device discovery endpoint
app.get('/api/devices', (req, res) => {
res.json({
devices: [],
count: 0
});
});
// Start server
app.listen(port, '0.0.0.0', () => {
console.log(`Archipelago Router listening on port ${port}`);
console.log('mDNS service published');
});
// Graceful shutdown
process.on('SIGTERM', () => {
console.log('Shutting down...');
bonjourInstance.unpublishAll(() => {
process.exit(0);
});
});