serene/docs/service.yml

49 lines
1.4 KiB
YAML

version: "3.9"
services:
serene-docs:
image: serenelang/serene-docs
environment:
USER_UID: 1100
USER_GID: 1100
security_opt:
- no-new-privileges:true
networks:
- public_lb
volumes:
- /var/run/docker.sock:/var/run/docker.sock
deploy:
labels:
- "traefik.enable=true"
- "traefik.http.routers.serene-lang.rule=Host(`serene-lang.org`)"
- "traefik.http.routers.serene-lang.entrypoints=websecure"
- "traefik.http.routers.serene-lang.tls=true"
- "traefik.http.routers.serene-lang.tls.certresolver=default"
- "traefik.http.services.serene-lang-web.loadbalancer.server.port=3000"
- "traefik.http.services.serene-lang-web.loadbalancer.server.scheme=http"
- "traefik.http.routers.serene-lang.service=serene-lang-web"
- "traefik.docker.network=public_lb"
- "traefik.http.middlewares.serene-lang-ratelimit.ratelimit.average=50"
- "traefik.http.middlewares.serene-lang-ratelimit.ratelimit.burst=10"
- "traefik.http.routers.serene-lang.middlewares=serene-lang-ratelimit"
mode: replicated
replicas: 1
restart_policy:
condition: on-failure
max_attempts: 3
update_config:
parallelism: 1
delay: 5s
order: stop-first
logging:
options:
max-size: "10m"
max-file: "3"
networks:
public_lb:
external: true
name: public_lb