# 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)
    - Open-Xchange middleware
    - 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)

### Docker configuration

The docker configuration is located at `docker/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.

## 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 an singlenode example.
You can configure this environment by editing the 'docker/config' file.
In order to build an image execute the build script:

`$ docker/build.sh`

### Start it

If you have docker-compose available you can use it to start the provided compose-environment

`$ docker-compose up`

### Stop it

`$ docker-compose down -v`

### Clean it up

`$ rm -fr .runtime/`