Compare commits
17 Commits
monotek-pa
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
799edd7863 | ||
|
6606e8e2ca | ||
|
662aa8f512 | ||
|
ffa1268a2a | ||
|
3338cbeb22 | ||
|
9a547c67a9 | ||
|
1c52589095 | ||
|
281b5f317f | ||
|
ef8830e636 | ||
|
a8911b1359 | ||
|
1f32908c23 | ||
|
360324353f | ||
|
e5b0fedfe6 | ||
|
d588f2ff65 | ||
|
01fe85d74c | ||
|
abd9cd631d | ||
|
d397322bae |
11
.env
11
.env
@ -1,7 +1,14 @@
|
||||
IMAGE_REPO=zammad/zammad-docker-compose
|
||||
ELASTICSEARCH_VERSION=8.8.0
|
||||
IMAGE_REPO=ghcr.io/zammad/zammad
|
||||
MEMCACHE_SERVERS=zammad-memcached:11211
|
||||
MEMCACHE_VERSION=1.6.20-alpine
|
||||
POSTGRES_DB=zammad_production
|
||||
POSTGRES_PASS=zammad
|
||||
POSTGRES_USER=zammad
|
||||
POSTGRES_HOST=zammad-postgresql
|
||||
POSTGRES_PORT=5432
|
||||
POSTGRES_VERSION=15.3-alpine
|
||||
REDIS_URL=redis://zammad-redis:6379
|
||||
REDIS_VERSION=7.0.5-alpine
|
||||
RESTART=always
|
||||
VERSION=5.3.0-2
|
||||
VERSION=6.0.0-66
|
||||
|
16
.github/tests.sh
vendored
16
.github/tests.sh
vendored
@ -23,16 +23,28 @@ echo
|
||||
echo "Execute autowizard..."
|
||||
echo
|
||||
|
||||
docker exec zammad-docker-compose_zammad-railsserver_1 rake zammad:setup:auto_wizard
|
||||
docker exec --env=AUTOWIZARD_RELATIVE_PATH=var/auto_wizard.json --env=DATABASE_URL=postgres://zammad:zammad@zammad-postgresql:5432/zammad_production zammad-docker-compose_zammad-railsserver_1 rake zammad:setup:auto_wizard
|
||||
|
||||
echo
|
||||
echo "Autowizard executed successful :)"
|
||||
echo
|
||||
|
||||
|
||||
echo
|
||||
echo "Check DB for AutoWizard user"
|
||||
echo
|
||||
|
||||
docker exec --env=DATABASE_URL=postgres://zammad:zammad@zammad-postgresql:5432/zammad_production zammad-docker-compose_zammad-railsserver_1 rails r "p User.find_by(email: 'info@zammad.org')" | grep 'info@zammad.org'
|
||||
|
||||
echo
|
||||
echo "Check DB for AutoWizard user successfull :)"
|
||||
echo
|
||||
|
||||
echo
|
||||
echo "Fill DB with some random data"
|
||||
docker exec zammad-docker-compose_zammad-railsserver_1 rails r "FillDb.load(agents: 1,customers: 1,groups: 1,organizations: 1,overviews: 1,tickets: 1)"
|
||||
echo
|
||||
|
||||
docker exec --env=DATABASE_URL=postgres://zammad:zammad@zammad-postgresql:5432/zammad_production zammad-docker-compose_zammad-railsserver_1 rails r "FillDb.load(agents: 1,customers: 1,groups: 1,organizations: 1,overviews: 1,tickets: 1)"
|
||||
|
||||
echo
|
||||
echo "DB fill successful :)"
|
||||
|
2
.github/workflows/ci-remote-image.yaml
vendored
2
.github/workflows/ci-remote-image.yaml
vendored
@ -19,7 +19,7 @@ jobs:
|
||||
run: docker-compose up --detach
|
||||
|
||||
- name: add autowizard file
|
||||
run: docker cp .github/auto_wizard.json zammad-docker-compose_zammad-railsserver_1:/opt/zammad
|
||||
run: docker cp .github/auto_wizard.json zammad-docker-compose_zammad-railsserver_1:/opt/zammad/var
|
||||
|
||||
- name: run tests
|
||||
run: .github/tests.sh
|
||||
|
2
.github/workflows/ci.yaml
vendored
2
.github/workflows/ci.yaml
vendored
@ -23,7 +23,7 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Lint Code Base
|
||||
uses: github/super-linter/slim@v4
|
||||
uses: github/super-linter/slim@v5
|
||||
env:
|
||||
DEFAULT_BRANCH: master
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
19
README.md
19
README.md
@ -6,23 +6,24 @@ twitter, chat and emails. It is distributed under the GNU AFFERO General Public
|
||||
License (AGPL). Do you receive many emails and want to answer them with a team of agents?
|
||||
You're going to love Zammad!
|
||||
|
||||
## Use case for this repository
|
||||
## Use cases
|
||||
|
||||
This repository is meant to be the starting point for somebody who likes to use dockerized multi-container Zammad in production.
|
||||
This repository is the starting point if you want to:
|
||||
|
||||
## Getting started with zammad-docker-compose
|
||||
- deploy Zammad in a containerized production environment
|
||||
- test the current `stable` or `develop` versions of Zammad
|
||||
|
||||
[Learn more on Zammads documentation](https://docs.zammad.org/en/latest/install/docker-compose.html)
|
||||
## Getting started
|
||||
|
||||
[Learn more on Zammad’s documentation](https://docs.zammad.org/en/latest/install/docker-compose.html)
|
||||
|
||||
## Upgrading
|
||||
|
||||
For upgrading instrcutions see our [Releases](https://github.com/zammad/zammad-docker-compose/releases).
|
||||
|
||||
Please be aware that the zammad-cocker-compose repository versions and tags don't match the Zammad container tags!
|
||||
For upgrading instructions see our [Releases](https://github.com/zammad/zammad-docker-compose/releases).
|
||||
|
||||
## Status
|
||||
|
||||
[![ci-remote-image](https://github.com/zammad/zammad-docker-compose/actions/workflows/ci-remote-image.yaml/badge.svg)](https://github.com/zammad/zammad-docker-compose/actions/workflows/ci-remote-image.yaml) [![Docker Pulls](https://badgen.net/docker/pulls/zammad/zammad-docker-compose?icon=docker&label=pulls)](https://hub.docker.com/r/zammad/zammad-docker-compose/)
|
||||
[![ci-remote-image](https://github.com/zammad/zammad-docker-compose/actions/workflows/ci-remote-image.yaml/badge.svg)](https://github.com/zammad/zammad-docker-compose/actions/workflows/ci-remote-image.yaml) [![Dockerhub Pulls](https://badgen.net/docker/pulls/zammad/zammad-docker-compose?icon=docker&label=pulls)](https://hub.docker.com/r/zammad/zammad-docker-compose/)
|
||||
|
||||
## Using a reverse proxy
|
||||
|
||||
@ -48,4 +49,4 @@ RANCHER_URL=http://RANCHER_HOST:8080 rancher-compose --env-file=.env up
|
||||
|
||||
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.
|
||||
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, its volume and links to it.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
version: '3'
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
|
||||
@ -10,19 +10,21 @@ services:
|
||||
- zammad-postgresql
|
||||
entrypoint: /usr/local/bin/backup.sh
|
||||
environment:
|
||||
- BACKUP_SLEEP=86400
|
||||
- BACKUP_TIME=03:00
|
||||
- HOLD_DAYS=10
|
||||
- POSTGRESQL_DB=${POSTGRES_DB}
|
||||
- POSTGRESQL_USER=${POSTGRES_USER}
|
||||
- POSTGRESQL_PASSWORD=${POSTGRES_PASS}
|
||||
image: postgres:15.0-alpine
|
||||
- TZ=Europe/Berlin
|
||||
image: postgres:${POSTGRES_VERSION}
|
||||
restart: ${RESTART}
|
||||
volumes:
|
||||
- zammad-backup:/var/tmp/zammad
|
||||
- zammad-data:/opt/zammad:ro
|
||||
- zammad-var:/opt/zammad/var:ro
|
||||
- ./scripts/backup.sh:/usr/local/bin/backup.sh:ro
|
||||
|
||||
zammad-elasticsearch:
|
||||
image: bitnami/elasticsearch:8.5.1
|
||||
image: bitnami/elasticsearch:${ELASTICSEARCH_VERSION}
|
||||
restart: ${RESTART}
|
||||
volumes:
|
||||
- elasticsearch-data:/bitnami/elasticsearch/data
|
||||
@ -33,17 +35,17 @@ services:
|
||||
- zammad-postgresql
|
||||
environment:
|
||||
- MEMCACHE_SERVERS=${MEMCACHE_SERVERS}
|
||||
- POSTGRESQL_USER=${POSTGRES_USER}
|
||||
- POSTGRESQL_PASS=${POSTGRES_PASS}
|
||||
- REDIS_URL=${REDIS_URL}
|
||||
image: ${IMAGE_REPO}:${VERSION}
|
||||
restart: on-failure
|
||||
user: 0:0
|
||||
volumes:
|
||||
- zammad-data:/opt/zammad
|
||||
- zammad-config-nginx:/etc/nginx/sites-enabled
|
||||
- zammad-var:/opt/zammad/var
|
||||
|
||||
zammad-memcached:
|
||||
command: memcached -m 256M
|
||||
image: memcached:1.6.17-alpine
|
||||
image: memcached:${MEMCACHE_VERSION}
|
||||
restart: ${RESTART}
|
||||
|
||||
zammad-nginx:
|
||||
@ -55,13 +57,15 @@ services:
|
||||
image: ${IMAGE_REPO}:${VERSION}
|
||||
restart: ${RESTART}
|
||||
volumes:
|
||||
- zammad-data:/opt/zammad
|
||||
- zammad-config-nginx:/etc/nginx/sites-enabled:ro
|
||||
- zammad-var:/opt/zammad/var:ro
|
||||
|
||||
zammad-postgresql:
|
||||
environment:
|
||||
- POSTGRES_DB=${POSTGRES_DB}
|
||||
- POSTGRES_USER=${POSTGRES_USER}
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASS}
|
||||
image: postgres:15.1-alpine
|
||||
image: postgres:${POSTGRES_VERSION}
|
||||
restart: ${RESTART}
|
||||
volumes:
|
||||
- postgresql-data:/var/lib/postgresql/data
|
||||
@ -78,11 +82,13 @@ services:
|
||||
image: ${IMAGE_REPO}:${VERSION}
|
||||
restart: ${RESTART}
|
||||
volumes:
|
||||
- zammad-data:/opt/zammad
|
||||
- zammad-var:/opt/zammad/var
|
||||
|
||||
zammad-redis:
|
||||
image: redis:7.0.5-alpine
|
||||
image: redis:${REDIS_VERSION}
|
||||
restart: ${RESTART}
|
||||
volumes:
|
||||
- redis-data:/data
|
||||
|
||||
zammad-scheduler:
|
||||
command: ["zammad-scheduler"]
|
||||
@ -96,7 +102,7 @@ services:
|
||||
image: ${IMAGE_REPO}:${VERSION}
|
||||
restart: ${RESTART}
|
||||
volumes:
|
||||
- zammad-data:/opt/zammad
|
||||
- zammad-var:/opt/zammad/var
|
||||
|
||||
zammad-websocket:
|
||||
command: ["zammad-websocket"]
|
||||
@ -110,14 +116,18 @@ services:
|
||||
image: ${IMAGE_REPO}:${VERSION}
|
||||
restart: ${RESTART}
|
||||
volumes:
|
||||
- zammad-data:/opt/zammad
|
||||
- zammad-var:/opt/zammad/var
|
||||
|
||||
volumes:
|
||||
elasticsearch-data:
|
||||
driver: local
|
||||
postgresql-data:
|
||||
driver: local
|
||||
redis-data:
|
||||
driver: local
|
||||
zammad-backup:
|
||||
driver: local
|
||||
zammad-data:
|
||||
zammad-config-nginx:
|
||||
driver: local
|
||||
zammad-var:
|
||||
driver: local
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
set -e
|
||||
|
||||
: "${ZAMMAD_DIR:=/opt/zammad}"
|
||||
: "${ZAMMAD_DIR:=/opt/zammad/var}"
|
||||
: "${BACKUP_DIR:=/var/tmp/zammad}"
|
||||
: "${ZAMMAD_RAILSSERVER_HOST:=zammad-railsserver}"
|
||||
: "${ZAMMAD_RAILSSERVER_PORT:=3000}"
|
||||
@ -11,7 +11,7 @@ set -e
|
||||
: "${POSTGRESQL_DB:=zammad_production}"
|
||||
|
||||
function check_railsserver_available {
|
||||
until (echo > /dev/tcp/${ZAMMAD_RAILSSERVER_HOST}/${ZAMMAD_RAILSSERVER_PORT}) &> /dev/null; do
|
||||
until (echo > "/dev/tcp/$ZAMMAD_RAILSSERVER_HOST/$ZAMMAD_RAILSSERVER_PORT") &> /dev/null; do
|
||||
echo "waiting for railsserver to be ready..."
|
||||
sleep 60
|
||||
done
|
||||
@ -43,10 +43,15 @@ if [ "$1" = 'zammad-backup' ]; then
|
||||
check_railsserver_available
|
||||
|
||||
while true; do
|
||||
NOW_TIMESTAMP=$(date +%s)
|
||||
TOMORROW_DATE=$(date -d@"$((NOW_TIMESTAMP + 24*60*60))" +%Y-%m-%d)
|
||||
|
||||
zammad_backup
|
||||
|
||||
# wait until next backup
|
||||
sleep "${BACKUP_SLEEP}"
|
||||
NEXT_TIMESTAMP=$(date -d "$TOMORROW_DATE $BACKUP_TIME" +%s)
|
||||
NOW_TIMESTAMP=$(date +%s)
|
||||
|
||||
sleep $((NEXT_TIMESTAMP - NOW_TIMESTAMP))
|
||||
done
|
||||
fi
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user