swarmpit/stack.yml

119 lines
3.2 KiB
YAML

services:
swarmpit:
image: swarmpit/swarmpit:latest
environment:
SWARMPIT_DB: http://swarmpit_couchdb:5984
SWARMPIT_INFLUXDB: http://swarmpit_influxdb:8086
SWAMPIT_DOCKER_SOCK: http://socketproxy_socketproxy:2375
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080"]
interval: 30s
timeout: 10s
retries: 3
networks:
- net
- traefik
- socketproxy
deploy:
endpoint_mode: dnsrr
placement:
constraints:
- node.hostname == macmini14
labels:
homepage.group: Infrastructure
homepage.name: Swarmpit
homepage.href: https://swarmpit.nixc.us/
homepage.description:
us.nixc.autodeploy: "true"
traefik.enable: "true"
traefik.http.routers.swarmpit_swarmpit.tls: "true"
traefik.http.services.swarmpit_swarmpit.loadbalancer.server.port: 8080
traefik.http.routers.swarmpit_swarmpit.rule: Host(`swarmpit.nixc.us`)
traefik.http.routers.swarmpit_swarmpit.entrypoints: websecure
traefik.http.routers.swarmpit_swarmpit.tls.certresolver: letsencryptresolver
traefik.http.routers.swarmpit_swarmpit.service: swarmpit_swarmpit@docker
traefik.docker.network: traefik
resources:
limits:
cpus: '0.50'
memory: 1024M
reservations:
cpus: '0.25'
memory: 512M
couchdb:
image: couchdb:2.3.0
volumes:
- /mnt/tank/persist/nixc.us/swarmpit/production/couchdb:/opt/couchdb/data
environment:
COUCHDB_USER: ${COUCHDB_USER:-admin}
COUCHDB_PASSWORD: ${COUCHDB_PASSWORD:-password}
networks:
- net
deploy:
endpoint_mode: dnsrr
resources:
limits:
cpus: '0.30'
memory: 256M
reservations:
cpus: '0.15'
memory: 128M
placement:
constraints:
- node.hostname == macmini14
labels:
- "us.nixc.autodeploy=true"
influxdb:
image: influxdb:1.7
environment:
INFLUXDB_DB: ${INFLUXDB_DB:-swarmpit}
INFLUXDB_ADMIN_USER: ${INFLUXDB_ADMIN_USER:-admin}
INFLUXDB_ADMIN_PASSWORD: ${INFLUXDB_ADMIN_PASSWORD:-password}
INFLUXDB_HTTP_AUTH_ENABLED: "true"
networks:
- net
deploy:
endpoint_mode: dnsrr
resources:
limits:
cpus: '0.60'
memory: 512M
reservations:
cpus: '0.30'
memory: 128M
agent:
image: swarmpit/agent:latest
environment:
DOCKER_API_VERSION: "1.43"
EVENT_ENDPOINT: "http://swarmpit_swarmpit:8080/events"
HEALTH_CHECK_ENDPOINT: "http://swarmpit_swarmpit:8080/version"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- net
deploy:
mode: global
endpoint_mode: dnsrr
labels:
us.nixc.autodeploy: 'true'
swarmpit.agent: 'true'
resources:
limits:
cpus: '0.10'
memory: 64M
reservations:
cpus: '0.05'
memory: 32M
networks:
net:
driver: overlay
traefik:
external: true
socketproxy:
external: true