services:
  mysql:
    image: mysql:8.4
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: $DB_PASSWORD
      MYSQL_DATABASE: bugsink
    volumes:
      - my-datavolume:/var/lib/mysql
    healthcheck:
      test: ["CMD-SHELL", "exit | mysql -h localhost -P 3306 -u root -p$$MYSQL_ROOT_PASSWORD" ]  # 'exit |' closes the MySQL input prompt
      interval: 1s
      timeout: 20s
      retries: 30

  web:
    image: bugsink/bugsink
    depends_on:
      mysql:
        condition: service_healthy
    restart: unless-stopped
    ports:
      - "8000"
    environment:
      SECRET_KEY: "${SECRET_KEY}"
      CREATE_SUPERUSER: admin:${ADMIN_PASSWORD}
      PORT: 8000
      DATABASE_URL: mysql://root:${DB_PASSWORD}@mysql:3306/bugsink
      BASE_URL: http://${MAIN_DOMAIN}
      BEHIND_HTTPS_PROXY: "false"  # Change this for setups behind a proxy w/ ssl enabled
    healthcheck:
      test: ["CMD-SHELL", "python -c 'import requests; requests.get(\"http://localhost:8000/\").raise_for_status()'"]
      interval: 5s
      timeout: 20s
      retries: 10

volumes:
  my-datavolume:
