2 merge requests!41REL: update changelog, bump version of pom.xml, update DEPENDENCIES,!17DOC: section for troubleshooting and offline installation in setup readme
### Installation without or with restricted internet connection on the host system
It is of course possible to install CaosDB on servers which do not have an internet connection
or only have limited access to the internet.
However, maven, that is used to build the CaosDB server, typically accesses the internet very often, and some reconfiguration might be necessary to prevent timeout issues and similar headache.
A recommendation to proceed is:
- Clone the repositories (caosdb-server, caosdb-mysqlbackend and subrepository caosdb-webui) on
a second machine that has internet connection.
- Run `make install` and `make run` in the caosdb-server repository. This will download all required dependencies and setup all maven-related artifacts in a folder called `.m2` typically located in the home directory.
- In addition to copying over server, mysqlbackend and webui to the host machine, also copy the complete `.m2` folder to the **home directory of the user that is running the CaosDB server**.
- On the host machine, open the file `pom.xml` in the server repository.
- Look for the section `<repositories>`. There should be a `<respository>` with `<id>local-maven-repo</id>`. It should be moved on top of the list of repositories, so that the xml block appears directly after `<repositories>` and before the repository maven-central.
## Troubleshooting / FAQ
### I set up and run the server, but I get an error that XSLT parsing failed in the WebUI
You probably forgot to `make` the webui.
Make sure that you:
- Installed the WebUI according to the section [Web UI]
- Run `make install` in the webui sub folder
### How can I run the CaosDB server using ports 443 and 80?
On standard linux setups, ports 443 and 80 must not be opened by non-root processes.
There are multiple solutions for this problem:
- Use iptables to redirect a low port to a high port.
- Use `CAP_NET_BIND_SERVICE`
- Use authbind
Here are some resources to read about these options:
-[Question on Stackoverflow](https://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-on-linux)
-[Questoin on Superuser](https://superuser.com/questions/710253/allow-non-root-process-to-bind-to-port-80-and-443)