Deploying Web Projects

There are very many ways of deploying web projects. One of the easiest is to use a designated Linux-based server or virtual machine. Then, any of the established web servers can easily be installed via apt. For example, the Apache webserver is available via

sudo apt install apache2

Once installed, access http://localhost/ to find out more on how to configure the server and where to deploy your files (usually /var/www/html).

mod_userdir

The apache server allows each user on a server to host their individual web data at, eg. https://sandbox.bulme.at/~username/. By default, the data is hosted from the public_html subdirectory within the user's home. If mod_userdir is enabled, users may deploy their content by creating this directory and adjusting the permissions so that the web server can access the files.

mkdir ~/public_html
chmod o+x ~
chmod 755 ~/public_html

For this to work, it is important that the web server can access the user's home directory (+x), however, the privileges should be as limited as possible, hence the server should only get read access (for listing files) to ~/public_html but not to ~. The server must absolutely not get write access to any files or directories within the user's home.