Package: lawwenda
User Manual***********License=======lawwenda is written by Josef Hahn under the terms of the AGPLv3.Please read the *LICENSE* file from the package and the Dependenciessection for included third-party stuff.About=====Lawwenda provides access to a directory in your filesystem by means ofa web interface. Users can navigate to it with any modern web browserand see your files.For real usage (i.e. "production systems") it is hosted in a *wsgi*compatible web server. This is a very common standard for hostingPython web applications and is supported by most widespread web serverdaemons.The most noteworthy features are:* Comfortable web browser interface that lists the files andsubdirectories in a directory, shows some details of them, andallows to open (i.e. "download") them; in a similar way to usualdesktop file managers.* Can be either read-only or also with write access, i.e. uploading,renaming, moving, deleting data.* Can be password protected or not. In the latter case, your webserver may put another authentication method around it.* Supports some "modern" file attributes like a comment, tags, arating and a geographic position; backed by "extended attributes" onfile system level.* A configuration specifies one or many "shares" (or none), each onepotentially pointing to another directory and with an individualsetup (incl. individual passwords).* Shares can have file exclude criteria (path patterns, tags, ...).* Shares can have expiration dates.* User interface works fine on desktop machines and mobile phones.* Alternatively to the web browser interface, users can connect to ashare with a WebDAV client or compatible file manager (modern filemanagers should be compatible).* Extensible by plugging in custom Python modules, with a friendly,rich and well documented api.* Thoroughly designed with security in mind.Up-to-date?===========Are you currently reading from another source than the homepage? Areyou in doubt if that place is up-to-date? If yes, you should visithttps://pseudopolis.eu/wiki/pino/projs/lawwenda and check that. Youare currently reading the manual for version 0.3.157.Maturity========lawwenda is in alpha state.Dependencies============There are external parts that are used by lawwenda. Many thanks to theprojects and all participants. Some installation methods might handledependency installation automatically, while others leave that up toyou.[image: icon_python][image] *Python 3.7*, required[image: icon_package][image] *werkzeug*, required : see here.[image: icon_linux][image] *Typical GNU/Linux Desktop*, recommended[image: icon_artwork][image] *font 'Symbola'*, included : for logosymbol; free for use; copied from here.[image: icon_artwork][image] *banner image*, included :_meta/background.jpg; license CC BY-SA 4.0; by 'Laslovarga', copiedfrom here.[image: icon_artwork][image] *all files in /_meta*, included : if notmentioned otherwise, Copyright 2021 Josef Hahn under license CC BY-SA3.0 license.Introduction============Please read how to make Lawwenda ready for the first steps inAppendix: Installation.First Steps-----------In order to make any use of Lawwenda, it is required to create atleast one file share. This can be done by executing this on aterminal:lawwenda_cli add_share myshare /path/that/i/want/to/shareThis assumes */path/that/i/want/to/share* to be the directory you wantto share. *myshare* is the share name and can be chosen freely. Itwill ask you to choose a password (just leave empty for no password).Then you need a web server that hosts your Lawwenda installation. Ifyou have skipped this part of Appendix: Installation, you can get oneby executing this:lawwenda_cli run_dev_serverThis will print the root address of a tiny local web server that hostsyour Lawwenda installation for the moment. It will not answer anythinguseful, but you need it in the following step in order to access yourshares.Warning:Be aware that starting this server potentially makes data availableto parties that should not have access (e.g. if 3rd parties haveaccess to your local network services). In any case, for differentreasons, do not use this variant for more than some trying, testing,developing!If your web server provides your Lawwenda installation at*https://example.com/shares/*, you can access your new *myshare* shareat *https://example.com/shares/myshare/*. The base address might beanything, and just the share name has to be appended.There are some optional parameters that can be specified in a*lawwenda_cli add_share* call. They are a large part of Lawwenda'sversatility. Get more details by executing:lawwenda_cli add_share -hOnce you have Lawwenda running in a web server and you have added atleast one share, you can browse to its share url and start using it.Read the User Interface Quickstart Guide for more details about theuser interface.Appendix: Installation======================Install Lawwenda via the installation package for your environment, ifa suitable one exists for download. This also takes care of installingdependencies and doing preparation (unless mentioned otherwise in theinstallation procedure). It is possible (and not hard) to use the bareSource Package, but beyond this documentation.For real usage it is highly recommended to host Lawwenda in a real webserver. This makes use of the *wsgi* interface, which is commonly usedfor hosting Python based web application. You can skip this for now atcome back somewhat later if you just want to try it out, and make theFirst Steps.The exact steps for adding a wsgi application to a web server dependon the daemon that is used. Please read the documentation of your webserver.You will need to specify the location of a wsgi script duringconfiguration. Create this file in a place that is convenient for youand fill it with the content that is printed by this command line:lawwenda_cli generate_wsgiFor example, the steps for Apache 2.4 are roughly the following:* Install and enable *mod_wsgi*.* Add a snippet like this inside some *VirtualHost* in your Apacheconfiguration:WSGIScriptAlias /shares /srv/lawwenda/lawwenda.wsgi<Directory /srv/lawwenda>Require all granted</Directory>The */shares* path is the path segment to append to the VirtualHostroot url in order to reach Lawwenda. That url might then be*https://example.com/shares*. Note that this url will not return auseful answer. This is okay, the documentation will explain why.The */srv/lawwenda/lawwenda.wsgi* path (and its parent path in*Directory*) can be chosen freely. This file will be created in thenext step. The following assumes the paths as in the snippet.* Execute this commands on a terminal:mkdir -p /srv/lawwendalawwenda_cli generate_wsgi > /srv/lawwenda/lawwenda.wsgi* Adapt as needed to match your security requirements. :)* Restart Apache.Note:The web server must be privileged to access the directories that youare going to share.