mirror of
https://github.com/demostf/setup.git
synced 2026-10-08 18:07:16 +02:00
128 lines
2.8 KiB
YAML
128 lines
2.8 KiB
YAML
version: '2'
|
|
|
|
services:
|
|
frontend:
|
|
restart: always
|
|
image: demostf/frontend
|
|
container_name: frontend
|
|
environment:
|
|
- "SITE_URL=https://${HOST}/"
|
|
- "SITE_API=https://api.${HOST}/"
|
|
- "SITE_MAPS=https://maps.${HOST}/"
|
|
- "DATABASE_HOSTNAME=db"
|
|
- "DATABASE_USERNAME=postgres"
|
|
- "DATABASE_PASSWORD=${DB_PASSWORD}"
|
|
- "TRACING_ENDPOINT=${TRACING_ENDPOINT}"
|
|
- "TRACING_TLS_CERT_FILE=${TRACING_TLS_CERT_FILE}"
|
|
- "TRACING_TLS_KEY_FILE=${TRACING_TLS_KEY_FILE}"
|
|
networks:
|
|
- proxy-tier
|
|
- db-tier
|
|
depends_on:
|
|
- db
|
|
volumes:
|
|
- "./keys:/keys:ro"
|
|
|
|
api:
|
|
restart: always
|
|
image: demostf/api
|
|
container_name: api
|
|
environment:
|
|
- BASE_HOST=${HOST}
|
|
- DEMO_ROOT=/demos
|
|
- DEMO_HOST=static.$HOST
|
|
- DB_TYPE=pgsql
|
|
- DB_HOST=db
|
|
- DB_PORT=5432
|
|
- DB_DATABASE=postgres
|
|
- DB_USERNAME=postgres
|
|
- DB_PASSWORD=${DB_PASSWORD}
|
|
- APP_ROOT=https://api.$HOST
|
|
- EDIT_SECRET=${EDIT_SECRET}
|
|
- UPLOAD_KEY=${UPLOAD_KEY}
|
|
volumes:
|
|
- "${DEMO_ROOT}:/demos"
|
|
networks:
|
|
- proxy-tier
|
|
- db-tier
|
|
|
|
sync:
|
|
restart: always
|
|
image: demostf/sync
|
|
container_name: sync
|
|
mem_limit: 128m
|
|
networks:
|
|
- proxy-tier
|
|
|
|
maps:
|
|
restart: always
|
|
image: demostf/maps
|
|
container_name: maps
|
|
networks:
|
|
- proxy-tier
|
|
|
|
db:
|
|
restart: always
|
|
image: demostf/db
|
|
container_name: db
|
|
environment:
|
|
- POSTGRES_PASSWORD=${DB_PASSWORD}
|
|
- POSTGRES_INITDB_ARGS="--no-locale"
|
|
volumes:
|
|
- "./db_data:/var/lib/postgresql/data"
|
|
networks:
|
|
- db-tier
|
|
|
|
db-refresh:
|
|
restart: always
|
|
image: demostf/postgres_refresh
|
|
container_name: db-refresh
|
|
environment:
|
|
- POSTGRES_PASSWORD=${DB_PASSWORD}
|
|
- POSTGRES_HOST=db
|
|
- VIEWS=map_list name_list users_named
|
|
networks:
|
|
- db-tier
|
|
|
|
proxy:
|
|
restart: always
|
|
image: demostf/proxy
|
|
container_name: proxy
|
|
environment:
|
|
- HOST=$HOST
|
|
networks:
|
|
- proxy-tier
|
|
volumes:
|
|
- "${DEMO_ROOT}:/demos"
|
|
- logs:/logs
|
|
ports:
|
|
- "8080:80"
|
|
|
|
promtail:
|
|
image: grafana/promtail:latest
|
|
volumes:
|
|
- /etc/machine-id:/etc/machine-id
|
|
- logs:/logs:ro
|
|
- ./promtail.yml:/etc/promtail/promtail.yml
|
|
- ./promtail-positions:/positions
|
|
environment:
|
|
- LOKI_URL=${LOKI_URL}
|
|
- LOKI_USERNAME=${LOKI_USERNAME}
|
|
- LOKI_PASSWORD=${LOKI_PASSWORD}
|
|
command: -config.file=/etc/promtail/promtail.yml -config.expand-env=true
|
|
|
|
metrics:
|
|
image: ghcr.io/martin-helmich/prometheus-nginxlog-exporter/exporter:v1
|
|
networks:
|
|
- proxy-tier
|
|
volumes:
|
|
- logs:/logs:ro
|
|
- ./nginxlog.yaml:/nginxlog.yaml
|
|
command: -config-file=/nginxlog.yaml
|
|
|
|
networks:
|
|
proxy-tier:
|
|
db-tier:
|
|
|
|
volumes:
|
|
logs:
|