Files
email/src/index.js
2026-03-03 16:23:30 -06:00

43 lines
1.2 KiB
JavaScript

const express = require('express');
const path = require('path');
const basicAuth = require('express-basic-auth');
const { initDb } = require('./db/sqlite');
const adminRoutes = require('./routes/admin');
const pushRoutes = require('./routes/push');
const { startScheduler } = require('./services/scheduler');
const app = express();
const PORT = process.env.PORT || 3000;
initDb();
const auth = basicAuth({
users: { [process.env.ADMIN_USERNAME || 'admin']: process.env.ADMIN_PASSWORD || 'changeme' },
challenge: true,
realm: 'Email Signature Manager'
});
app.use(express.json());
app.use(express.static(path.join(__dirname, '../public')));
app.use('/api/admin', auth, adminRoutes);
app.use('/api/push', auth, pushRoutes);
app.get('/dashboard', auth, (req, res) => {
res.sendFile(path.join(__dirname, '../public/dashboard.html'));
});
app.get('/editor', auth, (req, res) => {
res.sendFile(path.join(__dirname, '../public/editor.html'));
});
app.get('/', auth, (req, res) => {
res.redirect('/dashboard');
});
startScheduler();
app.listen(PORT, () => {
console.log(`Email Signature Manager running on port ${PORT}`);
console.log(`Admin: ${process.env.ADMIN_USERNAME || 'admin'}`);
console.log(`Cron: ${process.env.CRON_SCHEDULE || '0 2 * * *'}`);
});