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.

22 lines
1.0 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. const config = require('./config'),
  2. webdav = require('webdav-server').v2,
  3. serveIndex = require('serve-index'),
  4. express = require('express'),
  5. app = express(),
  6. userManager = new webdav.SimpleUserManager(),
  7. user = userManager.addUser(config.username, config.password, false),
  8. privilegeManager = new webdav.SimplePathPrivilegeManager(),
  9. server = new webdav.WebDAVServer({
  10. requireAuthentification: true,
  11. httpAuthentication: new webdav.HTTPBasicAuthentication(userManager, 'DAV Auth'),
  12. privilegeManager: privilegeManager,
  13. storageManager: new webdav.PerUserStorageManager(config.limit),
  14. rootFileSystem: new webdav.PhysicalFileSystem(__dirname + '/public')
  15. })
  16. privilegeManager.setRights(user, '/', ['all'])
  17. app.disable('x-powered-by')
  18. .use(webdav.extensions.express('/dav', server), express.static(__dirname + '/public'), serveIndex('public/', { 'icons': true, view: 'details' }))
  19. .listen(config.port, () => {
  20. console.log('Listening on: ::' + config.port)
  21. })