version: "3.7"

services:

  app_proxy:
    environment:
      APP_HOST: zabbix_zabbix-frontend_1
      APP_PORT: 8080

  zabbix-frontend:
    image: zabbix/zabbix-web-nginx-pgsql:7.0.3-alpine@sha256:f541682b9cb5a7543153235c889de2f090b30b91ed93d0596409d624b29592a6
    hostname: zabbix-frontend
    restart: on-failure
    environment:
      DB_SERVER_HOST: zabbix-database
      POSTGRES_USER: zabbix
      POSTGRES_PASSWORD: zabbix
      ZBX_SERVER_HOST: zabbix-server
      PHP_TZ: UTC
    depends_on:
      - zabbix-server
      - zabbix-database

  zabbix-server:
    image: zabbix/zabbix-server-pgsql:7.0.3-alpine@sha256:d6235c964a025d7734c5dad3a5c94e0c016ac3fde7ac4e6ae2101cb7d336b812
    hostname: zabbix-server
    restart: on-failure
    init: true
    environment:
      DB_SERVER_HOST: zabbix-database
      POSTGRES_USER: zabbix
      POSTGRES_PASSWORD: zabbix
    ports:
      - "10050:10050"
    depends_on:
      - zabbix-database

  zabbix-agent:
    image: zabbix/zabbix-agent2:7.0.3-alpine@sha256:8dddb7d0980c2197ea0e7c1ed76dbca4930a0f87a094a05be2b0f63bc1ac519f
    hostname: zabbix-agent
    restart: on-failure
    init: true
    environment:
      ZBX_HOSTNAME: zabbix-agent
      ZBX_SERVER_HOST: zabbix-server

  zabbix-database:
    image: postgres:13.16-alpine3.20@sha256:e04acf5744305c9c6a19cedaa23d70a3a74b94cf62084e284793be756087aaa2
    hostname: zabbix-database
    restart: on-failure
    environment:
      POSTGRES_PASSWORD: zabbix
      POSTGRES_USER: zabbix
      POSTGRES_DB: zabbix
    volumes:
      - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data