services:
  postgres:
    image: postgres:17-alpine
    container_name: boring_services_postgres
    ports:
      - 5432:5432
    environment:
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_DB=postgres

  cache:
    container_name: boring_services_redis
    image: redis:7.4.1-alpine
    ports:
      - '6379:6379'
    command: redis-server --save 20 1 --loglevel warning --requirepass development
    
  loki:
    image: grafana/loki:latest
    container_name: boring_services_loki
    ports:
      - "9100:3100"
    command: -config.file=/etc/loki/local-config.yaml

  grafana:
    image: grafana/grafana:latest
    container_name: boring_services_grafana
    environment:
      - GF_PATHS_PROVISIONING=/etc/grafana/provisioning
      - GF_AUTH_ANONYMOUS_ENABLED=true
      - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
    volumes:
      - ./grafana/dashboard.yaml:/etc/grafana/provisioning/dashboards/main.yaml
      - ./grafana/dashboards:/var/lib/grafana/dashboards
      - ./grafana/datasources:/etc/grafana/provisioning/datasources
    # entrypoint:
    #   - sh
    #   - -euc
    #   - |
    #     mkdir -p /etc/grafana/provisioning/datasources
    #     cat <<EOF > /etc/grafana/provisioning/datasources/ds.yaml
    #     apiVersion: 1
    #     datasources:
    #     - name: Loki
    #       type: loki
    #       access: proxy 
    #       orgId: 1
    #       url: http://loki:3100
    #       basicAuth: false
    #       isDefault: true
    #       version: 1
    #       editable: false
    #     EOF
    #     /run.sh
    ports:
      - "9000:3000"