Zammad, verified and packaged by Elestio
763
Zammad is the helpdesk software of the future and helps you find structure in the chaos.
Deploy a fully managed Zammad on elest.io if you want to connect all your communication channels, easily grant user rights, and receive helpful reporting.
You can deploy it easily with the following command:
git clone https://github.com/elestio-examples/zammad.git
Copy the .env file from tests folder to the project directory
cp ./tests/.env ./.env
Edit the .env file with your own values.
Create data folders with correct permissions
set env vars
set -o allexport; source .env; set +o allexport;
mkdir -p ./zammad_backup;
mkdir -p ./zammad_data;
mkdir -p ./scripts/backup.sh;
mkdir -p ./elasticsearch_data;
mkdir -p ./postgresql_data;
chmod 777 ./zammad_backup
chmod 777 ./zammad_data
chmod 777 ./scripts/backup.sh
chmod 777 ./elasticsearch_data
chmod 777 ./postgresql_data
chown -R 1001:1001 elasticsearch_data
chown -R 1000:1000 zammad_data
chown -R 1000:1000 zammad_backup
Run the project with the following command
docker-compose up -d
You can access the Web UI at: http://your-domain:8784
Here are some example snippets to help you get started creating a container.
version: "3.3"
services:
zammad-backup:
command: ["zammad-backup"]
depends_on:
- zammad-railsserver
- zammad-postgresql
entrypoint: /usr/local/bin/backup.sh
environment:
- BACKUP_SLEEP=${BACKUP_SLEEP}
- HOLD_DAYS=${HOLD_DAYS}
- POSTGRESQL_USER=${POSTGRES_USER}
- POSTGRESQL_PASSWORD=${POSTGRES_PASS}
image: postgres:${POSTGRES_VERSION}
restart: ${RESTART}
volumes:
- ./zammad_backup:/var/tmp/zammad
- ./zammad_data:/opt/zammad:ro
- ./scripts/backup.sh:/usr/local/bin/backup.sh
zammad-elasticsearch:
image: bitnami/elasticsearch:8.5.1
restart: ${RESTART}
volumes:
- ./elasticsearch_data:/bitnami/elasticsearch/data
zammad-init:
command: ["zammad-init"]
depends_on:
- zammad-postgresql
environment:
- MEMCACHE_SERVERS=${MEMCACHE_SERVERS}
- POSTGRESQL_USER=${POSTGRES_USER}
- POSTGRESQL_PASS=${POSTGRES_PASS}
- REDIS_URL=${REDIS_URL}
image: ${IMAGE_REPO}:${SOFTWARE_VERSION_TAG}
restart: on-failure
volumes:
- ./zammad_data:/opt/zammad
zammad-memcached:
command: memcached -m 256M
image: memcached:1.6.17-alpine
restart: ${RESTART}
zammad-nginx:
command: ["zammad-nginx"]
ports:
- "172.17.0.1:8784:8080"
depends_on:
- zammad-railsserver
image: ${IMAGE_REPO}:${SOFTWARE_VERSION_TAG}
environment:
- NGINX_SERVER_SCHEME=https
restart: ${RESTART}
volumes:
- ./zammad_data:/opt/zammad
zammad-postgresql:
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASS}
image: postgres:${POSTGRES_VERSION}
restart: ${RESTART}
volumes:
- ./postgresql_data:/var/lib/postgresql/data
zammad-railsserver:
command: ["zammad-railsserver"]
depends_on:
- zammad-memcached
- zammad-postgresql
- zammad-redis
environment:
- MEMCACHE_SERVERS=${MEMCACHE_SERVERS}
- REDIS_URL=${REDIS_URL}
image: ${IMAGE_REPO}:${SOFTWARE_VERSION_TAG}
restart: ${RESTART}
volumes:
- ./zammad_data:/opt/zammad
zammad-redis:
image: redis:7.0.5-alpine
restart: ${RESTART}
zammad-scheduler:
command: ["zammad-scheduler"]
depends_on:
- zammad-memcached
- zammad-railsserver
- zammad-redis
image: ${IMAGE_REPO}:${SOFTWARE_VERSION_TAG}
restart: ${RESTART}
volumes:
- ./zammad_data:/opt/zammad
zammad-websocket:
command: ["zammad-websocket"]
depends_on:
- zammad-memcached
- zammad-railsserver
- zammad-redis
environment:
- MEMCACHE_SERVERS=${MEMCACHE_SERVERS}
- REDIS_URL=${REDIS_URL}
image: ${IMAGE_REPO}:${SOFTWARE_VERSION_TAG}
restart: ${RESTART}
volumes:
- ./zammad_data:/opt/zammad
| Variable | Value (example) |
|---|---|
| ADMIN_EMAIL | [email protected] |
| ADMIN_PASSWORD | your-password |
| SOFTWARE_VERSION_TAG | latest |
| BACKUP_SLEEP | 1d |
| HOLD_DAYS | 7 |
| IMAGE_REPO | elestio/zammad |
| RESTART | always |
| POSTGRES_USER | your-user |
| POSTGRES_PASSWORD | your-db-password |
| POSTGRES_DB | your-db-name |
| POSTGRES_VERSION | latest |
| MEMCACHE_SERVERS | memcache:11211 |
| REDIS_URL | redis://redis-url:6379 |
The Elestio Zammad Docker image sends the container logs to stdout. To view the logs, you can use the following command:
docker-compose logs -f
To stop the stack you can use the following command:
docker-compose down
To make backup and restore operations easier, we are using folder volume mounts. You can simply stop your stack with docker-compose down, then backup all the files and subfolders in the folder near the docker-compose.yml file.
Creating a ZIP Archive For example, if you want to create a ZIP archive, navigate to the folder where you have your docker-compose.yml file and use this command:
zip -r myarchive.zip .
Restoring from ZIP Archive To restore from a ZIP archive, unzip the archive into the original folder using the following command:
unzip myarchive.zip -d /path/to/original/folder
Starting Your Stack Once your backup is complete, you can start your stack again with the following command:
docker-compose up -d
That's it! With these simple steps, you can easily backup and restore your data volumes using Docker Compose.
Content type
Image
Digest
sha256:240b1b1f4…
Size
407.8 MB
Last updated
almost 3 years ago
docker pull elestio4test/zammad