docker-infrastruktur/mapserver/docker-compose.yaml

121 lines
3.7 KiB
YAML

---
version: '3.5'
networks:
services:
external:
name: services
services:
fastd:
build: ./fastd
env_file: .env
privileged: true # required to create the tap device
sysctls:
net.ipv6.conf.all.disable_ipv6: 0 # enable ipv6 withn container
net.ipv6.conf.all.forwarding: 1
stop_grace_period: 0s
restart: unless-stopped
networks:
- services
victoriametrics:
image: victoriametrics/victoria-metrics:v1.69.0
command: |
-retentionPeriod=24
-selfScrapeInterval=30s
volumes:
- ./data/victoriametrics:/victoria-metrics-data
networks:
- services
restart: unless-stopped
yanic:
build: ./yanic
network_mode: "service:fastd"
stop_grace_period: 10s
volumes:
- ./data/yanic:/data
depends_on:
- fastd
- victoriametrics
restart: unless-stopped
meshviewer-collector:
build: ./meshviewer-collector
network_mode: "service:fastd"
stop_grace_period: 10s
volumes:
- ./data/meshviewer-collector:/data
depends_on:
- fastd
restart: unless-stopped
meshviewer:
build: ./meshviewer
volumes:
- ./data/yanic/meshviewer:/usr/share/nginx/html/data
labels:
traefik.enable: "true"
traefik.http.routers.meshviewer.rule: Host(`${MAPSERVER_DOMAIN:?MAPSERVER_DOMAIN is required}`)
traefik.http.routers.meshviewer.tls.certresolver: default
networks:
- services
restart: unless-stopped
grafana:
image: grafana/grafana:8.2.3
volumes:
- ./data/grafana:/var/lib/grafana
# https://blog.56k.cloud/provisioning-grafana-datasources-and-dashboards-automagically/
- ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources
- ./grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards
env_file: .env
environment:
GF_LOG_MODE: console
GF_AUTH_ANONYMOUS_ENABLED: "true"
GF_SERVER_ROOT_URL: "%(protocol)s://%(domain)s:%(http_port)s/grafana/"
GF_SERVER_SERVE_FROM_SUB_PATH: "true"
user: root
entrypoint:
- /bin/sh
- -c
- |
chown grafana /var/lib/grafana
exec su grafana -s /bin/sh -c /run.sh
labels:
traefik.enable: "true"
traefik.http.routers.grafana.rule: Host(`${MAPSERVER_DOMAIN:?MAPSERVER_DOMAIN is required}`) && PathPrefix(`/grafana`)
traefik.http.routers.grafana.tls.certresolver: default
networks:
- services
restart: unless-stopped
renderer-proxy:
image: nginx:1.21-alpine
volumes:
- ./renderer/nginx.conf:/etc/nginx/conf.d/default.conf:ro
labels:
traefik.enable: "true"
traefik.http.routers.renderer.rule: Host(`${MAPSERVER_DOMAIN:?MAPSERVER_DOMAIN is required}`) && PathPrefix(`/render`)
traefik.http.routers.renderer.tls.certresolver: default
networks:
- services
restart: unless-stopped
renderer:
image: lomik/prometheus-png:v0.5.0
network_mode: "service:renderer-proxy"
command:
- -config
- /etc/config.toml
- -prometheus
- http://victoriametrics:8428
depends_on:
- renderer-proxy
restart: unless-stopped
volumes:
- ./renderer/config.toml:/etc/config.toml:ro
# 650x350