rd13_tile_server/docker-compose.yml
Conrad Schulz 9df190aca8 feat: add Go marker-api service for MediaWiki Kartographer pin support
- services/marker-api/: Go HTTP service (0 external deps, ~8 MB RAM)
  - Mathematically correct teardrop pin shape (Google Maps style)
  - Tangent-based outline: circle + straight sides meeting at tip
  - White border + white inner dot, in-memory cache (max 500 entries)
- .forgejo/workflows/build-marker-api.yml: CI builds & pushes to
  Forgejo registry on push to main (image: rd13_tile_server-marker-api)
- docker-compose.yml: add marker-api service on port 9984
- Caddyfile (rd13_system_proxy): route /styles/v4/marker/* -> :9984
- docs/ADMIN.md + MAINTAINER.md: marker-api dokumentiert

Fixes: /styles/v4/marker/pin-m+{color}(@{scale}x).png was 404, now 200
2026-07-01 11:59:00 +00:00

58 lines
1.9 KiB
YAML

services:
martin:
image: ghcr.io/maplibre/martin:latest
container_name: rd13_martin
ports:
- "9982:3000"
volumes:
- ./data:/data
- ./config/martin.yaml:/config/martin.yaml:ro
command: ["--config", "/config/martin.yaml", "--webui", "enable-for-all", "--on-invalid", "warn"]
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
tileserver:
image: maptiler/tileserver-gl:latest
container_name: rd13_tileserver
ports:
- "9983:8080"
volumes:
- ./config/tileserver.json:/data/config.json:ro
- ./config/styles:/data/styles:ro
- ./data/fonts:/data/fonts:ro
- ./data/sprites:/data/sprites:ro
- /mnt/static-data/rd13_tile_server_data/osm.mbtiles:/data/osm.mbtiles:ro
- /mnt/static-data/rd13_tile_server_data/osm-europe.mbtiles:/data/osm-europe.mbtiles:ro
- /mnt/static-data/rd13_tile_server_data/satellite.mbtiles:/data/satellite.mbtiles:ro
restart: unless-stopped
healthcheck:
test: ["CMD", "node", "-e", "require('http').get('http://localhost:8080/health', r => process.exit(r.statusCode === 200 ? 0 : 1))"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
depends_on:
- martin
marker-api:
# Image wird von Forgejo CI gebaut und in die Registry gepusht.
# Erstes lokales Build: docker compose build marker-api
image: 192.168.178.6:8083/cschulz/rd13_tile_server-marker-api:latest
container_name: rd13_marker_api
build:
context: ./services/marker-api
dockerfile: Dockerfile
ports:
- "9984:3000"
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:3000/health"]
interval: 30s
timeout: 5s
retries: 3
start_period: 5s