Speckle Server 2.12.0: 502 Bad Gateway

Hello dear Specklers,

after installing the latest Speckle Server version 2.12.0 on our VM our reverse proxy brings up a 502 and doesn’t find the frontend. We switched back to 2.11.4

Did you change something on the environment variables of the Docker-Compose file?

I’m happy for any feedback how to solve it.

Docker Log of frontend:
azureuser@speckle2-dev:~/opt/speckle$ sudo docker logs 8a2b5a52570b
Starting nginx environment template rendering with ${HOSTNAME} ${PWD} ${OS_FLAVOUR} ${NODE_ENV} ${HOME} ${SHLVL} ${FILE_SIZE_LIMIT_MB} ${BITNAMI_APP_NAME} ${APP_VERSION} ${OS_NAME} ${PATH} ${OS_ARCH} ${}
Nginx conf rendered, starting server…
openresty 15:13:31.93
openresty 15:13:31.93 Welcome to the Bitnami openresty container
openresty 15:13:31.94 Subscribe to project updates by watching GitHub - bitnami/containers: Bitnami container images
openresty 15:13:31.94 Submit issues and feature requests at Issues · bitnami/containers · GitHub
openresty 15:13:31.94
openresty 15:13:31.94 INFO ==> ** Starting OpenResty setup **
openresty 15:13:31.97 INFO ==> Validating settings in OPENRESTY
* env vars
openresty 15:13:31.98 INFO ==> Initializing OpenResty
realpath: /bitnami/openresty/conf/vhosts: No such file or directory

openresty 15:13:32.01 INFO ==> ** OpenResty setup finished! **
openresty 15:13:32.03 INFO ==> ** Starting OpenResty **
2023/02/08 15:13:32 [notice] 1#1: using the “epoll” event method
2023/02/08 15:13:32 [notice] 1#1: openresty/
2023/02/08 15:13:32 [notice] 1#1: OS: Linux 5.15.0-1031-azure
2023/02/08 15:13:32 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2023/02/08 15:13:32 [notice] 1#1: start worker processes
2023/02/08 15:13:32 [notice] 1#1: start worker process 33

Docker Log of Server:
[INFO wait] --------------------------------------------------------
[INFO wait] docker-compose-wait 2.8.0
[INFO wait] ---------------------------
[DEBUG wait] Starting with configuration:
[DEBUG wait] - Hosts to be waiting for: [postgres:5432, redis:6379, minio:9000]
[DEBUG wait] - Timeout before failure: 30 seconds
[DEBUG wait] - TCP connection timeout before retry: 5 seconds
[DEBUG wait] - Sleeping time before checking for hosts availability: 0 seconds
[DEBUG wait] - Sleeping time once all hosts are available: 0 seconds
[DEBUG wait] - Sleeping time between retries: 1 seconds
[DEBUG wait] --------------------------------------------------------
[INFO wait] Checking availability of postgres:5432
[INFO wait] Host postgres:5432 is now available!
[INFO wait] --------------------------------------------------------
[INFO wait] Checking availability of redis:6379
[INFO wait] Host redis:6379 is now available!
[INFO wait] --------------------------------------------------------
[INFO wait] Checking availability of minio:9000
[INFO wait] Host minio:9000 not yet available…
[INFO wait] Host minio:9000 is now available!
[INFO wait] --------------------------------------------------------
[INFO wait] docker-compose-wait - Everything’s fine, the application can now start!
[INFO wait] --------------------------------------------------------
{“level”:“info”,“time”:“2023-02-08T15:13:35.691Z”,“phase”:“db-startup”,“msg”:“Loaded knex conf for production”}
{“level”:“info”,“time”:“2023-02-08T15:13:37.725Z”,“component”:“modules”,“msg”:“:boom: Init core module”}
{“level”:“info”,“time”:“2023-02-08T15:13:37.900Z”,“component”:“modules”,“msg”:“:key: Init auth module”}
{“level”:“info”,“time”:“2023-02-08T15:13:37.984Z”,“component”:“modules”,“msg”:“:nail_care: Init graphql api explorer module”}
{“level”:“info”,“time”:“2023-02-08T15:13:37.984Z”,“component”:“modules”,“msg”:“:e-mail: Init emails module”}
{“level”:“info”,“time”:“2023-02-08T15:13:38.645Z”,“component”:“modules”,“msg”:“:recycle: Init pwd reset module”}
{“level”:“info”,“time”:“2023-02-08T15:13:38.646Z”,“component”:“modules”,“msg”:“:love_letter: Init invites module”}
{“level”:“info”,“time”:“2023-02-08T15:13:38.650Z”,“component”:“modules”,“msg”:“:camera_flash: Init object preview module”}
{“level”:“info”,“time”:“2023-02-08T15:13:38.651Z”,“component”:“modules”,“msg”:“:page_facing_up: Init FileUploads module”}
{“level”:“info”,“time”:“2023-02-08T15:13:38.651Z”,“component”:“modules”,“msg”:“:speaking_head: Init comments module”}
{“level”:“info”,“time”:“2023-02-08T15:13:38.651Z”,“component”:“modules”,“msg”:“:package: Init BlobStorage module”}
{“level”:“info”,“time”:“2023-02-08T15:13:38.683Z”,“component”:“modules”,“msg”:“:telephone_receiver: Init notifications module”}
{“level”:“info”,“time”:“2023-02-08T15:13:38.683Z”,“component”:“modules”,“msg”:“:telephone_receiver: Initializing notification queue consumption…”}
{“level”:“info”,“time”:“2023-02-08T15:13:39.287Z”,“component”:“modules”,“msg”:“:person_fencing: Init activity module”}
{“level”:“info”,“time”:“2023-02-08T15:13:39.293Z”,“component”:“modules”,“msg”:“:closed_lock_with_key: Init access request module”}
{“level”:“info”,“time”:“2023-02-08T15:13:39.293Z”,“component”:“modules”,“msg”:“:fishing_pole_and_fish: Init webhooks module”}
{“level”:“info”,“time”:“2023-02-08T15:13:40.604Z”,“phase”:“startup”,“msg”:“:rocket: My name is Speckle Server, and I’m running at”}

1 Like

Hi @AlexHofbeck

The frontend docker image now exposes container port 8080 instead of port 80. This was to avoid using a privileged port and to allow the frontend to run as a non-root user, which should be more secure.

Can you verify the docker-compose file configures the speckle-frontend container port as follows:

      - ''

Full context can be found in our updated docker-compose file:

Please let me know if this works for you,



nice that was exactly it :slight_smile:

1 Like