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.