version: '3' services: web: image: registry.chaotikum.net/icebox/icebox-web restart: always depends_on: - backend expose: - 8080 - 8081 labels: - "traefik.enable=true" - 'traefik.http.routers.web.entrypoints=web' - "traefik.http.routers.web.rule=Host(`icebox.nobreakspace.org`) || Host(`icebox`) || Host(`web.icebox.nobreakspace.org`)" environment: ICEBOX_API_HOST: backend ICEBOX_API_PORT: 8081 ICEBOX_WEB_PORT: 8080 IMAGE_SERVICE: "images.icebox.nobreakspace.org" web-vue: image: registry.chaotikum.net/icebox/icebox-vuetified restart: always depends_on: - backend expose: - 80 labels: - "traefik.enable=true" - 'traefik.http.routers.vue.entrypoints=web' - 'traefik.http.routers.vue.rule=Host(`vue.icebox.nobreakspace.org`)' image-service: image: registry.chaotikum.net/icebox/icebox-image-service restart: always depends_on: - backend expose: - 80 labels: - "traefik.enable=true" - 'traefik.http.routers.images.entrypoints=web' - 'traefik.http.routers.images.rule=Host(`images.icebox.nobreakspace.org`)' alias: image: registry.chaotikum.net/icebox/iceboxalias restart: always environment: - ICEBOX_DB_URL=postgresql://icebox:clubmate42@database/icebox depends_on: - database backend: image: registry.chaotikum.net/icebox/icebox-service restart: always depends_on: - database expose: - 8081 labels: - "traefik.enable=true" - 'traefik.http.routers.api.entrypoints=web' - 'traefik.http.routers.api.rule=Host(`api.icebox.nobreakspace.org`)' environment: ICEBOX_DB_HOST: database ICEBOX_DB_PORT: 5432 ICEBOX_DB_USER: icebox ICEBOX_DB_PSW: clubmate42 ICEBOX_DB_NAME: icebox # pgadmin: # build: pgadmin4 # restart: always # environment: # PGADMIN_DEFAULT_PASSWORD: clubmate42 # PGADMIN_DEFAULT_EMAIL: icebox@nobreakspace.org database: image: postgres:12 restart: always environment: POSTGRES_PASSWORD: clubmate42 POSTGRES_USER: icebox POSTGRES_DB: icebox volumes: - icebox-data:/var/lib/postgresql/data icebox-exporter: image: registry.chaotikum.net/icebox/prometheus-icebox-exporter restart: always expose: - 8000 environment: ICEBOX_URL: http://backend:8081 labels: - "traefik.enable=true" - 'traefik.http.routers.exporter.entrypoints=web' - 'traefik.http.routers.exporter.rule=Host(`api.icebox.nobreakspace.org`) && PathPrefix(`/metrics`)' traefik: image: traefik:v2.5 command: - "--api.insecure=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro depends_on: - web - web-vue - alias - backend networks: default: public: ipv4_address: 172.23.208.37 ipv6_address: 2a01:170:1112::0.0.0.37 volumes: icebox-data: external: true networks: public: external: name: space_net