ajout d'une protection par mot de passe + favicon + theme configurable
This commit is contained in:
parent
755a91a5b6
commit
0f9f498607
35
app.js
35
app.js
|
@ -4,11 +4,7 @@ var favicon = require('serve-favicon');
|
||||||
var logger = require('morgan');
|
var logger = require('morgan');
|
||||||
var cookieParser = require('cookie-parser');
|
var cookieParser = require('cookie-parser');
|
||||||
var bodyParser = require('body-parser');
|
var bodyParser = require('body-parser');
|
||||||
|
var config = require('./config');
|
||||||
/*var routes = require('./routes/index');
|
|
||||||
var users = require('./routes/users');
|
|
||||||
var file = require('./routes/file');
|
|
||||||
var channel = require('./routes/channel');*/
|
|
||||||
|
|
||||||
var app = express();
|
var app = express();
|
||||||
|
|
||||||
|
@ -16,14 +12,39 @@ var app = express();
|
||||||
app.set('views', path.join(__dirname, 'views'));
|
app.set('views', path.join(__dirname, 'views'));
|
||||||
app.set('view engine', 'jade');
|
app.set('view engine', 'jade');
|
||||||
|
|
||||||
// uncomment after placing your favicon in /public
|
//protection par mot de passe
|
||||||
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
|
if( typeof config.auth_user !== 'undefined' && typeof config.auth_password !== 'undefined' ){
|
||||||
|
console.log("SAFE MODE: votre serveur est protégé par mot de passe.");
|
||||||
|
var basicAuth = require('basic-auth');
|
||||||
|
app.use(function(req, res, next) {
|
||||||
|
var user = basicAuth(req);
|
||||||
|
if (!user || user.name !== config.auth_user || user.pass !== config.auth_password) {
|
||||||
|
res.set('WWW-Authenticate', 'Basic realm=Authorization Required');
|
||||||
|
return res.sendStatus(401);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
next();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
console.log("UNSAFE MODE: configurez un auth_user et auth_password dans le fichier config.js");
|
||||||
|
}
|
||||||
|
|
||||||
|
//envoyer config a tout le monde
|
||||||
|
app.use(function(req, res, next) {
|
||||||
|
res.locals.config = config;
|
||||||
|
next();
|
||||||
|
});
|
||||||
|
|
||||||
|
app.use(favicon(path.join(__dirname, 'public', 'iconarchive_plex.ico')));
|
||||||
app.use(logger('dev'));
|
app.use(logger('dev'));
|
||||||
app.use(bodyParser.json());
|
app.use(bodyParser.json());
|
||||||
app.use(bodyParser.urlencoded({ extended: false }));
|
app.use(bodyParser.urlencoded({ extended: false }));
|
||||||
app.use(cookieParser());
|
app.use(cookieParser());
|
||||||
app.use(express.static(path.join(__dirname, 'public')));
|
app.use(express.static(path.join(__dirname, 'public')));
|
||||||
|
|
||||||
|
|
||||||
app.use('/', require('./routes/index'));
|
app.use('/', require('./routes/index'));
|
||||||
app.use('/users', require('./routes/users'));
|
app.use('/users', require('./routes/users'));
|
||||||
app.use('/file', require('./routes/file'));
|
app.use('/file', require('./routes/file'));
|
||||||
|
|
|
@ -17,9 +17,10 @@ Docker
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
database: "/home/antoine/plex-config/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db",
|
database: "/home/antoine/plex-config/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db",
|
||||||
|
theme: "//cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.5/darkly/bootstrap.css",
|
||||||
presentation: "<h1>Bienvenue sur mon serveur</h1><p>Merci de respecter mon upload...</p>",
|
presentation: "<h1>Bienvenue sur mon serveur</h1><p>Merci de respecter mon upload...</p>",
|
||||||
|
//auth_user: "monUser",
|
||||||
|
//auth_password: "monPassword",
|
||||||
|
|
||||||
init_db: function(){
|
init_db: function(){
|
||||||
var sqlite3 = require('sqlite3').verbose();
|
var sqlite3 = require('sqlite3').verbose();
|
||||||
|
|
|
@ -6,14 +6,15 @@
|
||||||
"start": "node ./bin/www"
|
"start": "node ./bin/www"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"basic-auth": "^1.0.3",
|
||||||
"body-parser": "~1.13.2",
|
"body-parser": "~1.13.2",
|
||||||
|
"cluster": "~0.7.7",
|
||||||
"cookie-parser": "~1.3.5",
|
"cookie-parser": "~1.3.5",
|
||||||
"debug": "~2.2.0",
|
"debug": "~2.2.0",
|
||||||
"express": "~4.13.1",
|
"express": "~4.13.1",
|
||||||
"jade": "~1.11.0",
|
"jade": "~1.11.0",
|
||||||
"morgan": "~1.6.1",
|
"morgan": "~1.6.1",
|
||||||
"serve-favicon": "~2.3.0",
|
"serve-favicon": "~2.3.0",
|
||||||
"sqlite3": "~3",
|
"sqlite3": "~3"
|
||||||
"cluster":"~0.7.7"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ var router = express.Router();
|
||||||
|
|
||||||
/* GET home page. */
|
/* GET home page. */
|
||||||
router.get('/:id', function(req, res, next) {
|
router.get('/:id', function(req, res, next) {
|
||||||
var config = require('../config');
|
var config = res.locals.config;
|
||||||
var db = config.init_db();
|
var db = config.init_db();
|
||||||
|
|
||||||
var data = [];
|
var data = [];
|
||||||
|
|
|
@ -3,8 +3,7 @@ var router = express.Router();
|
||||||
|
|
||||||
/* GET users listing. */
|
/* GET users listing. */
|
||||||
router.get('/:id/:filename', function (req, res, next) {
|
router.get('/:id/:filename', function (req, res, next) {
|
||||||
|
var config = res.locals.config;
|
||||||
var config = require('../config');
|
|
||||||
var db = config.init_db();
|
var db = config.init_db();
|
||||||
|
|
||||||
//db.run("CREATE TABLE if not exists user_info (info TEXT)");
|
//db.run("CREATE TABLE if not exists user_info (info TEXT)");
|
||||||
|
|
|
@ -4,7 +4,7 @@ var router = express.Router();
|
||||||
|
|
||||||
/* GET home page. */
|
/* GET home page. */
|
||||||
router.get('/', function(req, res, next) {
|
router.get('/', function(req, res, next) {
|
||||||
var config = require('../config');
|
var config = res.locals.config;//require('../config');
|
||||||
var db = config.init_db();
|
var db = config.init_db();
|
||||||
|
|
||||||
var data = [];
|
var data = [];
|
||||||
|
|
|
@ -19,8 +19,7 @@ function humanFileSize(bytes, si) {
|
||||||
|
|
||||||
/* GET home page. */
|
/* GET home page. */
|
||||||
router.get('/:id', function(req, res, next) {
|
router.get('/:id', function(req, res, next) {
|
||||||
|
var config = res.locals.config;
|
||||||
var config = require('../config');
|
|
||||||
var db = config.init_db();
|
var db = config.init_db();
|
||||||
|
|
||||||
var data;
|
var data;
|
||||||
|
|
|
@ -17,7 +17,7 @@ function addZero(v) {
|
||||||
|
|
||||||
/* GET home page. */
|
/* GET home page. */
|
||||||
router.get('/:id', function(req, res, next) {
|
router.get('/:id', function(req, res, next) {
|
||||||
var config = require('../config');
|
var config = res.locals.config;
|
||||||
var db = config.init_db();
|
var db = config.init_db();
|
||||||
var data = [];
|
var data = [];
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ var router = express.Router();
|
||||||
|
|
||||||
/* GET home page. */
|
/* GET home page. */
|
||||||
router.get('/:id', function(req, res, next) {
|
router.get('/:id', function(req, res, next) {
|
||||||
var config = require('../config');
|
var config = res.locals.config;
|
||||||
var db = config.init_db();
|
var db = config.init_db();
|
||||||
|
|
||||||
var shows = [];
|
var shows = [];
|
||||||
|
|
|
@ -3,6 +3,7 @@ var router = express.Router();
|
||||||
|
|
||||||
/* GET users listing. */
|
/* GET users listing. */
|
||||||
router.get('/', function(req, res, next) {
|
router.get('/', function(req, res, next) {
|
||||||
|
var config = res.locals.config;
|
||||||
res.send('respond with a resource');
|
res.send('respond with a resource');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ html
|
||||||
head
|
head
|
||||||
title= title
|
title= title
|
||||||
meta(charset='UTF8')
|
meta(charset='UTF8')
|
||||||
link(rel='stylesheet', href='//cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.5/darkly/bootstrap.css')
|
link(rel='stylesheet', href='#{config.theme}')
|
||||||
link(rel='stylesheet', href='//cdn.datatables.net/1.10.9/css/dataTables.bootstrap.min.css')
|
link(rel='stylesheet', href='//cdn.datatables.net/1.10.9/css/dataTables.bootstrap.min.css')
|
||||||
script(type='text/javascript', src='//code.jquery.com/jquery-1.11.3.min.js')
|
script(type='text/javascript', src='//code.jquery.com/jquery-1.11.3.min.js')
|
||||||
script(type='text/javascript', src='//cdn.datatables.net/1.10.9/js/jquery.dataTables.min.js')
|
script(type='text/javascript', src='//cdn.datatables.net/1.10.9/js/jquery.dataTables.min.js')
|
||||||
|
|
Loading…
Reference in New Issue