# https://docs.monitor.dev/
# https://demo.monitor.dev/
# Build and deployment system

name: monitor

services:
  monitor-core:
    container_name: monitor
    image: ghcr.io/mbecker20/monitor:latest ## use ghcr.io/mbecker20/monitor:latest-aarch64 for arm support
    restart: unless-stopped
    depends_on:
      - monitor-mongo
    logging:
      driver: local # enable log rotation by default. see `https://docs.docker.com/config/containers/logging/local/`
    ports:
      - 9120:9120
    extra_hosts:
      # allows for local periphery connection at "http://host.docker.internal:8120"
      - host.docker.internal:host-gateway
    environment:
      # https://github.com/mbecker20/monitor/blob/main/config_example/core.config.example.toml
      MONITOR_HOST: http://localhost:9120
      MONITOR_TITLE: Monitor # Change the app title, displayed in the browser tab.
      ## MONGO
      MONITOR_MONGO_ADDRESS: monitor-mongo:27017
      MONITOR_MONGO_USERNAME: admin # match ones below
      MONITOR_MONGO_PASSWORD: admin
      ## KEYS
      MONITOR_PASSKEY: a_random_passkey # used to auth against periphery
      MONITOR_WEBHOOK_SECRET: a_random_secret # used to authenticate incoming webhooks
      MONITOR_JWT_SECRET: a_random_jwt_secret # Optional. If empty, will have to log in again on restart.
      ## AUTH
      MONITOR_LOCAL_AUTH: true # the default is false.
      # MONITOR_GITHUB_OAUTH_ENABLED: true # also support google oauth
      # MONITOR_GITHUB_OAUTH_ID: your_oauth_id
      # MONITOR_GITHUB_OAUTH_SECRET: your_oauth_secret
      ## AWS
      # MONITOR_AWS_ACCESS_KEY_ID: your_aws_key_id
      # MONITOR_AWS_SECRET_ACCESS_KEY: your_secret_access_key
      ## HETZNER
      # MONITOR_HETZNER_TOKEN: your_hetzner_token
    networks:
      - proxy

  monitor-mongo:
    container_name: monitor_db
    image: mongo
    command: --quiet # suppress mongo logs a bit
    restart: unless-stopped
    logging:
      driver: local
    ports:
      - 27017:27017
    volumes:
      - ./db-data:/data/db
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin # change these
      MONGO_INITDB_ROOT_PASSWORD: admin
    networks:
      - proxy

networks:
  proxy:
    external: true
