services: postgres: image: "postgres:16" shm_size: "1g" command: > postgres -c "shared_buffers=4GB" -c "max_connections=200" -c "log_statement=all" ports: - "5432:5432" volumes: - "./compose/postgres:/docker-entrypoint-initdb.d:ro" - "postgres-data:/var/lib/postgresql/data:rw" environment: POSTGRES_USER: "postgres" POSTGRES_PASSWORD: "postgres" grafana: image: "grafana/grafana:latest" ports: - "3001:3000" volumes: - "./compose/grafana/provisioning:/etc/grafana/provisioning:ro" - "grafana-data:/var/lib/grafana:rw" environment: GF_AUTH_ANONYMOUS_ENABLED: "true" GF_AUTH_ANONYMOUS_ORG_ROLE: "Admin" GF_AUTH_DISABLE_LOGIN_FORM: "true" GF_USERS_DEFAULT_THEME: "light" prometheus: image: "prom/prometheus:latest" volumes: - "./compose/prometheus/prometheus.yaml:/etc/prometheus/prometheus.yml" - "prometheus-data:/prometheus" command: - "--config.file=/etc/prometheus/prometheus.yml" - "--storage.tsdb.path=/prometheus" - "--web.console.libraries=/etc/prometheus/console_libraries" - "--web.console.templates=/etc/prometheus/consoles" - "--web.enable-lifecycle" - "--web.enable-remote-write-receiver" - "--web.listen-address=:9191" ports: - "9191:9191" loki: image: "grafana/loki:latest" ports: - "3100:3100" command: - "-config.file=/etc/loki/local-config.yaml" tempo: image: "grafana/tempo:latest" command: - "-config.file=/etc/tempo.yaml" ports: - "4317:4317" volumes: - "./compose/tempo/tempo.yaml:/etc/tempo.yaml:ro" - "tempo-data:/var/db/tempo:rw" volumes: postgres-data: grafana-data: prometheus-data: tempo-data: