| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 | version: '2'
services:
    postgres:
        image: postgres:13-alpine
        restart: ${ALL_RESTART_POLICY}
        networks:
            main.internal.docker:
                aliases:
                    - postgres.main.internal.docker
        volumes:
            - ./data/postgres/data:/var/lib/postgresql/data
            - ./prod-2021-02-22:/data
        environment:
            TZ: ${ALL_TZ}
            POSTGRES_USER: ${POSTGRES_USER}
            POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
            POSTGRES_DB: ${POSTGRES_DB}
        ports:
            - "127.0.0.1:34080:5432"
    postgres-backup:
        image: prodrigestivill/postgres-backup-local:13-alpine
        restart: ${ALL_RESTART_POLICY}
        networks:
            main.internal.docker:
                aliases:
                    - postgres-backup.main.internal.docker
        volumes:
            - ./data/postgres-backup/data:/backups
        environment:
            TZ: ${ALL_TZ}
            POSTGRES_USER: ${POSTGRES_USER}
            POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
            POSTGRES_DB: ${POSTGRES_DB}
            POSTGRES_HOST: ${POSTGRES_HOST}
            SCHEDULE: 0 17 2 * * * # every day at 02:17:00 AM
            BACKUP_KEEP_DAYS: 7
            BACKUP_KEEP_WEEKS: 4
            BACKUP_KEEP_MONTHS: 12
    zabbix:
        image: zabbix/zabbix-server-pgsql:alpine-${ZABBIX_VERSION}
        restart: ${ALL_RESTART_POLICY}
        networks:
            main.internal.docker:
                aliases:
                    - zabbix.main.internal.docker
        ports:
            - "0.0.0.0:10051:10051"
        volumes:
            - ./data/zabbix/alertscripts:/usr/lib/zabbix/alertscripts
            - ./data/zabbix/externalscripts:/usr/lib/zabbix/externalscripts
            - ./data/zabbix/enc:/var/lib/zabbix/enc
            - ./data/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys
            - ./data/zabbix/ssl/certs:/var/lib/zabbix/ssl/certs
            - ./data/zabbix/ssl/keys:/var/lib/zabbix/ssl/keys
            - ./data/zabbix/ssl/ssl_ca:/var/lib/zabbix/ssl/ssl_ca
            - ./data/zabbix-snmptraps/snmptraps:/var/lib/zabbix/snmptraps
            - ./data/zabbix/mibs:/var/lib/zabbix/mibs
        environment:
            TZ: ${ALL_TZ}
            DB_SERVER_HOST: ${POSTGRES_HOST}
            POSTGRES_USER: ${POSTGRES_USER}
            POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
            POSTGRES_DB: ${POSTGRES_DB}
            ZBX_DEBUGLEVEL: ${ZBX_DEBUGLEVEL}
            ZBX_TLSCAFILE: ${ZABBIX_TLSCAFILE}
            ZBX_TLSCERTFILE: ${ZABBIX_TLSCERTFILE}
            ZBX_TLSKEYFILE: ${ZABBIX_TLSKEYFILE}
            ZBX_ENABLE_SNMP_TRAPS: ${ZABBIX_ENABLE_SNMP_TRAPS}
    snmptraps:
        image: zabbix/zabbix-snmptraps:alpine-${ZABBIX_VERSION}
        restart: ${ALL_RESTART_POLICY}
        networks:
            main.internal.docker:
                aliases:
                    - snmptrap.main.internal.docker
        ports:
            - "0.0.0.0:1162:1162/udp"
        volumes:
            - ./data/zabbix-snmptraps/snmptraps:/var/lib/zabbix/snmptraps
            - ./data/zabbix/mibs:/var/lib/zabbix/mibs
        environment:
            TZ: ${ALL_TZ}
    frontend:
        image: zabbix/zabbix-web-apache-pgsql:alpine-${ZABBIX_VERSION}
        restart: ${ALL_RESTART_POLICY}
        networks:
            main.internal.docker:
                aliases:
                    - frontend.main.internal.docker
        ports:
            - "127.0.0.1:34081:8080"
        volumes:
            - ./data/zabbix-frontend/certs:/etc/zabbix/web/certs
        environment:
            TZ: ${ALL_TZ}
            PHP_TZ: ${ALL_TZ}
            DB_SERVER_HOST: ${POSTGRES_HOST}
            POSTGRES_USER: ${POSTGRES_USER}
            POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
            POSTGRES_DB: ${POSTGRES_DB}
            ZBX_SERVER_NAME: ${ZABBIX_NAME}
            ZBX_SERVER_HOST: ${ZABBIX_HOST}
networks:
    main.internal.docker:
 |