# Open-Xchange App Suite Installer script collection This collection contains several scripts for letting you install a fully fledged Open-Xchange environment. By default this will install a singlenode environment consisting of: - Database (mysql or mariadb - take a look at the config file) - Open-Xchange middleware (optionally with guard, documents(including dcs), documentconverter) - Apache2 Frontend ## Configuration Basic Configuration is located inside the file `config/config`. Most options can be overriden by using each shell-scripts parameters (sometimes described in the help text) ## Context configuration You can configure the context that will be created later on by either modifying the existing qa env (`config/environment/qa`) or creating your own env folder (copy the qa folder and modify the two files accordingly). In case of creating your own environment you have to manually call `config/environment/create-context.sh --environment <foobar>` since the qa context is currently hardcoded in case it is enabled in the config. ### Docker configuration The docker configuration is located at `docker/<env>/config` and will override values from the above default config. You may also override config by providing environmental variables. ## Versions Versions can be configured at `setup/versions` Check that file for more information. ### Database versions By modifying the DATABASE_TYPE and DATBASE_VERSION variables (located in `config/config`) you can manually specify which database type and version to use. Currently supported are mysql and mariadb in all versions as listed on the support matrix in the oxpedia. The installer will also take care of the required "ox-tunings" as described in the oxpedia (https://oxpedia.org/wiki/index.php?title=My.cnf). The file is currently located at `config/database/ox-tunings.cnf` and will simply be copied to the sql-servers configuration folder. ## Good to know This script collection has its roots in the old ox-quickinstall (or installer). Much of the install logic for the different distros was simply taken from there and still can be found at `lib/common.bash` ## How to use Simple cli examples of how to use this It is always a good idea to read documentation or help texts! ` $ ./ox-installer --help ` ### Install singlenode with everything you need Right now only frontend (apache), middleware and a database are installed. It uses dovecot.qa.open-xchange.com as mail backend. Please note that the '--singlenode' may be ommited as it is already set in 'config/config' ` $ ./ox-installer.sh --singlenode ` You can supply each component individually. Read the help text for more information. ### Add additiional features/components Whenever you feel that you might want to test additional components you can install or enable them. Take a look at the features/ direcotry for the feature related scripts. These scripts will install and configure the feature. #### Guard To enable / install guard on a node simply execute: ` $ features/guard.sh --install --enable ` If you are using the docker environment you can enable guard by executing the installer inside the running container: ` $ docker-compose exec singlenode bash -c "/ox-installer/features/guard.sh --install --enable" ` #### additional features Take a look into the 'features' folder. You may enable/disable additional featues by executing those scripts. This script is just an teamplate for later use, it does nothing, just sits there waiting to be copied to an actual feature... ` $ features/feature-template.sh --enable --restart ` ## Docker This installer supports creation of Open-Xchange docker images. These images will use supervisord as process monitor. Right now it creates a simple groupware image (apache2, ox frontend, ox middleware). Seperate mail and database services are required. Take a look at the docker-compose.yml at the root level of this repo. ### Build docker images The installer script can be used as it is for docker environments. Take a look into the docker/ directory for some examples. You can configure these environments by editing the `docker/<env>/config` file (e.g. docker/singlenode/config). The singlenode image can be build by executing docker-composes build action: `$ docker-compose build ` This will automatically install OX App Suite, Guard, Documents (including documents collaboration) and the documentconverter server. The image will be tagged with the `latest` tag on each rebuild... ### Start it If you have docker-compose available you can use it to start the provided compose-environment, but make sure to be in the correct directory. `$ docker-compose up` Any runtime related files will be stored at `<repo>/docker/<env>/.runtime` (e.g. <repo>/docker/singlenode/.runtime) ### Stop it `$ docker-compose down -v` ### Clean it up `$ rm -fr docker/<env>/.runtime/`