zammad-docker-compose/README.md

79 lines
4.2 KiB
Markdown
Raw Permalink Normal View History

# Welcome to Zammad
2016-12-17 11:10:51 +00:00
Zammad is a web based open source helpdesk/ticket system with many features
to manage customer communication via several channels like telephone, facebook,
twitter, chat and e-mails. It is distributed under the GNU AFFERO General Public
2018-02-05 19:20:23 +00:00
License (AGPL). Do you receive many e-mails and want to answer them with a team of agents?
2016-12-17 11:10:51 +00:00
You're going to love Zammad!
## Use case for this repo
2016-12-17 11:10:51 +00:00
2017-01-09 21:56:23 +00:00
This repo is meant to be the starting point for somebody who likes to use dockerized multi-container Zammad in production.
2016-12-17 11:10:51 +00:00
## Getting started with zammad-docker-compose
<https://docs.zammad.org/en/latest/install-docker-compose.html>
2020-02-26 23:36:07 +00:00
## CI Status
2017-11-13 08:57:22 +00:00
2020-02-26 23:38:25 +00:00
[![CI Status](https://github.com/zammad/zammad-docker-compose/workflows/ci/badge.svg)](https://github.com/zammad/zammad-docker-compose/actions)
2017-11-13 08:57:22 +00:00
## Using a reverse proxy
In environments with more then one web applications it is necessary to use a reverse proxy to route connections to port 80 and 443 to the right application.
To run Zammad behind a revers proxy, we provide `docker-compose.proxy-example.yml` as a starting point.
1. Copy `./.examples/proxy/docker-compose.proxy-example.yml` to your own configuration, e.g. `./docker-compose.prod.yml`
2017-11-13 08:57:22 +00:00
`cp ./.examples/proxy/docker-compose.proxy-example.yml ./docker-compose.prod.yml`
2. Modify the environment variable `VIRTUAL_HOST` and the name of the external network in `./docker-compose.prod.yml` to fit your environment.
3. Run docker-composer commands with the default and your configuration, e.g. `docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d`
2017-11-13 08:57:22 +00:00
See `.examples/proxy/docker-compose.yml` for an example proxy project.
Like this, you can add your `docker-compose.prod.yml` to a branch of your Git repository and stay up to date by merging changes to your branch.
## Using Rancher
```console
RANCHER_URL=http://RANCHER_HOST:8080 rancher-compose --env-file=.env up
```
2020-02-19 22:14:14 +00:00
## Running without Elasticsearch
Elasticsearch is an optional, but strongly recommended dependency for Zammad. More details can be found in the [documentation](https://docs.zammad.org/en/latest/prerequisites/software.html#elasticsearch-optional). There are however certain scenarios when running without Elasticsearch may be desired, e.g. for very small teams, for teams with limited budget or as a temporary solution for an unplanned Elasticsearch downtime or planned cluster upgrade.
Elasticsearch is enabled by default in the example `docker-compose.yml` file. It is also by default required to run the "zammad-init" command. Disabling Elasticsearch is possible by setting a special environment variable: `ELASTICSEARCH_ENABLED=false` for the `zammad-init` container and removing all references to Elasticsearch everywhere else: the `zammad-elasticsearch` container, it's volume and links to it.
2020-02-19 22:14:14 +00:00
## Upgrading
2020-03-05 14:15:02 +00:00
### From =< 3.3.0-12
2020-02-20 12:24:36 +00:00
We've updated the Elasticsearch image from 5.6 to 7.6.
As there is no direct upgrade path we have to delete all Elasticsearch indices and rebuild them.
2020-02-20 15:18:13 +00:00
Do the following to empty the ES docker volume:
2020-02-19 22:14:14 +00:00
```console
2020-02-20 15:18:13 +00:00
docker-compose stop
2020-04-14 14:32:36 +00:00
set -o pipefail DOCKER_VOLUME="$(docker volume inspect zammaddockercompose_elasticsearch-data | grep Mountpoint | sed -e 's#.*": "##g' -e 's#",##')/*"
2020-04-14 14:35:14 +00:00
echo "${DOCKER_VOLUME}" #check this is a valid docker volume path! if not do not proceed or you might lose data!
2020-04-14 14:36:29 +00:00
rm -r $(docker volume inspect zammaddockercompose_elasticsearch-data | grep Mountpoint | sed -e 's#.*": "##g' -e 's#",##')/*
2020-02-20 15:18:13 +00:00
docker-compose start
2020-02-19 22:14:14 +00:00
```
2020-02-25 18:56:48 +00:00
To workaround the [changes in the PostgreSQL 9.6 container](https://github.com/docker-library/postgres/commit/f1bc8782e7e57cc403d0b32c0e24599535859f76) do the following:
```console
docker-compose start
docker exec -it zammaddockercompose_zammad-postgresql_1 bash
psql --username postgres --dbname zammad_production
CREATE USER zammad;
ALTER USER zammad WITH PASSWORD 'zammad';
ALTER USER zammad WITH SUPERUSER CREATEDB;
```
### From =< 3.6.0-65
To be able to run Zammad container with an unprivileged user we had to change the port Nginx uses from 80 to 8080, so Zammad needs to be accessed via <http://localhost:8080> instead of <http://localhost> now!
This change will also affect you, if you use a reverse proxy, like Traefik or Haproxy, in front of Zammad as your reverse proxy configuration needs to be adapted to point to port 8080 now.