diff --git a/README_SETUP.md b/README_SETUP.md index 60fb212a62f99fdf7b9fe97b1895c39336359e23..9d81763615f0cc36ff4baa0ac55b471be737b9e6 100644 --- a/README_SETUP.md +++ b/README_SETUP.md @@ -208,3 +208,50 @@ cd javasphinx git checkout 659209069603a pip3 install . ``` + +## Installation under special conditions + +### 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) +- [iptables tutorial](https://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#REDIRECTTARGET) + +Using authbind is a simple solution that is briefly described here: +- Install the package authbind +- Create (empty) files `/etc/authbind/byport/80` (and `.../443`), e.g. using `touch` +- Set permissions of these files to 777 +- Run the CaosDB server using authbind with the `--deep` option: + `authbind --deep make run`