mirror of
https://github.com/BobbyWibowo/lolisafe.git
synced 2025-01-31 07:11:33 +00:00
18c66d27fb
There's a new folder that gets created upon running lolisafe for the first time. On said folder any html file with the same name as the default ones will be loaded instead, letting you place custom frontend files without messing with git.
48 lines
1.6 KiB
JavaScript
48 lines
1.6 KiB
JavaScript
const config = require('./config.js')
|
|
const api = require('./routes/api.js')
|
|
const express = require('express')
|
|
const bodyParser = require('body-parser')
|
|
const rateLimit = require('express-rate-limit')
|
|
const db = require('knex')(config.database)
|
|
const fs = require('fs')
|
|
const safe = express()
|
|
|
|
require('./database/db.js')(db)
|
|
|
|
fs.existsSync('./pages/custom' ) || fs.mkdirSync('./pages/custom')
|
|
fs.existsSync('./' + config.logsFolder) || fs.mkdirSync('./' + config.logsFolder)
|
|
fs.existsSync('./' + config.uploads.folder) || fs.mkdirSync('./' + config.uploads.folder)
|
|
fs.existsSync('./' + config.uploads.folder + '/thumbs') || fs.mkdirSync('./' + config.uploads.folder + '/thumbs')
|
|
|
|
safe.set('trust proxy', 1)
|
|
|
|
let limiter = new rateLimit({ windowMs: 5000, max: 2 })
|
|
safe.use('/api/login/', limiter)
|
|
safe.use('/api/register/', limiter)
|
|
|
|
safe.use(bodyParser.urlencoded({ extended: true }))
|
|
safe.use(bodyParser.json())
|
|
|
|
safe.use('/', express.static('./uploads'))
|
|
safe.use('/', express.static('./public'))
|
|
safe.use('/api', api)
|
|
|
|
for(let page of config.pages){
|
|
let root = './pages/'
|
|
if(fs.existsSync(`./pages/custom/${page}.html`))
|
|
root = './pages/custom/'
|
|
|
|
if(page === 'home') safe.get('/', (req, res, next) => res.sendFile(`${page}.html`, { root: root }))
|
|
else safe.get(`/${page}`, (req, res, next) => res.sendFile(`${page}.html`, { root: root }))
|
|
}
|
|
|
|
safe.use((req, res, next) => res.status(404).sendFile('404.html', { root: './pages/error/' }))
|
|
safe.use((req, res, next) => res.status(500).sendFile('500.html', { root: './pages/error/' }))
|
|
|
|
safe.listen(config.port, () => console.log(`loli-safe started on port ${config.port}`))
|
|
|
|
safe.prepareFrontendRoutes = function(){
|
|
|
|
|
|
|
|
} |