This is the main repository containing all installation scripts, configuration and customization of operating system all application present in Spotter Cluster virtual machine.

## Virtual machine specifications
- **Memory:** 4 GB
- **CPU:** 1 processor, 2 cores
- **Hard Disk:** SCSI, 60 GB

In case you're setting up a VMWare virtual machine, select OS type *Other Linux 3.x kernel 64-bit* and after you create the VM, manually edit the `*.vmx` file using a text editor and set there `mem.hotadd = "FALSE"`. Failing to do so will result in system unable to boot. Other hypervizors don't need this adjustment.

## Operating system installation

Download **Alpine Virtual 3.8.0 x86_64** from <https://alpinelinux.org/downloads/> and boot from it. At the login prompt, use the root user without password to log in.

```
# Set up interfaces (leave the default choices)
setup-interfaces
ifup eth0

# Download and launch the setup script  
wget dl.dasm.cz/alpine.sh
sh alpine.sh
```

The script will perform the bare Alpine linux installation into VM using LUKS-on-LVM. The default disk encryption password is `password`. No root password is set.

## Application installation

### First time setup
```
# Install git
apk --no-cache add git

# Clone the repository
git clone https://gitlab.dasm.cz/Spotter-Cluster/Spotter-Cluster.git

# Enter the repository directory
cd Spotter-Cluster

# Optional: Edit the install sequence script
vi 00-install.sh

# Launch the script
./00-install.sh
```

### Resuming from a snapshot
Assumes that the repository has already been cloned.
```
# Enter the repository directory
cd Spotter-Cluster

# Update repository
git pull

# Optional: Edit the install sequence script
vi 00-install.sh

# Launch the script
./00-install.sh
```

## Host assignment

| Application     |     Container     | UID/GID |   Internal Port  |   Host   |
|-----------------|------------------:|--------:|-----------------:|----------|
| ActiveMQ        |          activemq |   61616 | 61616 (ActiveMQ) |        - |
| CKAN            |              ckan |    8003 |      8080 (HTTP) |     ckan |
| CKAN Datapusher |   ckan-datapusher |    8004 |      8080 (HTTP) |        - |
| Crisis Cleanup  |     crisiscleanup |    8005 |      8080 (HTTP) |       cc |
| CTS             |               cts |    8006 |      8080 (HTTP) |      cts |
| FrontlineSMS    |      frontlinesms |    8018 |      8080 (HTTP) |      sms |
| GNU Health      |         gnuhealth |    8008 |      8080 (HTTP) |       gh |
| KanBoard        |          kanboard |    8009 |      8080 (HTTP) |       kb |
| MariaDB         |           mariadb |    3306 |     3306 (MySQL) |        - |
| Mifos X         |            mifosx |    8012 |      8080 (HTTP) |   mifosx |
| Motech          |            motech |    8013 |      8080 (HTTP) |   motech |
| ODK Aggregate   |       opendatakit |    8015 |      8080 (HTTP) |      odk |
| ODK Build       | opendatakit-build |    8017 |      8080 (HTTP) | odkbuild |
| OpenMapKit      |        openmapkit |    8007 |      8080 (HTTP) |      omk |
| Pan.do/ra       |           pandora |    8002 |      8080 (HTTP) |  pandora |
| Postgres        |          postgres |    5432 |  5432 (Postgres) |        - |
| RabbitMQ        |          rabbitmq |    5672 |      5672 (AMQP) |        - |
| Redis           |             redis |    6379 |     6379 (Redis) |        - |
| Sahana          |            sahana |    8001 |      8080 (HTTP) |   sahana |
| SAMBRO          |            sambro |    8001 |      8080 (HTTP) |   sambro |
| SeedDMS         |           seeddms |    8010 |      8080 (HTTP) |      dms |
| Sigmah          |            sigmah |    8011 |      8080 (HTTP) |   sigmah |
| Solr            |              solr |    8983 |      8983 (HTTP) |        - |
| Ushahidi        |          ushahidi |    8014 |      8080 (HTTP) |      ush |
