aboutsummaryrefslogtreecommitdiffhomepage
path: root/server.js
diff options
context:
space:
mode:
authorJohannes Zellner <johannes@cloudron.io>2019-02-23 22:40:58 +0100
committerJohannes Zellner <johannes@cloudron.io>2019-02-23 22:40:58 +0100
commit7af3d8556de81996d476d92807928fafdc91c41b (patch)
tree379922954ee45cd23cb25cb955ab1220ed2924ce /server.js
parenta7317b4ba7e4f37ab1e562669c03e4867c070d39 (diff)
downloadSurfer-7af3d8556de81996d476d92807928fafdc91c41b.tar.gz
Surfer-7af3d8556de81996d476d92807928fafdc91c41b.tar.zst
Surfer-7af3d8556de81996d476d92807928fafdc91c41b.zip
add webdav server for easier file access
Diffstat (limited to 'server.js')
-rwxr-xr-xserver.js12
1 files changed, 11 insertions, 1 deletions
diff --git a/server.js b/server.js
index cc644e6..ec123e9 100755
--- a/server.js
+++ b/server.js
@@ -2,7 +2,6 @@
2 2
3'use strict'; 3'use strict';
4 4
5
6var express = require('express'), 5var express = require('express'),
7 morgan = require('morgan'), 6 morgan = require('morgan'),
8 passport = require('passport'), 7 passport = require('passport'),
@@ -19,6 +18,7 @@ var express = require('express'),
19 mkdirp = require('mkdirp'), 18 mkdirp = require('mkdirp'),
20 auth = require('./src/auth.js'), 19 auth = require('./src/auth.js'),
21 serveIndex = require('serve-index'), 20 serveIndex = require('serve-index'),
21 webdav = require('webdav-server').v2,
22 files = require('./src/files.js')(path.resolve(__dirname, process.argv[2] || 'files')); 22 files = require('./src/files.js')(path.resolve(__dirname, process.argv[2] || 'files'));
23 23
24 24
@@ -63,6 +63,15 @@ if (typeof config.folderListingEnabled === 'undefined') config.folderListingEnab
63var app = express(); 63var app = express();
64var router = new express.Router(); 64var router = new express.Router();
65 65
66var webdavServer = new webdav.WebDAVServer({
67 requireAuthentification: true,
68 httpAuthentication: new webdav.HTTPBasicAuthentication(new auth.WebdavUserManager(), 'Cloudron Surfer')
69});
70
71webdavServer.setFileSystem('/', new webdav.PhysicalFileSystem(ROOT_FOLDER), function (success) {
72 console.log(`Mounting ${ROOT_FOLDER} as webdav resource`, success);
73});
74
66var multipart = multipart({ maxFieldsSize: 2 * 1024, limit: '512mb', timeout: 3 * 60 * 1000 }); 75var multipart = multipart({ maxFieldsSize: 2 * 1024, limit: '512mb', timeout: 3 * 60 * 1000 });
67 76
68router.post ('/api/login', auth.login); 77router.post ('/api/login', auth.login);
@@ -78,6 +87,7 @@ router.get ('/api/healthcheck', function (req, res) { res.status(200).send();
78 87
79app.use(morgan('dev')); 88app.use(morgan('dev'));
80app.use(compression()); 89app.use(compression());
90app.use(webdav.extensions.express('/webdav', webdavServer));
81app.use('/api', bodyParser.json()); 91app.use('/api', bodyParser.json());
82app.use('/api', bodyParser.urlencoded({ extended: false, limit: '100mb' })); 92app.use('/api', bodyParser.urlencoded({ extended: false, limit: '100mb' }));
83app.use('/api', cookieParser()); 93app.use('/api', cookieParser());