aboutsummaryrefslogtreecommitdiffhomepage
path: root/server.js
diff options
context:
space:
mode:
Diffstat (limited to 'server.js')
-rwxr-xr-xserver.js24
1 files changed, 14 insertions, 10 deletions
diff --git a/server.js b/server.js
index 052e28e..dd7d7cb 100755
--- a/server.js
+++ b/server.js
@@ -16,7 +16,6 @@ var express = require('express'),
16 multipart = require('./src/multipart'), 16 multipart = require('./src/multipart'),
17 mkdirp = require('mkdirp'), 17 mkdirp = require('mkdirp'),
18 auth = require('./src/auth.js'), 18 auth = require('./src/auth.js'),
19 serveIndex = require('serve-index'),
20 webdav = require('webdav-server').v2, 19 webdav = require('webdav-server').v2,
21 files = require('./src/files.js')(path.resolve(__dirname, process.argv[2] || 'files')); 20 files = require('./src/files.js')(path.resolve(__dirname, process.argv[2] || 'files'));
22 21
@@ -49,7 +48,7 @@ function setSettings(req, res, next) {
49 48
50// Load the config file 49// Load the config file
51try { 50try {
52 console.log(`Using config file: ${CONFIG_FILE}`); 51 console.log(`Using config file at: ${CONFIG_FILE}`);
53 config = require(CONFIG_FILE); 52 config = require(CONFIG_FILE);
54} catch (e) { 53} catch (e) {
55 if (e.code === 'MODULE_NOT_FOUND') console.log(`Config file ${CONFIG_FILE} not found`); 54 if (e.code === 'MODULE_NOT_FOUND') console.log(`Config file ${CONFIG_FILE} not found`);
@@ -68,7 +67,7 @@ var webdavServer = new webdav.WebDAVServer({
68}); 67});
69 68
70webdavServer.setFileSystem('/', new webdav.PhysicalFileSystem(ROOT_FOLDER), function (success) { 69webdavServer.setFileSystem('/', new webdav.PhysicalFileSystem(ROOT_FOLDER), function (success) {
71 console.log(`Mounting ${ROOT_FOLDER} as webdav resource`, success); 70 if (success) console.log(`Mounting webdav resource from: ${ROOT_FOLDER}`);
72}); 71});
73 72
74var multipart = multipart({ maxFieldsSize: 2 * 1024, limit: '512mb', timeout: 3 * 60 * 1000 }); 73var multipart = multipart({ maxFieldsSize: 2 * 1024, limit: '512mb', timeout: 3 * 60 * 1000 });
@@ -81,7 +80,7 @@ router.get ('/api/tokens', auth.verify, auth.getTokens);
81router.post ('/api/tokens', auth.verify, auth.createToken); 80router.post ('/api/tokens', auth.verify, auth.createToken);
82router.delete('/api/tokens/:token', auth.verify, auth.delToken); 81router.delete('/api/tokens/:token', auth.verify, auth.delToken);
83router.get ('/api/profile', auth.verify, auth.getProfile); 82router.get ('/api/profile', auth.verify, auth.getProfile);
84router.get ('/api/files/*', auth.verify, files.get); 83router.get ('/api/files/*', auth.verifyIfNeeded, files.get);
85router.post ('/api/files/*', auth.verify, multipart, files.post); 84router.post ('/api/files/*', auth.verify, multipart, files.post);
86router.put ('/api/files/*', auth.verify, files.put); 85router.put ('/api/files/*', auth.verify, files.put);
87router.delete('/api/files/*', auth.verify, files.del); 86router.delete('/api/files/*', auth.verify, files.del);
@@ -101,17 +100,22 @@ app.use('/', function welcomePage(req, res, next) {
101 if (config.folderListingEnabled || req.path !== '/') return next(); 100 if (config.folderListingEnabled || req.path !== '/') return next();
102 res.status(200).sendFile(path.join(__dirname, '/frontend/welcome.html')); 101 res.status(200).sendFile(path.join(__dirname, '/frontend/welcome.html'));
103}); 102});
104app.use('/', function (req, res, next) { 103app.use('/', function (req, res) {
105 if (config.folderListingEnabled) return next(); 104 if (!config.folderListingEnabled) return res.status(404).sendFile(__dirname + '/frontend/404.html');
106 res.status(404).sendFile(__dirname + '/frontend/404.html'); 105
106 if (!fs.existsSync(path.join(ROOT_FOLDER, req.path))) return res.status(404).sendFile(__dirname + '/frontend/404.html');
107
108 res.status(200).sendFile(__dirname + '/frontend/public.html');
107}); 109});
108app.use('/', serveIndex(ROOT_FOLDER, { icons: true }));
109app.use(lastMile()); 110app.use(lastMile());
110 111
111var server = app.listen(3000, function () { 112var server = app.listen(3000, function () {
112 var host = server.address().address; 113 var host = server.address().address;
113 var port = server.address().port; 114 var port = server.address().port;
114 115
115 console.log('Surfer listening on http://%s:%s', host, port); 116 console.log(`Base path: ${ROOT_FOLDER}`);
116 console.log('Using base path', ROOT_FOLDER); 117 console.log();
118 console.log(`Listening on http://${host}:${port}`);
119
120 auth.init(config);
117}); 121});