EOX GitLab Instance

Skip to content
Snippets Groups Projects
docker-compose.vhr18.ops.yml 11.2 KiB
Newer Older
version: "3.6"
services:
  database:
    volumes:
      - type: tmpfs
        target: /dev/shm
        tmpfs:
          size: 536870912
  renderer:
    environment:
Mussab Abdalla's avatar
Mussab Abdalla committed
      INSTALL_DIR: "/var/www/pvs/ops/"
      INSTANCE_DIR: "/var/www/pvs/ops/pvs_instance/"
      replicas: 3
      labels:
        # router for basic auth based access (https)
        - "traefik.http.routers.vhr18-renderer.rule=Host(`vhr18.pdas.prism.eox.at`, `a.vhr18.pdas.prism.eox.at`, `b.vhr18.pdas.prism.eox.at`, `c.vhr18.pdas.prism.eox.at`, `d.vhr18.pdas.prism.eox.at`, `e.vhr18.pdas.prism.eox.at`, `f.vhr18.pdas.prism.eox.at`, `g.vhr18.pdas.prism.eox.at`, `h.vhr18.pdas.prism.eox.at`, `vhr18.pass.copernicus.eu`, `a.vhr18.pass.copernicus.eu`, `b.vhr18.pass.copernicus.eu`, `c.vhr18.pass.copernicus.eu`, `d.vhr18.pass.copernicus.eu`, `e.vhr18.pass.copernicus.eu`, `f.vhr18.pass.copernicus.eu`, `g.vhr18.pass.copernicus.eu`, `h.vhr18.pass.copernicus.eu`) && PathPrefix(`/ows`, `/opensearch`, `/admin`)"
        - "traefik.http.routers.vhr18-renderer.middlewares=auth@file,compress@file,cors@file"
        - "traefik.http.routers.vhr18-renderer.tls=true"
        - "traefik.http.routers.vhr18-renderer.tls.certresolver=default"
        - "traefik.http.routers.vhr18-renderer.entrypoints=https"
        # router for basic auth based access (http)
        - "traefik.http.routers.vhr18-renderer-redirect.rule=Host(`vhr18.pdas.prism.eox.at`, `a.vhr18.pdas.prism.eox.at`, `b.vhr18.pdas.prism.eox.at`, `c.vhr18.pdas.prism.eox.at`, `d.vhr18.pdas.prism.eox.at`, `e.vhr18.pdas.prism.eox.at`, `f.vhr18.pdas.prism.eox.at`, `g.vhr18.pdas.prism.eox.at`, `h.vhr18.pdas.prism.eox.at`, `vhr18.pass.copernicus.eu`, `a.vhr18.pass.copernicus.eu`, `b.vhr18.pass.copernicus.eu`, `c.vhr18.pass.copernicus.eu`, `d.vhr18.pass.copernicus.eu`, `e.vhr18.pass.copernicus.eu`, `f.vhr18.pass.copernicus.eu`, `g.vhr18.pass.copernicus.eu`, `h.vhr18.pass.copernicus.eu`) && PathPrefix(`/ows`, `/opensearch`, `/admin`)"
        - "traefik.http.routers.vhr18-renderer-redirect.middlewares=redirect@file"
        - "traefik.http.routers.vhr18-renderer-redirect.entrypoints=http"
        # router for referrer based access (https)
        - "traefik.http.routers.vhr18-renderer_referer.rule=Host(`vhr18.pdas.prism.eox.at`, `a.vhr18.pdas.prism.eox.at`, `b.vhr18.pdas.prism.eox.at`, `c.vhr18.pdas.prism.eox.at`, `d.vhr18.pdas.prism.eox.at`, `e.vhr18.pdas.prism.eox.at`, `f.vhr18.pdas.prism.eox.at`, `g.vhr18.pdas.prism.eox.at`, `h.vhr18.pdas.prism.eox.at`, `vhr18.pass.copernicus.eu`, `a.vhr18.pass.copernicus.eu`, `b.vhr18.pass.copernicus.eu`, `c.vhr18.pass.copernicus.eu`, `d.vhr18.pass.copernicus.eu`, `e.vhr18.pass.copernicus.eu`, `f.vhr18.pass.copernicus.eu`, `g.vhr18.pass.copernicus.eu`, `h.vhr18.pass.copernicus.eu`) && PathPrefix(`/ows`, `/opensearch`, `/admin`) && HeadersRegexp(`Referer`, `(https?://)?(panda.copernicus.eu|panda.cdsv3.eu|panda-demo.ondaprism.eu|panda-demo.copernicus.eu|cdsportal-demo.copernicus.eu|ocqc-demo.copernicus.eu|vhr18.pdas.prism.eox.at|vhr18.pass.copernicus.eu)/?`)"
        - "traefik.http.routers.vhr18-renderer_referer.middlewares=compress@file,cors@file"
        - "traefik.http.routers.vhr18-renderer_referer.tls=true"
        - "traefik.http.routers.vhr18-renderer_referer.tls.certresolver=default"
        - "traefik.http.routers.vhr18-renderer_referer.entrypoints=https"
        # router for referrer based access (http)
        - "traefik.http.routers.vhr18-renderer_referer-redirect.rule=Host(vhr18.pdas.prism.eox.at`, `a.vhr18.pdas.prism.eox.at`, `b.vhr18.pdas.prism.eox.at`, `c.vhr18.pdas.prism.eox.at`, `d.vhr18.pdas.prism.eox.at`, `e.vhr18.pdas.prism.eox.at`, `f.vhr18.pdas.prism.eox.at`, `g.vhr18.pdas.prism.eox.at`, `h.vhr18.pdas.prism.eox.at`, `vhr18.pass.copernicus.eu`, `a.vhr18.pass.copernicus.eu`, `b.vhr18.pass.copernicus.eu`, `c.vhr18.pass.copernicus.eu`, `d.vhr18.pass.copernicus.eu`, `e.vhr18.pass.copernicus.eu`, `f.vhr18.pass.copernicus.eu`, `g.vhr18.pass.copernicus.eu`, `h.vhr18.pass.copernicus.eu`) && PathPrefix(`/ows`, `/opensearch`, `/admin`) && HeadersRegexp(`Referer`, `(https?://)?(panda.copernicus.eu|panda.cdsv3.eu|panda-demo.ondaprism.eu|panda-demo.copernicus.eu|cdsportal-demo.copernicus.eu|ocqc-demo.copernicus.eu|vhr18.pdas.prism.eox.at|vhr18.pass.copernicus.eu)/?`)"
        - "traefik.http.routers.vhr18-renderer_referer-redirect.middlewares=redirect@file"
        - "traefik.http.routers.vhr18-renderer_referer-redirect.entrypoints=http"
        # general
        - "traefik.http.services.vhr18-renderer.loadbalancer.sticky=false"
        - "traefik.http.services.vhr18-renderer.loadbalancer.server.port=80"
Lubomir Dolezal's avatar
Lubomir Dolezal committed
        - "traefik.docker.network=vhr18-extnet"
        - "traefik.docker.lbswarm=true"
        - "traefik.enable=true"
      resources:
        limits:
          memory: 8G
      placement:
        constraints:
          - node.labels.type == external
    networks:
      - extnet
  cache:
    configs:
      - source: mapcache-ops
        target: /mapcache-template.xml
    deploy:
      labels:
        - "traefik.http.middlewares.cache-stripprefix.stripprefix.prefixes=/cache"
        # router for basic auth based access (https)
        - "traefik.http.routers.vhr18-cache.rule=Host(`vhr18.pdas.prism.eox.at`, `a.vhr18.pdas.prism.eox.at`, `b.vhr18.pdas.prism.eox.at`, `c.vhr18.pdas.prism.eox.at`, `d.vhr18.pdas.prism.eox.at`, `e.vhr18.pdas.prism.eox.at`, `f.vhr18.pdas.prism.eox.at`, `g.vhr18.pdas.prism.eox.at`, `h.vhr18.pdas.prism.eox.at`, `vhr18.pass.copernicus.eu`, `a.vhr18.pass.copernicus.eu`, `b.vhr18.pass.copernicus.eu`, `c.vhr18.pass.copernicus.eu`, `d.vhr18.pass.copernicus.eu`, `e.vhr18.pass.copernicus.eu`, `f.vhr18.pass.copernicus.eu`, `g.vhr18.pass.copernicus.eu`, `h.vhr18.pass.copernicus.eu`) && PathPrefix(`/cache`)"
        - "traefik.http.routers.vhr18-cache.middlewares=auth@file,cache-stripprefix,compress@file,cors@file"
        - "traefik.http.routers.vhr18-cache.tls=true"
        - "traefik.http.routers.vhr18-cache.tls.certresolver=default"
        - "traefik.http.routers.vhr18-cache.entrypoints=https"
        # router for basic auth based access (http)
        - "traefik.http.routers.vhr18-cache-redirect.rule=Host(`vhr18.pdas.prism.eox.at`, `a.vhr18.pdas.prism.eox.at`, `b.vhr18.pdas.prism.eox.at`, `c.vhr18.pdas.prism.eox.at`, `d.vhr18.pdas.prism.eox.at`, `e.vhr18.pdas.prism.eox.at`, `f.vhr18.pdas.prism.eox.at`, `g.vhr18.pdas.prism.eox.at`, `h.vhr18.pdas.prism.eox.at`, `vhr18.pass.copernicus.eu`, `a.vhr18.pass.copernicus.eu`, `b.vhr18.pass.copernicus.eu`, `c.vhr18.pass.copernicus.eu`, `d.vhr18.pass.copernicus.eu`, `e.vhr18.pass.copernicus.eu`, `f.vhr18.pass.copernicus.eu`, `g.vhr18.pass.copernicus.eu`, `h.vhr18.pass.copernicus.eu`) && PathPrefix(`/cache`)"
        - "traefik.http.routers.vhr18-cache-redirect.middlewares=redirect@file"
        - "traefik.http.routers.vhr18-cache-redirect.entrypoints=http"
        # router for referrer based access (https)
        - "traefik.http.routers.vhr18-cache_referer.rule=Host(`vhr18.pdas.prism.eox.at`, `a.vhr18.pdas.prism.eox.at`, `b.vhr18.pdas.prism.eox.at`, `c.vhr18.pdas.prism.eox.at`, `d.vhr18.pdas.prism.eox.at`, `e.vhr18.pdas.prism.eox.at`, `f.vhr18.pdas.prism.eox.at`, `g.vhr18.pdas.prism.eox.at`, `h.vhr18.pdas.prism.eox.at`, `vhr18.pass.copernicus.eu`, `a.vhr18.pass.copernicus.eu`, `b.vhr18.pass.copernicus.eu`, `c.vhr18.pass.copernicus.eu`, `d.vhr18.pass.copernicus.eu`, `e.vhr18.pass.copernicus.eu`, `f.vhr18.pass.copernicus.eu`, `g.vhr18.pass.copernicus.eu`, `h.vhr18.pass.copernicus.eu`) && PathPrefix(`/cache`) && HeadersRegexp(`Referer`, `(https?://)?(panda.copernicus.eu|panda.cdsv3.eu|panda-demo.ondaprism.eu|panda-demo.copernicus.eu|cdsportal-demo.copernicus.eu|ocqc-demo.copernicus.eu|vhr18.pdas.prism.eox.at|vhr18.pass.copernicus.eu)/?`)"
        - "traefik.http.routers.vhr18-cache_referer.middlewares=cache-stripprefix,compress@file,cors@file"
        - "traefik.http.routers.vhr18-cache_referer.tls=true"
        - "traefik.http.routers.vhr18-cache_referer.tls.certresolver=default"
        - "traefik.http.routers.vhr18-cache_referer.entrypoints=https"
        # router for referrer based access (http)
        - "traefik.http.routers.vhr18-cache_referer-redirect.rule=Host(`vhr18.pdas.prism.eox.at`, `a.vhr18.pdas.prism.eox.at`, `b.vhr18.pdas.prism.eox.at`, `c.vhr18.pdas.prism.eox.at`, `d.vhr18.pdas.prism.eox.at`, `e.vhr18.pdas.prism.eox.at`, `f.vhr18.pdas.prism.eox.at`, `g.vhr18.pdas.prism.eox.at`, `h.vhr18.pdas.prism.eox.at`, `vhr18.pass.copernicus.eu`, `a.vhr18.pass.copernicus.eu`, `b.vhr18.pass.copernicus.eu`, `c.vhr18.pass.copernicus.eu`, `d.vhr18.pass.copernicus.eu`, `e.vhr18.pass.copernicus.eu`, `f.vhr18.pass.copernicus.eu`, `g.vhr18.pass.copernicus.eu`, `h.vhr18.pass.copernicus.eu`) && PathPrefix(`/cache`) && HeadersRegexp(`Referer`, `(https?://)?(panda.copernicus.eu|panda.cdsv3.eu|panda-demo.ondaprism.eu|panda-demo.copernicus.eu|cdsportal-demo.copernicus.eu|ocqc-demo.copernicus.eu|vhr18.pdas.prism.eox.at|vhr18.pass.copernicus.eu)/?`)"
        - "traefik.http.routers.vhr18-cache_referer-redirect.middlewares=redirect@file"
        - "traefik.http.routers.vhr18-cache_referer-redirect.entrypoints=http"
        # general
        - "traefik.http.services.vhr18-cache.loadbalancer.sticky=false"
        - "traefik.http.services.vhr18-cache.loadbalancer.server.port=80"
Lubomir Dolezal's avatar
Lubomir Dolezal committed
        - "traefik.docker.network=vhr18-extnet"
        - "traefik.docker.lbswarm=true"
        - "traefik.enable=true"
      resources:
        limits:
          memory: 8G
      replicas: 3
      placement:
        constraints:
          - node.labels.type == external
    networks:
      - extnet
  registrar:
    environment:
Mussab Abdalla's avatar
Mussab Abdalla committed
      INSTALL_DIR: "/var/www/pvs/ops/"
      INSTANCE_DIR: "/var/www/pvs/ops/pvs_instance/"
      placement:
        constraints:
          - node.labels.type == internal      
  client:
    configs:
      - source: client-ops
        target: /usr/share/nginx/html/index.html
    deploy:
      placement:
        constraints:
          - node.labels.type == external
    deploy:
      labels:
        # router for basic auth based access (https)
        - "traefik.http.routers.vhr18-client.rule=Host(`vhr18.pdas.prism.eox.at`, `vhr18.pass.copernicus.eu`)"
        - "traefik.http.routers.vhr18-client.middlewares=auth@file,compress@file"
        - "traefik.http.routers.vhr18-client.tls=true"
        - "traefik.http.routers.vhr18-client.tls.certresolver=default"
        - "traefik.http.routers.vhr18-client.entrypoints=https"
        # router for basic auth based access (http)
        - "traefik.http.routers.vhr18-client-redirect.rule=Host(`vhr18.pdas.prism.eox.at`, `vhr18.pass.copernicus.eu`)"
        - "traefik.http.routers.vhr18-client-redirect.middlewares=redirect@file"
        - "traefik.http.routers.vhr18-client-redirect.entrypoints=http"
        # general
        - "traefik.http.services.vhr18-client.loadbalancer.sticky=false"
        - "traefik.http.services.vhr18-client.loadbalancer.server.port=80"
Lubomir Dolezal's avatar
Lubomir Dolezal committed
        - "traefik.docker.network=vhr18-extnet"
        - "traefik.docker.lbswarm=true"
        - "traefik.enable=true"
    networks:
      - extnet
  preprocessor:
    volumes:
      - type: bind
        source: /var/vhr
        target: /tmp
      placement:
        constraints:
          - node.labels.type == internal
networks:
  extnet:
    name: vhr18-extnet
    external: true