WebDAV personal server
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

23 lines
1.0 KiB

const config = require('./config'),
webdav = require('webdav-server').v2,
serveIndex = require('serve-index'),
express = require('express'),
app = express(),
userManager = new webdav.SimpleUserManager(),
user = userManager.addUser(config.username, config.password, false),
privilegeManager = new webdav.SimplePathPrivilegeManager(),
server = new webdav.WebDAVServer({
requireAuthentification: true,
httpAuthentication: new webdav.HTTPBasicAuthentication(userManager, 'DAV Auth'),
privilegeManager: privilegeManager,
storageManager: new webdav.PerUserStorageManager(config.limit),
rootFileSystem: new webdav.PhysicalFileSystem(__dirname + '/public')
})
privilegeManager.setRights(user, '/', ['all'])
app.disable('x-powered-by')
.use(webdav.extensions.express('/dav', server), express.static(__dirname + '/public'), serveIndex('public/', { 'icons': true, view: 'details' }))
.listen(config.port, () => {
console.log('Listening on: ::' + config.port)
})