commit 7f6f850b2a0b9aa449bc28d989e7e205fce9708b Author: ale Date: Mon May 25 21:35:21 2020 +0200 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..25c8fdb --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +package-lock.json \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..00423f9 --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# WebDAV personal server + +## Install + +- git clone https://gitea.hatthieves.es/manalejandro/webdav +- cd webdav +- npm i + +## Run + +- change settings on `config.json` +- npm start +- open http://localhost:8080/dav with [cadaver](http://www.webdav.org/cadaver/) and enjoy :) + +### License + +- MIT \ No newline at end of file diff --git a/config.js b/config.js new file mode 100644 index 0000000..259f3cc --- /dev/null +++ b/config.js @@ -0,0 +1,5 @@ +module.exports = { + port: 8080, + username: 'user', + password: 'dav' +} \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 0000000..8192b70 --- /dev/null +++ b/index.js @@ -0,0 +1,24 @@ +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(10000), + rootFileSystem: new webdav.PhysicalFileSystem(__dirname + '/public') + }) + +privilegeManager.setRights(user, '/', ['all']) + +app.disable('x-powered-by') + .use('/', webdav.extensions.express('/dav', server)) + .use(express.static(__dirname + '/public'), serveIndex('public/', { 'icons': true, view: 'details' })) + .listen(config.port, () => { + console.log('Listening om: ::' + config.port) + }) \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..8510765 --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "webdav", + "version": "1.0.0", + "description": "", + "main": "index.js", + "author": "ale", + "license": "MIT", + "private": true, + "repository": { + "url": "https://gitea.hatthieves.es/manalejandro/webdav" + }, + "scripts": { + "start": "node index.js" + }, + "dependencies": { + "express": "*", + "serve-index": "*", + "webdav-server": "*" + } +} diff --git a/public/.gitignore b/public/.gitignore new file mode 100644 index 0000000..e69de29