galleria_photo_face_rknn_op.../server.js.ok
2026-10-03 12:16:58 +02:00

74 lines
2.3 KiB
Text

require('dotenv').config();
const fs = require('fs'); // nuovo
const hlsRouter = require('./routes/hls'); // nuovo
const express = require('express');
const path = require('path');
const config = require('./api_v1/config');
const { jwtMiddleware } = require('./middleware/jwt');
const staticMiddleware = require('./middleware/static');
const authRouter = require('./routes/auth');
const configRouter = require('./routes/config');
const scanRouter = require('./routes/scan');
const autoScanRouter = require('./routes/autoScan');
const shareRouter = require('./routes/share');
const photosRouter = require('./routes/photos');
const activitiesRouter = require('./routes/activities');
const scanActivitiesRouter = require('./routes/scanActivities');
const scanStatusRouter = require('./routes/scanStatus');
const usersRouter = require('./routes/users');
const server = express();
// Base directory per gli output HLS (puoi sovrascriverla con env HLS_BASE)
const HLS_BASE = process.env.HLS_BASE || path.join(process.cwd(), 'hls_output');
fs.mkdirSync(HLS_BASE, { recursive: true });
// Statici pubblici
server.use(staticMiddleware);
// serve i file HLS generati (master.m3u8 e .ts)
server.use('/hls', express.static(HLS_BASE));
// API per avviare / controllare transcodifiche (routes/hls.js)
server.use('/hls', hlsRouter);
// Body parser
server.use(express.json());
server.use(express.urlencoded({ extended: true }));
// Login pubblico
server.get('/login', (req, res) => {
res.sendFile(path.join(__dirname, 'public/login.html'));
});
// Rotte pubbliche
server.use('/auth', authRouter);
server.use('/config', configRouter);
//server.use('/share', shareRouter);
// JWT per tutto il resto
server.use(
/^(?!\/auth)(?!\/share)(?!\/login)(?!\/login.html)(?!\/css)(?!\/js)(?!\/img)(?!\/fonts)(?!\/favicon).*$/,
jwtMiddleware
);
// Rotte protette
server.use('/share', shareRouter);
server.use('/users', usersRouter);
server.use('/photos', photosRouter);
server.use('/activities', activitiesRouter);
server.use('/scan', scanRouter);
server.use('/scanActivities', scanActivitiesRouter);
server.use('/api_v1/auto_scan', autoScanRouter);
server.use('/scanStatus', scanStatusRouter);
// Home
server.get('/', (req, res) => {
res.sendFile(path.resolve('public/index.html'));
});
server.listen(config.PORT, () => {
console.log(`Server running on port ${config.PORT}`);
});