mirror of
https://github.com/BobbyWibowo/lolisafe.git
synced 2024-12-14 00:16:21 +00:00
Changed how domains are handled
This commit is contained in:
parent
d1260563d4
commit
c1963b2809
@ -7,25 +7,25 @@ module.exports = {
|
||||
If it's set to false, then upload will be public for anyone to use.
|
||||
*/
|
||||
private: true,
|
||||
|
||||
|
||||
// If true, users will be able to create accounts and access their uploaded files
|
||||
enableUserAccounts: true,
|
||||
|
||||
// The registered domain where you will be serving the app. Use IP if none.
|
||||
domains: [
|
||||
|
||||
/*
|
||||
You need to specify the base domain where loli-self is running
|
||||
and how should it resolve the URL for uploaded files. For example:
|
||||
*/
|
||||
/*
|
||||
Here you can decide if you want lolisafe to serve the files or if you prefer doing so via nginx.
|
||||
The main difference between the two is the ease of use and the chance of analytics in the future.
|
||||
If you set it to `true`, the uploaded files will be located after the host like:
|
||||
https://lolisafe.moe/yourFile.jpg
|
||||
|
||||
// Files will be served at http(s)://i.kanacchi.moe/Fxt0.png
|
||||
{ host: 'kanacchi.moe', resolve: 'https://i.kanacchi.moe'},
|
||||
If you set it to `false`, you need to specify the domain in the setting right below `serveFilesWithNode`
|
||||
and make nginx directly serve whatever folder it is you are serving your downloads in. This also gives
|
||||
you the ability to serve them, for example, like this:
|
||||
https://files.lolisafe.moe/yourFile.jpg
|
||||
|
||||
// Files will be served at https://my.kanacchi.moe/loli-self/files/Fxt0.png
|
||||
{ host: 'kanacchi.moe', resolve: 'https://my.kanacchi.moe/loli-self/files' }
|
||||
|
||||
],
|
||||
So ultimately, it's up to you.
|
||||
*/
|
||||
serveFilesWithNode: false,
|
||||
domain: '',
|
||||
|
||||
// Port on which to run the server
|
||||
port: 9999,
|
||||
@ -48,18 +48,20 @@ module.exports = {
|
||||
// Folder where images should be stored
|
||||
folder: 'uploads',
|
||||
|
||||
// Max file size allowed. Needs to be in MB
|
||||
// Note: When maxSize is greater than 1 MiB,
|
||||
// you must set the client_max_body_size
|
||||
// to the same as maxSize.
|
||||
/*
|
||||
Max file size allowed. Needs to be in MB
|
||||
Note: When maxSize is greater than 1 MiB, you must set the client_max_body_size to the same as maxSize.
|
||||
*/
|
||||
maxSize: '512MB',
|
||||
|
||||
// The length of the random generated name for the uploaded files
|
||||
fileLength: 32,
|
||||
|
||||
// NOTE: Thumbnails are only for the admin panel and they require you
|
||||
// to install a separate binary called graphicsmagick (http://www.graphicsmagick.org)
|
||||
// for images and FFmpeg (https://ffmpeg.org/) for video files
|
||||
/*
|
||||
NOTE: Thumbnails are only for the admin panel and they require you
|
||||
to install a separate binary called graphicsmagick (http://www.graphicsmagick.org)
|
||||
for images and ffmpeg (https://ffmpeg.org/) for video files
|
||||
*/
|
||||
generateThumbnails: false
|
||||
},
|
||||
|
||||
@ -69,9 +71,7 @@ module.exports = {
|
||||
// The following values shouldn't be touched
|
||||
database: {
|
||||
client: 'sqlite3',
|
||||
connection: {
|
||||
filename: './database/db'
|
||||
},
|
||||
connection: { filename: './database/db' },
|
||||
useNullAsDefault: true
|
||||
}
|
||||
}
|
||||
|
74
lolisafe.js
74
lolisafe.js
@ -1,55 +1,57 @@
|
||||
const config = require('./config.js')
|
||||
const api = require('./routes/api.js')
|
||||
const album = require('./routes/album.js')
|
||||
const express = require('express')
|
||||
const helmet = require('helmet')
|
||||
const bodyParser = require('body-parser')
|
||||
const RateLimit = require('express-rate-limit')
|
||||
const db = require('knex')(config.database)
|
||||
const fs = require('fs')
|
||||
const exphbs = require('express-handlebars')
|
||||
const safe = express()
|
||||
const config = require('./config.js');
|
||||
const api = require('./routes/api.js');
|
||||
const album = require('./routes/album.js');
|
||||
const express = require('express');
|
||||
const helmet = require('helmet');
|
||||
const bodyParser = require('body-parser');
|
||||
const RateLimit = require('express-rate-limit');
|
||||
const db = require('knex')(config.database);
|
||||
const fs = require('fs');
|
||||
const exphbs = require('express-handlebars');
|
||||
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')
|
||||
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.use(helmet())
|
||||
safe.set('trust proxy', 1)
|
||||
safe.use(helmet());
|
||||
safe.set('trust proxy', 1);
|
||||
|
||||
safe.engine('handlebars', exphbs({defaultLayout: 'main'}))
|
||||
safe.set('view engine', 'handlebars')
|
||||
safe.enable('view cache')
|
||||
safe.engine('handlebars', exphbs({ defaultLayout: 'main' }));
|
||||
safe.set('view engine', 'handlebars');
|
||||
safe.enable('view cache');
|
||||
|
||||
let limiter = new RateLimit({ windowMs: 5000, max: 2 })
|
||||
safe.use('/api/login/', limiter)
|
||||
safe.use('/api/register/', limiter)
|
||||
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(bodyParser.urlencoded({ extended: true }));
|
||||
safe.use(bodyParser.json());
|
||||
|
||||
safe.use('/', express.static('./uploads'))
|
||||
safe.use('/', express.static('./public'))
|
||||
safe.use('/', album)
|
||||
safe.use('/api', api)
|
||||
if (config.serveFilesWithNode) {
|
||||
safe.use('/', express.static('./uploads'));
|
||||
}
|
||||
|
||||
safe.use('/', express.static('./public'));
|
||||
safe.use('/', album);
|
||||
safe.use('/api', api);
|
||||
|
||||
for (let page of config.pages) {
|
||||
let root = './pages/'
|
||||
let root = './pages/';
|
||||
if (fs.existsSync(`./pages/custom/${page}.html`)) {
|
||||
root = './pages/custom/'
|
||||
root = './pages/custom/';
|
||||
}
|
||||
if (page === 'home') {
|
||||
safe.get('/', (req, res, next) => res.sendFile(`${page}.html`, { root: root }))
|
||||
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.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.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.listen(config.port, () => console.log(`loli-safe started on port ${config.port}`));
|
||||
|
Loading…
Reference in New Issue
Block a user