Local docker development setu failure - openelisglobal-proxy | nginx: [emerg] host not found in upstream "frontend.openelis.org" in /etc/nginx/nginx.conf:58

Running the latest code from the develop branch using the Docker development method is filing with openelisglobal-proxy | nginx: [emerg] host not found in upstream “frontend.openelis.org” in /etc/nginx/nginx.conf:58 error, see error log snipet below.

I will be very grateful with assistance to resolve the error.

ronald@tux:~/oe/OpenELIS-Global-2$ docker compose -f dev.docker-compose.yml up
[+] up 4/4
:check_mark: Container openelisglobal-webapp Running 0.0s
:check_mark: Container external-fhir-api Running 0.0s
:check_mark: Container openelisglobal-front-end Running 0.0s
:check_mark: Container openelisglobal-database Running 0.0s
Attaching to external-fhir-api, oe-certs, openelisglobal-database, openelisglobal-front-end, openelisglobal-proxy, openelisglobal-webapp
oe-certs exited with code 0
openelisglobal-proxy | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
openelisglobal-proxy | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
openelisglobal-proxy | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
openelisglobal-proxy | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
openelisglobal-proxy | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
openelisglobal-proxy | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
openelisglobal-proxy | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
openelisglobal-proxy | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
openelisglobal-proxy | /docker-entrypoint.sh: Configuration complete; ready for start up
openelisglobal-proxy | 2026/09/08 08:01:44 [emerg] 1#1: host not found in upstream “frontend.openelis.org” in /etc/nginx/nginx.conf:58
openelisglobal-proxy | nginx: [emerg] host not found in upstream “frontend.openelis.org” in /etc/nginx/nginx.conf:58
openelisglobal-proxy exited with code 1 (restarting)
openelisglobal-proxy | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
openelisglobal-proxy | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
openelisglobal-proxy | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
openelisglobal-proxy | 10-listen-on-ipv6-by-default.sh: info: IPv6 listen already enabled
openelisglobal-proxy | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
openelisglobal-proxy | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
openelisglobal-proxy | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
openelisglobal-proxy | /docker-entrypoint.sh: Configuration complete; ready for start up
openelisglobal-proxy | 2026/09/08 08:01:50 [emerg] 1#1: host not found in upstream “frontend.openelis.org” in /etc/nginx/nginx.conf:58
openelisglobal-proxy | nginx: [emerg] host not found in upstream “frontend.openelis.org” in /etc/nginx/nginx.conf:58

Hi Ronald,

Your dev.docker-compose.yml and nginx.conf actually agree on the service name (frontend.openelis.org), so this isn’t a config mismatch. The telling clue is in your log: openelisglobal-webapp, openelisglobal-front-end, and openelisglobal-database all show “Running 0.0s” — meaning Compose found them already running from an earlier session and left them alone, while only certs and proxy were (re)started fresh. If those leftover containers ended up on a different or half-torn-down network, a freshly created proxy container won’t be able to resolve them via Docker’s DNS, which is exactly what “host not found in upstream” means.

Try this:

  1. Fully tear down the stack (removes containers + network):
docker compose -f dev.docker-compose.yml down --remove-orphans
  1. Check for leftover containers/networks from a previous run:
docker ps -a | grep openelis
docker network ls | grep openelis

If anything shows up, remove it:

docker rm -f <container_name>
docker network rm <network_name>
  1. Make sure your code and images are current:
git pull
git submodule update --init --recursive
docker compose -f dev.docker-compose.yml pull
  1. Confirm a .env file exists in the repo root (create one if missing check the project wiki/README for required variables):
ls -la .env
  1. Bring the stack up fresh, forcing recreation of every container:
docker compose -f dev.docker-compose.yml up --force-recreate
  1. In a separate terminal, check the frontend container isn’t crash-looping this repo recently moved the dev frontend container to Vite, so a stale local image/cache can crash it shortly after start even though Compose briefly shows it as “running”:
docker logs openelisglobal-front-end
  1. If it still fails, check DNS resolution between proxy and frontend:
docker exec openelisglobal-proxy ping -c1 frontend.openelis.org
docker inspect openelisglobal-proxy | grep -A5 Networks
docker inspect openelisglobal-front-end | grep -A5 Networks

The two containers need to show the same network name for DNS resolution to work.

Let me know if any of these turn up something useful in the logs.
i actually think this thread would be helpful