Deploying a Server - precompiled docker image

Hello all,

I am a newbie trying to set up a local server on my own machine. I am looking at the documentation here, and it says:

If you want to run your own instance, there are multiple ways to achieve this:

  • The easiest way is to use our precompiled releases that are available as docker images on Docker Hub.
  • If you want to deploy the Server with your own modifications, you should build your own docker images (instructions below).
  • Also, you can run the Server with local development tools needed for each package (requires development knowledge)

Being an architect and not a developer, I really don’t want to get into the second or third options, so using the precompiled docker image sounds good to me, but there doesn’t seem to be any instructions on how exactly to do this.

I have installed docker desktop and found speckle-server and speckle-frontend, pulled both images. When I go to run speckle-server, there are some optional settings that I don’t know how to set:

same for speckle-frontend:

I can run the frontend image ok, but the server app fails with the following messages in the log:

2023-12-23 00:18:29 
2023-12-23 00:18:29 /speckle-server/packages/server/dist/modules/shared/helpers/envHelper.js:55
2023-12-23 00:18:29         throw new errors_1.MisconfiguredEnvironmentError('REDIS_URL env var not configured');
2023-12-23 00:18:29         ^
2023-12-23 00:18:29 MisconfiguredEnvironmentError: REDIS_URL env var not configured
2023-12-23 00:18:29     at getRedisUrl (/speckle-server/packages/server/dist/modules/shared/helpers/envHelper.js:55:15)
2023-12-23 00:18:29     at initializeRedisRateLimiters (/speckle-server/packages/server/dist/modules/core/services/ratelimiter.js:284:84)
2023-12-23 00:18:29     at Object.<anonymous> (/speckle-server/packages/server/dist/modules/core/services/ratelimiter.js:321:25)
2023-12-23 00:18:29     at Module._compile (node:internal/modules/cjs/loader:1356:14)
2023-12-23 00:18:29     at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
2023-12-23 00:18:29     at Module.load (node:internal/modules/cjs/loader:1197:32)
2023-12-23 00:18:29     at Module._load (node:internal/modules/cjs/loader:1013:12)
2023-12-23 00:18:29     at Module.require (node:internal/modules/cjs/loader:1225:19)
2023-12-23 00:18:29     at require (node:internal/modules/helpers:177:18)
2023-12-23 00:18:29     at Object.<anonymous> (/speckle-server/packages/server/dist/app.js:54:23) {
2023-12-23 00:18:29   jse_shortmsg: 'REDIS_URL env var not configured',
2023-12-23 00:18:29   jse_info: { code: 'MISCONFIGURED_ENVIRONMENT_ERROR' },
2023-12-23 00:18:29   cause: [Function: ve_cause]
2023-12-23 00:18:29 }
2023-12-23 00:18:29 
2023-12-23 00:18:29 Node.js v18.19.0
2023-12-23 00:18:28 {"level":"info","time":"2023-12-23T05:18:28.977Z","phase":"db-startup","msg":"Loaded knex conf for production"}

The readme of the speckle-server notes that Redis and Postgres are both external dependencies which I need to set up, but the link goes to the wrong page (instead of Server deployment instructions I see a page about the digitalocean marketplace app):

The external dependencies are PostgreSQL and Redis. To get the dependencies running without any hassle, you can run them in docker containers as described in our Server deployment instructions (chapter Run your speckle-server fork, step 1)

Are there any up to date instructions that I’ve missed? I am just looking for a minimal local server to use within my office local area network, mainly to transfer models between Archicad & Blender. I am running Windows 11 22H2. Thanks!

1 Like

Hi @s-p-b

The steps in the guide you found actually do provide details on using the pre-compiled images and provide default values for the environment variables.

The text in the information box you have quoted is out of date, and I’ll have that fixed. There is a separate guide for building your own images.