WebDAV

WebDAV: easier, safer, faster, and more accessible alternative to FTP and SFTP, using an HTTP Server for speed and convenience.

You can choose either Apache or Nginx as the HTTP Server. Or you can use BarracudaDrive which has the whole WebDAV system packaged up.

BarracudaDrive (RaspberryPi Only)
BarracudaDrive is a complete personal cloud package that uses WebDAV. It has binaries for Windows, Mac OS X, and Raspberry Pi.


 * BarracudaDrive - Raspberry Pi

Apache
Since WebDAV runs on an HTTP server, the port is naturally Port 80 by default. If you are using WebDAV, should probably bind mount another folder to /var/www/webdav/ (or whatever it is named, see below for info).

Make sure you have Apache installed.

sudo apt-get update sudo apt-get install apache2 You wiil need to setup a directory to store WebDAV, lets put it in /var/www/webdav. You also need to allow Apache to access the files.

sudo mkdir /var/www/webdav sudo chown -R www-data:www-data /var/www/ Enable the WebDAV modules using a2enmod

sudo a2enmod dav sudo a2enmod dav_fs Open or create the config file at /etc/apache2/sites-available/000-default.conf

sudo nano /etc/apache2/sites-available/000-default.conf Type  on the first line to add the DavLockDB directive config.

Add Alias and Directory directives inbetween  and.

Alias /webdav /var/www/webdav

&lt;Directory /var/www/webdav&gt; DAV On &lt;/Directory&gt; Your file should now look like this:

DavLockDB /var/www/DavLock &lt;VirtualHost *:80&gt; # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to       # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com

ServerAdmin webmaster@localhost DocumentRoot /var/www/html

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g.       #LogLevel info ssl:warn

ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to       # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with &quot;a2disconf&quot;. #Include conf-available/serve-cgi-bin.conf Alias /webdav /var/www/webdav

&lt;Directory /var/www/webdav&gt; DAV On       &lt;/Directory&gt; &lt;/VirtualHost&gt;

Now restart the server using.
 * 1) vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Adding Authentication
To start, generate a file called  to store the passwords for users. But first, make sure to install apache utils

sudo apt-get install apache2-utils Assuming that your username is  put in a password and make the password file.

sudo htdigest -c /etc/apache2/users.password webdav antonizoon
 * If you want to add more users, just remove the  from the command above and replace the username to the user you are adding.

Give Apache access to the password file.

sudo chown www-data:www-data /etc/apache2/users.password Edit the apache configuration

sudo nano /etc/apache2/sites-available/000-default.conf Add these lines between  and   without deleting

AuthType Digest AuthName &quot;webdav&quot; AuthUserFile /etc/apache2/users.password Require valid-user Now enable digest mode and restart apache

sudo a2enmod auth_digest sudo service apache2 restart You probably want to bind mount your hard drive or your downloads folder to the webdav folder, so check this out.


 * DigitalOcean - Setting up WebDAV access on Ubuntu 14.04