/
oinktech
/
radar-map
Обзор
Документация
Войти
/
oinktech
/
radar-map
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
master
server.js
54 строки
1 KB
TwixoffStudio
Create: server.js, app.js, index.html, styles.css, russia.js, sources.js, ukraine.js, cache.js, russia.js, ukraine.js, .gitignore, LICENSE, package.json, README.md
09 авг 2026, 01:04
Верифицирован
09 авг 2026, 01:04
d92e294
Код
Авторство
О чём код?
/** * Radar World Map — Node.js + Express * Live-данные только из открытых/публичных источников. * Деплой: Onreza Compute / любой Node.js хостинг. */ const express = require('express'); const path = require('path'); const cors = require('cors'); const helmet = require('helmet'); const morgan = require('morgan'); const ukraineRouter = require('./routes/ukraine'); const russiaRouter = require('./routes/russia'); const sourcesRouter = require('./routes/sources'); const app = express(); const PORT = process.env.PORT || 3000; // Security & logging app.use(helmet({ contentSecurityPolicy: false, // для простоты с Leaflet CDN })); app.use(cors()); app.use(morgan('combined')); app.use(express.json()); // API routes app.use('/api/ukraine', ukraineRouter); app.use('/api/russia', russiaRouter); app.use('/api/sources', sourcesRouter); // Healthcheck app.get('/api/health', (req, res) => { res.json({ status: 'ok', time: new Date().toISOString(), version: '1.1.0', note: 'Live data from public sources only. Not an official alert system.' }); }); // Static frontend app.use(express.static(path.join(__dirname, 'public'))); // SPA fallback app.get('*', (req, res) => { res.sendFile(path.join(__dirname, 'public', 'index.html')); }); app.listen(PORT, '0.0.0.0', () => { console.log(`Radar World Map running on http://0.0.0.0:${PORT}`); console.log('API: /api/ukraine /api/russia /api/sources /api/health'); });