alaya(1)

ALAYA(1) User Commands ALAYA(1)

NAME

alaya - Alaya Webdav Server

SYNOPSIS

alaya [-v] [-d] [-O] [-h] [-p <port>] [-i <iface>] [-f <config file>] [-t <seconds>] [-A <auth methods>] [-a <auth file>] [-l <log file>] [-P <pid file>] [-r <path>] [-sslv <version>] [-key <path>] [-cert <path>] [-client-cert <level>] [-verify-path <path>] [-ciphers <cipher list>] [-pfs] [-cgi <path>] [-ep <path>] [-u <default user>] [-g <default group>] [-m <http methods>] [-realm <auth realm>] [-allowed <users>] -denied <users>] [-allow-ip <iplist>] [-nodir] [-dir <type>] [-compress <yes|no|partial>] [-ttl <ttl>] [-cache <seconds>] [-tz <timezone>] [-accesstokenkey <string>] [-urltokenkey <string>] [-clientnames] [-ttl <pkt ttl>]

DESCRIPTION

Alaya Webdav Server: version 5.5 Author: Colum Paget Email: colums.projects@gmail.com Credits: Thanks to Gregor Heuer, Helmut Schmid, and Maurice R Volaski for bug reports.

-v
Verbose logging.
-v -v
Even more verbose logging.
-a
Specify the authentication file for 'built in' authentication.
-A
Authentication methods. Comma separated list of pam,passwd,shadow,native,accesstoken,urltoken. For 'Alaya native only' just use 'native' on its own
-d
No daemon, don't background process.
-nodemon
No daemon, don't background process.
-f
Path to config file, defaults to /etc/alaya.conf, but alaya can be configured by command-line args only.
-p
Set port to listen on.
-O
Open server, don't require authentication.
-m
HTTP Methods (GET, PUT, DELETE, PROPFIND) that are allowed.

Comma Separated. Set to 'GET' for very basic webserver, 'GET,PROPFIND' for readonly DAV. 'BASE' will set GET,POST,HEAD. 'DAV' will set everything needed for WebDAV. 'RGET' will allow proxy-server gets. 'PROXY' will enable CONNECT and RGET. 'DAV,PROXY' enables everything.

-t
'activity timeout', connection inactivity timeout in seconds.
-r
'ChRoot mode', chroot into directory and offer services from it.
-chroot
'ChRoot mode', chroot into directory and offer services from it.
-h
'ChHome mode', switch to users home dir and chroot.
-chhome
'ChHome mode', switch to users home dir and chroot.
-i
Set interface/address listen on. Argument is IP address of interface. Allows running separate servers on the same port on different interfaces/network cards.
-l
Path to log file, default is to use 'syslog' instead.
-P
Set path to pidfile.
-tz
Set server's timezone.
-nodir
Do not allow directory listings.
-dir
Directory listing type. One of: 'none', 'basic', 'fancy', 'interactive', or 'full'.
-dirtype
Directory listing type. One of: 'none', 'basic', 'fancy', 'interactive', or 'full'.
-U
fancy, interactive dir listings with media, tarballs and other features..
-sslv
Minimum SSL version for HTTPS. One of 'ssl', 'tls', 'tls1.2', 'tls1.2'
-key
Keyfile for SSL (HTTPS)
-cert
Certificate for SSL (HTTPS). This can be a certificate chain bundled in .pem format.
-ciphers
List of SSL ciphers to use.
-dhparams
Path to a file containing Diffie Helmann parameters for Perfect Forward Secrecy.
-dhgenerate
Generate Diffie Helmann parameters for Perfect Forward Secrecy at startup (will take a long time). Will not generate if a dhparams file ahs been supplied with -dhparams
-pfs
Use Perfect Forward Secrecy. Will not generate Diffie Helmann parameters unless -dhgenerate is supplied too
-client-cert
Settings for SSL client certificate authentication. Three levels are available: 'required' means a client MUST supply a certificate, but that it may still be required to log in through normal authentication. 'sufficient' means that a client CAN supply a certificate, and that the certificate is all the authentication that's needed. 'required+sufficient' means that a client MUST provide a certificate, and that this certificate is sufficient for authentication. 'ask' is used at the global level, when 'required' or 'sufficient' is present in the authentication file for a specific user.
-verify-path
Path to a file, or a directory, containing Authority certificates for verifying client certificates.
-cgi
Directory containing cgi programs. These programs will be accessible even though they are outside of a 'chroot'
-hashfile
File containing cryptographic hashes of cgi-scripts. This file contains the output of the md5sum, shasum, sha256sum or sha512sum utilities.
-ep
'External path' containing files that will be accessible even outside a chroot.
-u
User to run cgi-programmes and default 'real user' for any 'native users' that don't have one specified.
-g
Group to run server in (this will be the default group for users)
-allowed
Comma separated list of users allowed to login (default without this switch is 'all users can login'
-denied
Comma separated list of users DENIED login
-realm
Realm for HTTP Authentication
-compress
Compress documents and responses. This can have three values, 'yes', 'no' or 'partial'. 'Partial' means alaya will compress directory listings and other internally genrated pages, but not file downloads.
-cache
Takes an argument in seconds which is the max-age recommended for browser caching. Setting this to zero will turn off caching in the browser. Default is 10 secs.

-accesstokenkey Secret key to use with access-tokens.

-urltokenkey
Secret key to use with url-tokens.
-su
On linux systems disable the 'no su' feature, so that suid cgi programs can switch user. NOT RECOMENDED.
-ttl <value>
Set Time To Live value for response packets from this server.

-allow-ip <ip list> Comma-seperated list of shell-match patterns of allowed client IPs. If unset all IPs are allowed as clients. e.g. `alaya -allow-ips 10.[1-5].*.*,127.0.0.1`.

-allow-ips <ip list> Comma-seperated list of shell-match patterns of allowed client IPs. If unset all IPs are allowed as clients. e.g. `alaya -allow-ips 10.[1-5].*.*,127.0.0.1`.

User Setup for Alaya Authentication

Alaya can use PAM, /etc/shadow or /etc/passwd to authenticate, but has its own password file that offers extra features, or is useful to create users who can only use Alaya. Users in the Alaya password file are mapped to a 'real' user on the system (usually 'guest' or 'nobody'). The Alaya password file can be setup through the alaya commandline.

Add User:

alaya -user add [-a <auth path>] [-e <password encryption type>]
[-h <user home directory>] <Username> <Password> <Setting> <Setting> <Setting>
-a
Specify the authentication file for 'built in' authentication.
-h
Specify home directory of new user.
-u
Specify 'real user' that this user maps to.
-e
Specify password encryption type (sha1, sha512, sha256, md5, plain or null).

Config file type settings (like 'ChHome' or 'ChRoot=/var/shared' or 'HttpMethods=GET,PUT,PROPFIND' or 'CgiPath=/usr/share/cgi') can be added so that these settings are specific to a user

alaya -user add bill billspassword ChHome HttpMethods=GET

Delete User:

alaya -user del [-a <auth path>] <Username>

List Users:

alaya -user list
November 2025 Alaya 5.5