Project: Lagoon (App Definition and Development / Application Definition & Image Build)
File: service-types.md

The below lists all service types that can be defined via `lagoon.type` within a . !!! Warning Once a `lagoon.type` is defined and the environment is deployed, changing it to a different type is not supported and could result in a broken environment. Basic container, good to use for most applications that don't have an existing template. No persistent storage. The port can be changed using a label. If an is not required (e.g. for an internal-facing service, set `lagoon.autogeneratedroute: false` in the docker-compose.yml) | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | TCP connection on `3000` | `3000` | Yes | No | `lagoon.service.port`, `lagoon.autogeneratedroute` | Like `basic`. Will also generate persistent storage, defines mount location via `lagoon.persistent`. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | TCP connection on `3000` | `3000` | Yes | Yes | `lagoon.service.port`, `lagoon.autogeneratedroute`, `lagoon.persistent`, `lagoon.persistent.name`, `lagoon.persistent.size`, `lagoon.persistent.class` | Use for any kind of CLI container \(like PHP, Node.js, etc\). Automatically gets the customer SSH private key that is mounted in `/var/run/secrets/lagoon/sshkey/ssh-privatekey`. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | - | No | No | No | - | Like `cli`, expects `lagoon.persistent.name` to be given the name of a service that has persistent storage, which will be mounted under defined `lagoon.persistent` label. Does NOT generate its own persistent storage, only used to mount another service's persistent storage. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | - | No | No | Yes | `lagoon.persistent.name`, `lagoon.persistent` | Elasticsearch container, will auto-generate persistent storage under `/usr/share/elasticsearch/data`. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | HTTP on `localhost:9200/_cluster/health?local=true` | 9200 | No | Yes | `lagoon.persistent.size` | Kibana container. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | TCP connection on `5601` | `5601` | Yes | No | - | Logstash container. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | TCP connection on `9600` | `9600` | No | No | - | A meta-service which will tell Lagoon to automatically decide between `mariadb-single` and `mariadb-dbaas`. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | - | - | - | - | - | MariaDB container. Creates cron job for backups running every 24h executing `/lagoon/mysql-backup.sh 127.0.0.1`. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | TCP connection on `3306` | `3306` | No | Yes | `lagoon.persistent.size` | Uses a shared MariaDB server via the DBaaS

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | Not Needed | `3306` | No | - | - | A meta-service which will tell Lagoon to automatically decide between `mongo-single` and `mongo-dbaas`. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | - | - | - | - | - | MongoDB container, will generate persistent storage of min 1GB mounted at `/data/db`. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | TCP connection on `27017` | `27017` | No | Yes | `lagoon.persistent.size` | Uses a shared MongoDB server via the DBaaS Operator. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | Not Needed | `27017` | No | - | - | NGINX container. No persistent storage. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | `localhost:50000/nginx_status` | `8080` | Yes | No | `lagoon.autogeneratedroute` | Like `nginx`, but additionally a `php` container. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | NGINX: `localhost:50000/nginxstatus`, PHP: `/usr/sbin/checkfcgi` | `8080` | Yes | No | `lagoon.autogeneratedroute` | Like `nginx-php.` Will generate persistent storage, defines mount location via `lagoon.persistent`. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | NGINX: `localhost:50000/nginxstatus`, PHP: `/usr/sbin/checkfcgi` | http on `8080` | Yes | Yes | `lagoon.autogeneratedroute`, `lagoon.persistent`, `lagoon.persistent.name`, `lagoon.persistent.size`, `lagoon.persistent.class` | Node.js container. No persistent storage. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | TCP connection on `3000` | `3000` | Yes | No | `lagoon.autogeneratedroute` | Like `node`. Will generate persistent storage, defines mount location via `lagoon.persistent`. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | TCP connection on `3000` | `3000` | Yes | Yes | `lagoon.autogeneratedroute`, `lagoon.persistent`, `lagoon.persistent.name`, `lagoon.persistent.size`, `lagoon.persistent.class` | Instructs Lagoon to completely ignore this service. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | - | - | - | - | - | OpenSearch container, will auto-generate persistent storage under `/usr/share/opensearch/data`. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | HTTP on `localhost:9200/_cluster/health?local=true` | 9200 | No | Yes | `lagoon.persistent.size` | A meta-service which will tell Lagoon to automatically decide between `postgres-single` and

| Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | - | - | - | - | - | Postgres container. Creates cron job for backups running every 24h executing `/lagoon/postgres-backup.sh localhost`. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | TCP connection on `5432` | `5432` | No | Yes | `lagoon.persistent.size` | Uses a shared PostgreSQL server via the DBaaS Operator. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | Not Needed | `5432` | No | - | - | Python container. No persistent storage. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | HTTP connection on `8800` | `8800` | Yes | No | `lagoon.autogeneratedroute` | Python container. With persistent storage. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | HTTP connection on `8800` | `8800` | Yes | Yes | `lagoon.autogeneratedroute` | Redis container. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | TCP connection on `6379` | `6379` | No | No | - | Redis container with auto-generated persistent storage mounted under `/data`. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | TCP connection on `6379` | `6379` | No | Yes | `lagoon.persistent.size` | Solr container with auto-generated persistent storage mounted under `/var/solr`. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | TCP connection on `8983` | `8983` | No | Yes | `lagoon.persistent.size` | Varnish container. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | HTTP request `localhost:8080/varnish_status` | `8080` | Yes | No | `lagoon.autogeneratedroute` | Varnish container with auto-generated persistent storage mounted under `/var/cache/varnish`. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | HTTP request `localhost:8080/varnish_status` | `8080` | Yes | Yes | `lagoon.autogeneratedroute`, `lagoon.persistent.size` | Use for any kind of worker container \(like queue workers, etc.\) where there is no exposed service port. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | - | No | No | No | - | Like `worker`, expects `lagoon.persistent.name` to be given the name of a service that has persistent storage, which will be mounted under defined `lagoon.persistent` label. Does NOT generate its own persistent storage, only used to mount another service's persistent storage. | Healthcheck | Exposed Ports | Auto Generated Routes | Storage | Additional customization parameter | | : | : | : | : | : | | - | No | No | Yes | `lagoon.persistent.name`, `lagoon.persistent`