Skip to main content

I'd like to be able to run multiple Docker containers with Universal GUI so each one can have its own default meta server and application. Using the documented Docker compose method with Traefik I've tried to add a pathprefix for Universal GUI just like with Indicium but it doesn't work.

Can Universal be served under a URL with the format https://host/pathprefix and if so what's a working config?

Follow-up of 

 

Currently I’m trying to make Universal available via the URL http://server/erp but I get a 404 not found. This is my docker-compose.yaml:

---
services:
proxy:
image: traefik
ports:
- 80:80
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web1.address=:80"
- "--entrypoints.web2.address=:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"

universal_prod:
image: registry.thinkwisesoftware.com/public/universal:${TAGPROD}
environment:
- SERVICE_URL=http://${EXTERNAL_HOST}/indicium/iam/iam
- DEFAULT_APPLICATION=ERP
labels:
- "traefik.enable=true"
- "traefik.http.routers.universal_prod.entrypoints=web2"
- "traefik.http.routers.frontend.rule=(Host(`${EXTERNAL_HOST}` && PathPrefix(`/erp`))"

indicium_prod:
image: registry.thinkwisesoftware.com/public/indicium:${TAGPROD}
environment:
- SQL_SERVER=${SQL_SERVER_PROD}
- SQL_DATABASE=${SQL_DATABASE_PROD}
- SQL_USERNAME=${SQL_USERNAME_PROD}
- SQL_PASSWORD=${SQL_PASSWORD_PROD}
- ENABLE_REVERSE_PROXY=true
- ALLOWED_HEADERS=All
- TRUSTED_NETWORKS=0.0.0.0/0
- EXTERNAL_PATH_BASE=/indicium
- CUSTOM_JSON={"Agent":{"Enabled":false}}
labels:
- "traefik.enable=true"
- "traefik.http.routers.indicium_prod.entrypoints=web2"
- "traefik.http.routers.backend.rule=(Host(`${EXTERNAL_HOST}`) && PathPrefix(`/indicium`))"
- "traefik.http.middlewares.backend.stripprefix.prefixes=/indicium"
- "traefik.http.routers.backend.middlewares=backend"

This config works without issues when I leave out the && PathPrefix(`/erp`) part for the universal_prod container which then makes the Universal GUI available via http://server directly.


After some more researching I understand now this can't work because, unlike Indicium, Universal doesn't have a base path setting and always runs under its own root path. The only solutions are using different ports or different subdomains of which the latter is probably the preferred method. I can't setup subdomains myself so I'll have to take this up with the right department.