---
version: '3.4'
services:
  netbox: &netbox
    image: netboxcommunity/netbox:${VARIANT-latest}
    depends_on:
      - postgres
      - redis
      #- redis-cache
      #- netbox-worker
    env_file: env/netbox.env
    user: 'unit:root'
    healthcheck:
      start_period: 60s
      timeout: 3s
      interval: 15s
      test: "curl -f http://localhost:8080/api/ || exit 1"
    volumes:
      - ./configuration:/etc/netbox/config:z,ro
      #- ./reports:/etc/netbox/reports:z,ro
      #- ./scripts:/etc/netbox/scripts:z,ro
      #- netbox-media-files:/opt/netbox/netbox/media:z
  #netbox-worker:
  #  <<: *netbox
  #  depends_on:
  #    netbox:
  #      condition: service_healthy
  #  command:
  #    - /opt/netbox/venv/bin/python
  #    - /opt/netbox/netbox/manage.py
  #    - rqworker
  #  healthcheck:
  #    start_period: 20s
  #    timeout: 3s
  #    interval: 15s
  #    test: "ps -aux | grep -v grep | grep -q rqworker || exit 1"
  #netbox-housekeeping:
  #  <<: *netbox
  #  depends_on:
  #    netbox:
  #      condition: service_healthy
  #  command:
  #  - /opt/netbox/housekeeping.sh
  #  healthcheck:
  #    start_period: 20s
  #    timeout: 3s
  #    interval: 15s
  #    test: "ps -aux | grep -v grep | grep -q housekeeping || exit 1"

  # postgres
  postgres:
    image: postgres:15-alpine
    env_file: env/postgres.env
    volumes:
      - netbox-postgres-data:/var/lib/postgresql/data

  # redis
  redis:
    image: redis:7-alpine
    command:
      - sh
      - -c # this is to evaluate the $REDIS_PASSWORD from the env
      - redis-server --appendonly yes --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose
    env_file: env/redis.env
    #volumes:
    #  - netbox-redis-data:/data
  #redis-cache:
  #  image: redis:7-alpine
  #  command:
  #    - sh
  #    - -c # this is to evaluate the $REDIS_PASSWORD from the env
  #    - redis-server --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose
  #  env_file: env/redis-cache.env
  #  volumes:
  #    - netbox-redis-cache-data:/data

volumes:
  #netbox-media-files:
  #  driver: local
  netbox-postgres-data:
    driver: local
  #netbox-redis-data:
  #  driver: local
  #netbox-redis-cache-data:
  #  driver: local
