added to remote repo
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import cors from 'cors';
|
||||
import express from 'express';
|
||||
import { config } from './config.js';
|
||||
import { backupRouter } from './routes/backup.js';
|
||||
import { healthRouter } from './routes/health.js';
|
||||
import { jobsRouter } from './routes/jobs.js';
|
||||
import { restoreRouter } from './routes/restore.js';
|
||||
import { settingsRouter } from './routes/settings.js';
|
||||
import { snapshotsRouter } from './routes/snapshots.js';
|
||||
import { vmsRouter } from './routes/vms.js';
|
||||
|
||||
const app = express();
|
||||
|
||||
app.use(cors());
|
||||
app.use(express.json());
|
||||
|
||||
app.use((req, res, next) => {
|
||||
if (!config.apiToken) {
|
||||
next();
|
||||
return;
|
||||
}
|
||||
const header = req.get('authorization') || '';
|
||||
if (header === `Bearer ${config.apiToken}`) {
|
||||
next();
|
||||
return;
|
||||
}
|
||||
res.status(401).json({ error: 'Unauthorized.' });
|
||||
});
|
||||
|
||||
app.use('/api/health', healthRouter);
|
||||
app.use('/api/vms', vmsRouter);
|
||||
app.use('/api/snapshots', snapshotsRouter);
|
||||
app.use('/api/jobs', jobsRouter);
|
||||
app.use('/api/backup', backupRouter);
|
||||
app.use('/api/restore', restoreRouter);
|
||||
app.use('/api/settings', settingsRouter);
|
||||
|
||||
app.use((error, _req, res, _next) => {
|
||||
const status = error.status || 500;
|
||||
res.status(status).json({ error: error.message || 'Internal server error.' });
|
||||
});
|
||||
|
||||
app.listen(config.port, () => {
|
||||
console.log(`Incus backup API listening on http://localhost:${config.port}`);
|
||||
});
|
||||
Reference in New Issue
Block a user