1Installation
2============
3
4This section describes, how a WsgiDAV server is installed.
5
6.. seealso::
7
8  If you plan to contribute to the WsgiDAV project, check out :doc:`development`
9  for details on how to install in development mode.
10
11
12Preconditions
13-------------
14
15WsgiDAV server was tested with these operating systems (among others):
16
17  * Linux (Ubuntu 13)
18  * Mac OS X 10.9
19  * Windows (Windows 10, 8, 7, Vista, XP)
20
21WsgiDAV requires
22
23  * `Python <https://www.python.org/downloads/>`_ 2.7 or 3.4+
24  * A WSGI compliant web server. |br|
25    WsigDAV is a WSGI application, that must be served by a compliant web server.
26    Among others, there are `CherryPy / Cheroot <https://github.com/cherrypy/cheroot>`_,
27    `gevent <http://www.gevent.org/>`_,
28    `gunicorn <http://gunicorn.org/>`_,
29    `mod_wsgi <http://modwsgi.readthedocs.io/>`_,
30    `uWSGI <https://uwsgi-docs.readthedocs.io/>`_,
31    and many more.
32    |br|
33    Simply choose a server that suites you best.
34    If unsure, we recommend Cheroot (the server that backs CherryPy) which has
35    `proven to be pretty performant and stable <https://blog.appdynamics.com/engineering/a-performance-analysis-of-python-wsgi-servers-part-2/>`_.
36    Cheroot comes also bundled with the MSI installer.
37  * Optionally `lxml <http://codespeak.net/lxml/>`_ for slight performance
38    improvements (speed up performance of PROPPATCH requests up to 10%).
39
40
41Unix / Linux
42------------
43
44Releases are hosted on `PyPI <https://pypi.python.org/pypi/WsgiDAV>`_ and can
45be installed using `pip <http://www.pip-installer.org/>`_::
46
47  $ pip install --upgrade wsgidav
48
49Or install the latest (potentially unstable) development version directly
50from GitHub::
51
52	$ pip install git+https://github.com/mar10/wsgidav.git
53
54In order to run the WsgiDAV server from the command line, we also need a WSGI server
55such as `Cheroot <https://cheroot.readthedocs.io/>`_::
56
57  $ pip install cheroot
58
59The following examples were tested on Ubuntu 13.04.
60Install lxml (optional)::
61
62    $ sudo apt-get install python-lxml
63
64If everything is cool, this should work now::
65
66    $ wsgidav --version -v
67    WsgiDAV/2.4.0 Python/3.6.1 Darwin-17.5.0-x86_64-i386-64bit
68    $ wsgidav --help
69
70..
71    $ wsgidav --version
72    bash-3.2$     2.3.1
73
74.. seealso::
75
76   `Deploying WebDAV on Debian 10 using WsgiDAV <https://www.vultr.com/docs/deploying-webdav-on-debian-10-using-wsgidav>`_.
77
78
79Windows
80-------
81
82Install the preconditions if neccessary.
83Basically the same as for `Unix / Linux`_
84
85.. note::
86
87   MS Windows users that only need the command line interface may prefer the
88   `MSI installer <https://github.com/mar10/wsgidav/releases>`_.
89
90
91Docker
92------
93
94An experimental Docker image that exposes a local directory using WebDAV
95is available here:
96https://hub.docker.com/r/mar10/wsgidav/
97
98::
99
100    $ docker pull mar10/wsgidav
101    $ docker run --rm -it -p <PORT>:8080 -v <ROOT_FOLDER>:/var/wsgidav-root mar10/wsgidav
102
103for example::
104
105    $ docker run --rm -it -p 8080:8080 -v c:/temp:/var/wsgidav-root mar10/wsgidav
106
107Then open (or enter this URL in Windows File Explorer or any other WebDAV client)
108http://localhost:8080/
109