mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
61 lines
1.8 KiB
TypeScript
61 lines
1.8 KiB
TypeScript
import express = require('express');
|
|
import path = require('path');
|
|
import favicon = require('serve-favicon');
|
|
import cookieParser = require('cookie-parser');
|
|
import helmet = require('helmet');
|
|
import compression = require('compression');
|
|
import sessionParser = require('./routes/session_parser');
|
|
import utils = require('./services/utils');
|
|
|
|
require('./services/handlers');
|
|
require('./becca/becca_loader');
|
|
|
|
const app = express();
|
|
|
|
// view engine setup
|
|
app.set('views', path.join(__dirname, 'views'));
|
|
app.set('view engine', 'ejs');
|
|
|
|
if (!utils.isElectron()) {
|
|
app.use(compression()); // HTTP compression
|
|
}
|
|
|
|
app.use(helmet.default({
|
|
hidePoweredBy: false, // errors out in electron
|
|
contentSecurityPolicy: false,
|
|
crossOriginEmbedderPolicy: false
|
|
}));
|
|
|
|
app.use(express.text({ limit: '500mb' }));
|
|
app.use(express.json({ limit: '500mb' }));
|
|
app.use(express.raw({ limit: '500mb' }));
|
|
app.use(express.urlencoded({ extended: false }));
|
|
app.use(cookieParser());
|
|
app.use(express.static(path.join(__dirname, 'public/root')));
|
|
app.use(`/manifest.webmanifest`, express.static(path.join(__dirname, 'public/manifest.webmanifest')));
|
|
app.use(`/robots.txt`, express.static(path.join(__dirname, 'public/robots.txt')));
|
|
app.use(sessionParser);
|
|
app.use(favicon(`${__dirname}/../images/app-icons/win/icon.ico`));
|
|
|
|
require('./routes/assets').register(app);
|
|
require('./routes/routes').register(app);
|
|
require('./routes/custom').register(app);
|
|
require('./routes/error_handlers').register(app);
|
|
|
|
// triggers sync timer
|
|
require('./services/sync');
|
|
|
|
// triggers backup timer
|
|
require('./services/backup');
|
|
|
|
// trigger consistency checks timer
|
|
require('./services/consistency_checks');
|
|
|
|
require('./services/scheduler');
|
|
|
|
if (utils.isElectron()) {
|
|
require('@electron/remote/main').initialize();
|
|
}
|
|
|
|
export = app;
|