Example of a compose file that launches Ansible-Terraform workspace behind reverse proxy (Traefik) with auth middleware annd HTTPS ``` "services": "traefik": "command": - "--entrypoints.DOCS_URL.address=:8020" - "--entrypoints.FILEBROWSER_URL.address=:8021" - "--entrypoints.STATICFS_URL.address=:8022" - "--entrypoints.CRONICLE_URL.address=:8023" - "--entrypoints.UNGIT_URL.address=:8024" - "--entrypoints.IDE_URL.address=:8025" - "--entrypoints.TERMINAL_URL.address=:8026" - "--entrypoints.MC_URL.address=:8027" - "--entrypoints.HTOP_URL.address=:8028" - "--entrypoints.ANSIBLE_ARA.address=:8029" - "--entrypoints.PORT_8031.address=:8031" - "--entrypoints.PORT_8032.address=:8032" - "--entrypoints.PORT_8033.address=:8033" - "--entrypoints.PORT_8034.address=:8034" - "--entrypoints.PORT_8035.address=:8035" - "--providers.docker" - "--providers.file.directory=/etc/traefik/dynamic_conf" "container_name": "container_name" "image": "traefik:v2.4" "ports": - "8020-8035:8020-8035" "volumes": - "/var/run/docker.sock:/var/run/docker.sock:ro" - "./certs:/tools/certs" - "./config.yml:/etc/traefik/dynamic_conf/conf.yml:ro" "workspace": "environment": "ARA_API_CLIENT": "https" "ARA_API_SERVER": "http://68.183.69.198:8029" "WRK_HOST": "68.183.69.198" "WRK_PROTO": "https" "image": "alnoda/ansible-terraform-workspace" "labels": - "traefik.enable=true" - "traefik.http.middlewares.httprepl.redirectregex.regex=^http://(.*)" - "traefik.http.middlewares.httprepl.redirectregex.replacement=https://$${1}" - "traefik.http.services.DOCS_URLhttp.loadbalancer.server.port=8020" - "traefik.http.routers.DOCS_URLhttp.service=DOCS_URL" - "traefik.http.routers.DOCS_URLhttp.rule=PathPrefix(`/`)" - "traefik.http.routers.DOCS_URLhttp.entrypoints=DOCS_URL" - "traefik.http.routers.DOCS_URLhttp.middlewares=httprepl" - "traefik.http.services.DOCS_URL.loadbalancer.server.port=8020" - "traefik.http.routers.DOCS_URL.service=DOCS_URL" - "traefik.http.routers.DOCS_URL.rule=PathPrefix(`/`)" - "traefik.http.routers.DOCS_URL.entrypoints=DOCS_URL" - "traefik.http.routers.DOCS_URL.middlewares=basic-auth" - "traefik.http.routers.DOCS_URL.tls=true" - "traefik.http.services.FILEBROWSER_URLhttp.loadbalancer.server.port=8021" - "traefik.http.routers.FILEBROWSER_URLhttp.service=FILEBROWSER_URL" - "traefik.http.routers.FILEBROWSER_URLhttp.rule=PathPrefix(`/`)" - "traefik.http.routers.FILEBROWSER_URLhttp.entrypoints=FILEBROWSER_URL" - "traefik.http.routers.FILEBROWSER_URLhttp.middlewares=httprepl" - "traefik.http.services.FILEBROWSER_URL.loadbalancer.server.port=8021" - "traefik.http.routers.FILEBROWSER_URL.service=FILEBROWSER_URL" - "traefik.http.routers.FILEBROWSER_URL.rule=PathPrefix(`/`)" - "traefik.http.routers.FILEBROWSER_URL.entrypoints=FILEBROWSER_URL" - "traefik.http.routers.FILEBROWSER_URL.middlewares=basic-auth" - "traefik.http.routers.FILEBROWSER_URL.tls=true" - "traefik.http.services.STATICFS_URLhttp.loadbalancer.server.port=8022" - "traefik.http.routers.STATICFS_URLhttp.service=STATICFS_URL" - "traefik.http.routers.STATICFS_URLhttp.rule=PathPrefix(`/`)" - "traefik.http.routers.STATICFS_URLhttp.entrypoints=STATICFS_URL" - "traefik.http.routers.STATICFS_URLhttp.middlewares=httprepl" - "traefik.http.services.STATICFS_URL.loadbalancer.server.port=8022" - "traefik.http.routers.STATICFS_URL.service=STATICFS_URL" - "traefik.http.routers.STATICFS_URL.rule=PathPrefix(`/`)" - "traefik.http.routers.STATICFS_URL.entrypoints=STATICFS_URL" - "traefik.http.routers.STATICFS_URL.middlewares=basic-auth" - "traefik.http.routers.STATICFS_URL.tls=true" - "traefik.http.services.CRONICLE_URLhttp.loadbalancer.server.port=8023" - "traefik.http.routers.CRONICLE_URLhttp.service=CRONICLE_URL" - "traefik.http.routers.CRONICLE_URLhttp.rule=PathPrefix(`/`)" - "traefik.http.routers.CRONICLE_URLhttp.entrypoints=CRONICLE_URL" - "traefik.http.routers.CRONICLE_URLhttp.middlewares=httprepl" - "traefik.http.services.CRONICLE_URL.loadbalancer.server.port=8023" - "traefik.http.routers.CRONICLE_URL.service=CRONICLE_URL" - "traefik.http.routers.CRONICLE_URL.rule=PathPrefix(`/`)" - "traefik.http.routers.CRONICLE_URL.entrypoints=CRONICLE_URL" - "traefik.http.routers.CRONICLE_URL.middlewares=basic-auth" - "traefik.http.routers.CRONICLE_URL.tls=true" - "traefik.http.services.UNGIT_URLhttp.loadbalancer.server.port=8024" - "traefik.http.routers.UNGIT_URLhttp.service=UNGIT_URL" - "traefik.http.routers.UNGIT_URLhttp.rule=PathPrefix(`/`)" - "traefik.http.routers.UNGIT_URLhttp.entrypoints=UNGIT_URL" - "traefik.http.routers.UNGIT_URLhttp.middlewares=httprepl" - "traefik.http.services.UNGIT_URL.loadbalancer.server.port=8024" - "traefik.http.routers.UNGIT_URL.service=UNGIT_URL" - "traefik.http.routers.UNGIT_URL.rule=PathPrefix(`/`)" - "traefik.http.routers.UNGIT_URL.entrypoints=UNGIT_URL" - "traefik.http.routers.UNGIT_URL.middlewares=basic-auth" - "traefik.http.routers.UNGIT_URL.tls=true" - "traefik.http.services.IDE_URLhttp.loadbalancer.server.port=8025" - "traefik.http.routers.IDE_URLhttp.service=IDE_URL" - "traefik.http.routers.IDE_URLhttp.rule=PathPrefix(`/`)" - "traefik.http.routers.IDE_URLhttp.entrypoints=IDE_URL" - "traefik.http.routers.IDE_URLhttp.middlewares=httprepl" - "traefik.http.services.IDE_URL.loadbalancer.server.port=8025" - "traefik.http.routers.IDE_URL.service=IDE_URL" - "traefik.http.routers.IDE_URL.rule=PathPrefix(`/`)" - "traefik.http.routers.IDE_URL.entrypoints=IDE_URL" - "traefik.http.routers.IDE_URL.middlewares=basic-auth" - "traefik.http.routers.IDE_URL.tls=true" - "traefik.http.services.TERMINAL_URLhttp.loadbalancer.server.port=8026" - "traefik.http.routers.TERMINAL_URLhttp.service=TERMINAL_URL" - "traefik.http.routers.TERMINAL_URLhttp.rule=PathPrefix(`/`)" - "traefik.http.routers.TERMINAL_URLhttp.entrypoints=TERMINAL_URL" - "traefik.http.routers.TERMINAL_URLhttp.middlewares=httprepl" - "traefik.http.services.TERMINAL_URL.loadbalancer.server.port=8026" - "traefik.http.routers.TERMINAL_URL.service=TERMINAL_URL" - "traefik.http.routers.TERMINAL_URL.rule=PathPrefix(`/`)" - "traefik.http.routers.TERMINAL_URL.entrypoints=TERMINAL_URL" - "traefik.http.routers.TERMINAL_URL.middlewares=basic-auth" - "traefik.http.routers.TERMINAL_URL.tls=true" - "traefik.http.services.MC_URLhttp.loadbalancer.server.port=8027" - "traefik.http.routers.MC_URLhttp.service=MC_URL" - "traefik.http.routers.MC_URLhttp.rule=PathPrefix(`/`)" - "traefik.http.routers.MC_URLhttp.entrypoints=MC_URL" - "traefik.http.routers.MC_URLhttp.middlewares=httprepl" - "traefik.http.services.MC_URL.loadbalancer.server.port=8027" - "traefik.http.routers.MC_URL.service=MC_URL" - "traefik.http.routers.MC_URL.rule=PathPrefix(`/`)" - "traefik.http.routers.MC_URL.entrypoints=MC_URL" - "traefik.http.routers.MC_URL.middlewares=basic-auth" - "traefik.http.routers.MC_URL.tls=true" - "traefik.http.services.HTOP_URLhttp.loadbalancer.server.port=8028" - "traefik.http.routers.HTOP_URLhttp.service=HTOP_URL" - "traefik.http.routers.HTOP_URLhttp.rule=PathPrefix(`/`)" - "traefik.http.routers.HTOP_URLhttp.entrypoints=HTOP_URL" - "traefik.http.routers.HTOP_URLhttp.middlewares=httprepl" - "traefik.http.services.HTOP_URL.loadbalancer.server.port=8028" - "traefik.http.routers.HTOP_URL.service=HTOP_URL" - "traefik.http.routers.HTOP_URL.rule=PathPrefix(`/`)" - "traefik.http.routers.HTOP_URL.entrypoints=HTOP_URL" - "traefik.http.routers.HTOP_URL.middlewares=basic-auth" - "traefik.http.routers.HTOP_URL.tls=true" - "traefik.http.services.ANSIBLE_ARAhttp.loadbalancer.server.port=8029" - "traefik.http.routers.ANSIBLE_ARAhttp.service=ANSIBLE_ARA" - "traefik.http.routers.ANSIBLE_ARAhttp.rule=PathPrefix(`/`)" - "traefik.http.routers.ANSIBLE_ARAhttp.entrypoints=ANSIBLE_ARA" - "traefik.http.routers.ANSIBLE_ARAhttp.middlewares=httprepl" - "traefik.http.services.ANSIBLE_ARA.loadbalancer.server.port=8029" - "traefik.http.routers.ANSIBLE_ARA.service=ANSIBLE_ARA" - "traefik.http.routers.ANSIBLE_ARA.rule=PathPrefix(`/`)" - "traefik.http.routers.ANSIBLE_ARA.entrypoints=ANSIBLE_ARA" - "traefik.http.routers.ANSIBLE_ARA.middlewares=basic-auth" - "traefik.http.routers.ANSIBLE_ARA.tls=true" - "traefik.http.services.PORT_8031http.loadbalancer.server.port=8031" - "traefik.http.routers.PORT_8031http.service=PORT_8031" - "traefik.http.routers.PORT_8031http.rule=PathPrefix(`/`)" - "traefik.http.routers.PORT_8031http.entrypoints=PORT_8031" - "traefik.http.routers.PORT_8031http.middlewares=httprepl" - "traefik.http.services.PORT_8031.loadbalancer.server.port=8031" - "traefik.http.routers.PORT_8031.service=PORT_8031" - "traefik.http.routers.PORT_8031.rule=PathPrefix(`/`)" - "traefik.http.routers.PORT_8031.entrypoints=PORT_8031" - "traefik.http.routers.PORT_8031.middlewares=basic-auth" - "traefik.http.routers.PORT_8031.tls=true" - "traefik.http.services.PORT_8032http.loadbalancer.server.port=8032" - "traefik.http.routers.PORT_8032http.service=PORT_8032" - "traefik.http.routers.PORT_8032http.rule=PathPrefix(`/`)" - "traefik.http.routers.PORT_8032http.entrypoints=PORT_8032" - "traefik.http.routers.PORT_8032http.middlewares=httprepl" - "traefik.http.services.PORT_8032.loadbalancer.server.port=8032" - "traefik.http.routers.PORT_8032.service=PORT_8032" - "traefik.http.routers.PORT_8032.rule=PathPrefix(`/`)" - "traefik.http.routers.PORT_8032.entrypoints=PORT_8032" - "traefik.http.routers.PORT_8032.middlewares=basic-auth" - "traefik.http.routers.PORT_8032.tls=true" - "traefik.http.services.PORT_8033http.loadbalancer.server.port=8033" - "traefik.http.routers.PORT_8033http.service=PORT_8033" - "traefik.http.routers.PORT_8033http.rule=PathPrefix(`/`)" - "traefik.http.routers.PORT_8033http.entrypoints=PORT_8033" - "traefik.http.routers.PORT_8033http.middlewares=httprepl" - "traefik.http.services.PORT_8033.loadbalancer.server.port=8033" - "traefik.http.routers.PORT_8033.service=PORT_8033" - "traefik.http.routers.PORT_8033.rule=PathPrefix(`/`)" - "traefik.http.routers.PORT_8033.entrypoints=PORT_8033" - "traefik.http.routers.PORT_8033.middlewares=basic-auth" - "traefik.http.routers.PORT_8033.tls=true" - "traefik.http.services.PORT_8034http.loadbalancer.server.port=8034" - "traefik.http.routers.PORT_8034http.service=PORT_8034" - "traefik.http.routers.PORT_8034http.rule=PathPrefix(`/`)" - "traefik.http.routers.PORT_8034http.entrypoints=PORT_8034" - "traefik.http.routers.PORT_8034http.middlewares=httprepl" - "traefik.http.services.PORT_8034.loadbalancer.server.port=8034" - "traefik.http.routers.PORT_8034.service=PORT_8034" - "traefik.http.routers.PORT_8034.rule=PathPrefix(`/`)" - "traefik.http.routers.PORT_8034.entrypoints=PORT_8034" - "traefik.http.routers.PORT_8034.middlewares=basic-auth" - "traefik.http.routers.PORT_8034.tls=true" - "traefik.http.services.PORT_8035http.loadbalancer.server.port=8035" - "traefik.http.routers.PORT_8035http.service=PORT_8035" - "traefik.http.routers.PORT_8035http.rule=PathPrefix(`/`)" - "traefik.http.routers.PORT_8035http.entrypoints=PORT_8035" - "traefik.http.routers.PORT_8035http.middlewares=httprepl" - "traefik.http.services.PORT_8035.loadbalancer.server.port=8035" - "traefik.http.routers.PORT_8035.service=PORT_8035" - "traefik.http.routers.PORT_8035.rule=PathPrefix(`/`)" - "traefik.http.routers.PORT_8035.entrypoints=PORT_8035" - "traefik.http.routers.PORT_8035.middlewares=basic-auth" - "traefik.http.routers.PORT_8035.tls=true" - "traefik.http.middlewares.basic-auth.basicauth.users=user1:$$2y$$05$$wY.IxQKqBVqpGsMxB9qwUe7rxBx2SSBetaZlHK6DNvNJo1lz8QiU." "version": "3.3" ```