Error: "FileUploadInternalError" in local development

Hello,

With my team we are deploying on an internal network with proxy (it doesn’t have DNS either) a Speckle 2.25.9 instance with Docker, based on GitHub - specklesystems/speckle-server: The Speckle Server, Frontend, 3D Viewer, & other JS utilities., Deploying with Docker Compose | Speckle Docs (Legacy) and Getting Started - Speckle Docs. The OS release is Ubuntu 22.04.5 LTS.

During the deployment we were able to overcome several errors such as “knex_migrations”, etc.

Currently, there is an error involving two import services, “fileimport-service” and “ifc-import-server”, for which we have not found a solution. This occurs when trying to import a file by dragging it onto the project (it works correctly with connectors).

The error that appears in the logs (speckle-server, fileimport-service) is the following:

WARN [10:24:42.611]: Error while processing file upload. {"component":"file-uploads","streamId":"015ad9a06c","projectId":"015ad9a06c","uploadId":"81fcdd21d3","modelId":"38ad953f0d","branchId":"38ad953f0d","branchName":"test import","fileImportDetails":{"id":"81fcdd21d3","streamId":"015ad9a06c","branchName":"test import","userId":"8c2e42a596","fileName":"test.ifc","fileType":"ifc","fileSize":24656663,"uploadComplete":true,"uploadDate":"2025-09-16T10:24:09.698Z","convertedStatus":3,"convertedLastUpdate":"2025-09-16T10:24:42.545Z","convertedMessage":"503 Server Error: Service Unavailable for url: http://speckle-server:3000/api/diff/015ad9a06c","convertedCommitId":null,"modelId":"38ad953f0d","performanceData":null}}
    err: {
      "type": "FileUploadInternalError",
      "message": "503 Server Error: Service Unavailable for url: http://speckle-server:3000/api/diff/015ad9a06c",
      "stack":
          FileUploadInternalError: 503 Server Error: Service Unavailable for url: http://speckle-server:3000/api/diff/015ad9a06c
              at file:///speckle-server/packages/server/dist/modules/fileuploads/services/resultListener.js:41:21
              at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
              at async Object.listener (file:///speckle-server/packages/server/dist/modules/fileuploads/index.js:154:13)
              at async messageProcessor (file:///speckle-server/packages/server/dist/modules/core/utils/dbNotificationListener.js:58:9)
      "name": "FileUploadInternalError",
      "jse_shortmsg": "503 Server Error: Service Unavailable for url: http://speckle-server:3000/api/diff/015ad9a06c",
      "jse_info": {
        "code": "FILE_UPLOAD_ERROR",
        "statusCode": 500
      }
    }

and the logs of “ifc-import-server”:

{"message": "[Errno -3] Temporary failure in name resolution", "@mt": "Execution failed with exception: {message}", "@t": "2025-09-15T14:50:56.250504Z", "@x": "Traceback (most recent call last):\n  File \"/app/main.py\", line 60, in main\n    await task\n  File \"/app/lib/python3.13/site-packages/ifc_importer/job_processor.py\", line 75, in job_processor\n    connection = await setup_connection()\n                 ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/app/lib/python3.13/site-packages/ifc_importer/repository.py\", line 10, in setup_connection\n    connection = await connect(settings.fileimport_queue_postgres_url)\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/app/lib/python3.13/site-packages/asyncpg/connection.py\", line 2421, in connect\n    return await connect_utils._connect(\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    ...<20 lines>...\n    )\n    ^\n  File \"/app/lib/python3.13/site-packages/asyncpg/connect_utils.py\", line 1075, in _connect\n    raise last_error or exceptions.TargetServerAttributeNotMatched(\n    ...<2 lines>...\n    )\n  File \"/app/lib/python3.13/site-packages/asyncpg/connect_utils.py\", line 1049, in _connect\n    conn = await _connect_addr(\n           ^^^^^^^^^^^^^^^^^^^^\n    ...<6 lines>...\n    )\n    ^\n  File \"/app/lib/python3.13/site-packages/asyncpg/connect_utils.py\", line 886, in _connect_addr\n    return await __connect_addr(params, True, *args)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/app/lib/python3.13/site-packages/asyncpg/connect_utils.py\", line 931, in __connect_addr\n    tr, pr = await connector\n             ^^^^^^^^^^^^^^^\n  File \"/app/lib/python3.13/site-packages/asyncpg/connect_utils.py\", line 802, in _create_ssl_connection\n    tr, pr = await loop.create_connection(\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    ...<2 lines>...\n        host, port)\n        ^^^^^^^^^^^\n  File \"/usr/local/lib/python3.13/asyncio/base_events.py\", line 1122, in create_connection\n    infos = await self._ensure_resolved(\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n        (host, port), family=family,\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n        type=socket.SOCK_STREAM, proto=proto, flags=flags, loop=self)\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/local/lib/python3.13/asyncio/base_events.py\", line 1508, in _ensure_resolved\n    return await loop.getaddrinfo(host, port, family=family, type=type,\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                  proto=proto, flags=flags)\n                                  ^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/local/lib/python3.13/asyncio/base_events.py\", line 939, in getaddrinfo\n    return await self.run_in_executor(\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n        None, getaddr_func, host, port, family, type, proto, flags)\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/local/lib/python3.13/concurrent/futures/thread.py\", line 59, in run\n    result = self.fn(*self.args, **self.kwargs)\n  File \"/usr/local/lib/python3.13/socket.py\", line 977, in getaddrinfo\n    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):\n               ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nsocket.gaierror: [Errno -3] Temporary failure in name resolution", "@l": "error"}
Traceback (most recent call last):
  File "/app/main.py", line 69, in <module>
    asyncio.run(main())
    ~~~~~~~~~~~^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/runners.py", line 195, in run
    return runner.run(main)
           ~~~~~~~~~~^^^^^^
  File "/usr/local/lib/python3.13/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 725, in run_until_complete
    return future.result()
           ~~~~~~~~~~~~~^^
  File "/app/main.py", line 60, in main
    await task
  File "/app/lib/python3.13/site-packages/ifc_importer/job_processor.py", line 75, in job_processor
    connection = await setup_connection()
                 ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/lib/python3.13/site-packages/ifc_importer/repository.py", line 10, in setup_connection
    connection = await connect(settings.fileimport_queue_postgres_url)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/lib/python3.13/site-packages/asyncpg/connection.py", line 2421, in connect
    return await connect_utils._connect(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<20 lines>...
    )
    ^
  File "/app/lib/python3.13/site-packages/asyncpg/connect_utils.py", line 1075, in _connect
    raise last_error or exceptions.TargetServerAttributeNotMatched(
    ...<2 lines>...
    )
  File "/app/lib/python3.13/site-packages/asyncpg/connect_utils.py", line 1049, in _connect
    conn = await _connect_addr(
           ^^^^^^^^^^^^^^^^^^^^
    ...<6 lines>...
    )
    ^
  File "/app/lib/python3.13/site-packages/asyncpg/connect_utils.py", line 886, in _connect_addr
    return await __connect_addr(params, True, *args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/lib/python3.13/site-packages/asyncpg/connect_utils.py", line 931, in __connect_addr
    tr, pr = await connector
             ^^^^^^^^^^^^^^^
  File "/app/lib/python3.13/site-packages/asyncpg/connect_utils.py", line 802, in _create_ssl_connection
    tr, pr = await loop.create_connection(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<2 lines>...
        host, port)
        ^^^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 1122, in create_connection
    infos = await self._ensure_resolved(
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        (host, port), family=family,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        type=socket.SOCK_STREAM, proto=proto, flags=flags, loop=self)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 1508, in _ensure_resolved
    return await loop.getaddrinfo(host, port, family=family, type=type,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                  proto=proto, flags=flags)
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 939, in getaddrinfo
    return await self.run_in_executor(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        None, getaddr_func, host, port, family, type, proto, flags)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.13/socket.py", line 977, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
               ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
socket.gaierror: [Errno -3] Temporary failure in name resolution

I attach the compose files also.

docker-compose.yml:

name: 'speckle-server'

services:
  postgres:
    image: 'postgres:16.9-alpine'
    ports:
      - "125.1.34.249:5432:5432"
    restart: always
    environment:
      POSTGRES_DB: speckle
      POSTGRES_USER: speckle
      POSTGRES_PASSWORD: speckle
    volumes:
      - ./postgres-data:/var/lib/postgresql/data/

  redis:
    image: 'valkey/valkey:8-alpine'
    restart: always
    volumes:
      - ./redis-data:/data
    ports:
      - "127.0.0.1:6379:6379"

  minio:
    image: 'minio/minio'
    command: server /data --console-address ":9001"
    restart: always
    ports:
      - '0.0.0.0:9000:9000'
    volumes:
      - ./minio-data:/data

  speckle-ingress:
    image: speckle/speckle-docker-compose-ingress:2.25.9
    restart: always
    ports:
      - '0.0.0.0:80:8080'
    environment:
      FILE_SIZE_LIMIT_MB: '1000'
      NGINX_ENVSUBST_OUTPUT_DIR: '/etc/nginx'

  speckle-frontend-2:
    image: speckle/speckle-frontend-2:2.25.9
    restart: always
    environment:
      NUXT_PUBLIC_SERVER_NAME: 'local'
      NUXT_PUBLIC_API_ORIGIN: 'http://125.1.34.249'
      NUXT_PUBLIC_BACKEND_API_ORIGIN: 'http://speckle-server:3000'
      NUXT_PUBLIC_BASE_URL: 'http://125.1.34.249'
      NUXT_REDIS_URL: 'redis://redis'
      LOG_PRETTY: 'true'

  speckle-server:
    image: speckle/speckle-server:2.25.9
    restart: always
    depends_on:
      - postgres
      - redis
      - minio
    environment:
      CANONICAL_URL: 'http://125.1.34.249'
      SESSION_SECRET: 'your-secret-key'
      STRATEGY_LOCAL: 'true'
      REDIS_URL: 'redis://redis'
      S3_ENDPOINT: 'http://minio:9000'
      S3_PUBLIC_ENDPOINT: 'http://125.1.34.249:9000'
      S3_ACCESS_KEY: 'minioadmin'
      S3_SECRET_KEY: 'minioadmin'
      S3_BUCKET: 'speckle-server'
      FRONTEND_ORIGIN: 'http://125.1.34.249'
      PRETTY_LOGS: 'true'
      POSTGRES_URL: "postgres"
      POSTGRES_USER: "speckle"
      POSTGRES_PASSWORD: "speckle"
      POSTGRES_DB: "speckle"
      ENABLE_MP: "false"
      LOG_PRETTY: 'true'
      PRIVATE_OBJECTS_SERVER_URL: 'http://speckle-server:3000'
      FF_NEXT_GEN_FILE_IMPORTER_ENABLED: 'true'

  preview-service:
    image: speckle/speckle-preview-service:2.25.9
    restart: always
    depends_on:
      - speckle-server
    environment:
      REDIS_URL: 'redis://redis'
      PORT: "3001"

  webhook-service:
    image: speckle/speckle-webhook-service:2.25.9
    restart: always
    depends_on:
      - speckle-server
    environment:
      PG_CONNECTION_STRING: 'postgres://speckle:speckle@postgres/speckle'

  fileimport-service:
    image: speckle/speckle-fileimport-service:2.25.9
    restart: always
    depends_on:
      - speckle-server
      - postgres
    environment:
      SPECKLE_SERVER_URL: 'http://speckle-server:3000'
      PG_CONNECTION_STRING: 'postgres://speckle:speckle@postgres/speckle'
      REDIS_URL: 'redis://redis'
      PGHOST: postgres
      PGUSER: speckle
      PGPASSWORD: speckle
      PGDATABASE: speckle


networks:
  default:
    name: speckle-server

volumes:
  postgres-data:
  redis-data:
  minio-data:

docker-compose-deps.yml:

services:
  # Actual Speckle Server dependencies

  postgres:
    build:
      context: .
      dockerfile: utils/postgres/Dockerfile
    restart: always
    environment:
      POSTGRES_DB: speckle
      POSTGRES_USER: speckle
      POSTGRES_PASSWORD: speckle
    volumes:
      - postgres-data:/var/lib/postgresql/data/
      - ./setup/db/10-docker_postgres_init.sql:/docker-entrypoint-initdb.d/10-docker_postgres_init.sql
      - ./setup/db/11-docker_postgres_keycloack_init.sql:/docker-entrypoint-initdb.d/11-docker_postgres_keycloack_init.sql
    ports:
      - '125.1.34.249:5432:5432'
    command: postgres -c max_prepared_transactions=150

  postgres-region1:
    build:
      context: .
      dockerfile: utils/postgres/Dockerfile
    restart: always
    environment:
      POSTGRES_DB: speckle
      POSTGRES_USER: speckle
      POSTGRES_PASSWORD: speckle
    volumes:
      - postgres-region1-data:/var/lib/postgresql/data/
      - ./setup/db/10-docker_postgres_init.sql:/docker-entrypoint-initdb.d/10-docker_postgres_init.sql
      - ./setup/db/11-docker_postgres_keycloack_init.sql:/docker-entrypoint-initdb.d/11-docker_postgres_keycloack_init.sql
    ports:
      - '127.0.0.1:5401:5432'
    command: postgres -c max_prepared_transactions=150

  postgres-region2:
    build:
      context: .
      dockerfile: utils/postgres/Dockerfile
    restart: always
    environment:
      POSTGRES_DB: speckle
      POSTGRES_USER: speckle
      POSTGRES_PASSWORD: speckle
    volumes:
      - postgres-region2-data:/var/lib/postgresql/data/
      - ./setup/db/10-docker_postgres_init.sql:/docker-entrypoint-initdb.d/10-docker_postgres_init.sql
      - ./setup/db/11-docker_postgres_keycloack_init.sql:/docker-entrypoint-initdb.d/11-docker_postgres_keycloack_init.sql
    ports:
      - '127.0.0.1:5402:5432'
    command: postgres -c max_prepared_transactions=150

  redis:
    image: 'valkey/valkey:8.1-alpine'
    restart: always
    volumes:
      - redis-data:/data
    ports:
      - '125.1.34.249:6379:6379'

  minio:
    image: 'minio/minio'
    command: server /data --console-address ":9001"
    restart: always
    volumes:
      - minio-data:/data
    ports:
      - '125.1.34.249:9000:9000'
      - '125.1.34.249:9001:9001'

  minio-region1:
    image: 'minio/minio'
    command: server /data --console-address ":9001"
    restart: always
    volumes:
      - minio-region1-data:/data
    ports:
      - '127.0.0.1:9020:9000'
      - '127.0.0.1:9021:9001'

  minio-region2:
    image: 'minio/minio'
    command: server /data --console-address ":9001"
    restart: always
    volumes:
      - minio-region2-data:/data
    ports:
      - '127.0.0.1:9040:9000'
      - '127.0.0.1:9041:9001'

  # Local OIDC provider for testing
  keycloak:
    image: quay.io/keycloak/keycloak:25.0
    depends_on:
      - postgres
    environment:
      KC_DB: postgres
      KC_DB_URL: jdbc:postgresql://postgres:5432/keycloak
      KC_DB_USERNAME: speckle
      KC_DB_PASSWORD: speckle

      KC_HOSTNAME: 125.1.34.249
      KC_HOSTNAME_PORT: 9000
      KC_HOSTNAME_STRICT: false
      KC_HOSTNAME_STRICT_HTTPS: false

      KC_LOG_LEVEL: info
      KC_METRICS_ENABLED: true
      KC_HEALTH_ENABLED: true
      KEYCLOAK_ADMIN: admin
      KEYCLOAK_ADMIN_PASSWORD: admin
    ports:
      - 8443:8443
      - 9010:9000
      - 8090:8080
    command: start-dev --import-realm
    volumes:
      - ./setup/keycloak:/opt/keycloak/data/import
    # user: root
    # command: export --dir /opt/keycloak/backup --realm speckle
    # volumes:
    #   - ./keycloak-backup:/opt/keycloak/backup

  # Local email server for email troubleshooting
  maildev:
    restart: always
    image: maildev/maildev
    ports:
      - '127.0.0.1:1080:1080'
      - '127.0.0.1:1025:1025'

  # Useful for debugging / exploring local databases

  pgadmin:
    image: dpage/pgadmin4
    restart: always
    environment:
      PGADMIN_DEFAULT_EMAIL: admin@localhost.com
      PGADMIN_DEFAULT_PASSWORD: admin
    volumes:
      - pgadmin-data:/var/lib/pgadmin
    ports:
      - '125.1.34.249:16543:80'
    depends_on:
      - postgres

  redis_insight:
    image: redislabs/redisinsight:latest
    restart: always
    volumes:
      - redis_insight-data:/db
    ports:
      - '127.0.0.1:8001:8001'
    depends_on:
      - redis

# Storage persistency

networks:
  default:
    name: speckle-server

volumes:
  postgres-data:
  postgres-region1-data:
  postgres-region2-data:
  redis-data:
  pgadmin-data:
  redis_insight-data:
  minio-data:
  minio-region1-data:
  minio-region2-data:

docker-compose-speckle.yml

services:
  speckle-ingress:
    build:
      context: .
      dockerfile: utils/docker-compose-ingress/Dockerfile
    platform: linux/amd64
    image: speckle/speckle-docker-compose-ingress:local
    restart: always
    ports:
      - '0.0.0.0:80:8080'
    environment:
      FILE_SIZE_LIMIT_MB: '1000'
      NGINX_ENVSUBST_OUTPUT_DIR: '/etc/nginx'
    depends_on:
      - speckle-server
      - speckle-frontend-2

  speckle-frontend-2:
    build:
      context: .
      dockerfile: packages/frontend-2/Dockerfile
    platform: linux/amd64
    image: speckle/speckle-frontend-2:local
    restart: always
    environment:
      NUXT_PUBLIC_SERVER_NAME: 'local'
      #TODO: Change this to the URL of your server. This is the URL of the server as accessed by users.
      NUXT_PUBLIC_API_ORIGIN: 'http://125.1.34.249'
      #TODO: Change this to the URL of your server. This is the URL of the server as accessed by users.
      NUXT_PUBLIC_BASE_URL: 'http://125.1.34.249'
      # This is the URL of the server as accessed via this docker compose network.
      NUXT_PUBLIC_BACKEND_API_ORIGIN: 'http://speckle-server:3000'
      NUXT_PUBLIC_LOG_LEVEL: 'warn'
      NUXT_REDIS_URL: 'redis://redis'
      LOG_LEVEL: 'info'
      LOG_PRETTY: 'true'

      NUXT_PUBLIC_FF_LARGE_FILE_IMPORTS_ENABLED: 'true'
      NUXT_PUBLIC_FF_NEXT_GEN_FILE_IMPORTER_ENABLED: 'true'
    depends_on:
      - speckle-server
      # - redis

  speckle-server:
    build:
      context: .
      dockerfile: packages/server/Dockerfile
    platform: linux/amd64
    image: speckle/speckle-server:local
    restart: always
    healthcheck:
      test:
        - CMD
        - /nodejs/bin/node
        - -e
        - "try { require('node:http').request({headers: {'Content-Type': 'application/json'}, port:3000, hostname:'127.0.0.1', path:'/readiness', method: 'GET', timeout: 2000 }, (res) => { body = ''; res.on('data', (chunk) => {body += chunk;}); res.on('end', () => {process.exit(res.statusCode != 200 || body.toLowerCase().includes('error') ? 1 : 0);}); }).end(); } catch { process.exit(1); }"
      interval: 10s
      timeout: 10s
      retries: 3
      start_period: 90s
    environment:
      # TODO. Change this to the url of your server. This is the URL of the server as accessed by users.
      CANONICAL_URL: 'http://125.1.34.249'
      # This is the URL of the server as accessed by other Speckle services within this docker compose network, such as preview-service.
      # This will be the same value as NUXT_PUBLIC_BACKEND_API_ORIGIN as defined in the frontend-2 service.
      PRIVATE_OBJECTS_SERVER_URL: 'http://speckle-server:3000'

      # TODO: Change this to a unique secret for this server
      SESSION_SECRET: 'TODO:Replace'

      # This is the authentication strategy to use. Local (i.e. username & password) is the default strategy.
      STRATEGY_LOCAL: 'true'

      LOG_LEVEL: 'info'
      LOG_PRETTY: 'true'

      POSTGRES_URL: 'postgres'
      POSTGRES_USER: 'speckle'
      POSTGRES_PASSWORD: 'speckle'
      POSTGRES_DB: 'speckle'

      REDIS_URL: 'redis://redis'
      PREVIEW_SERVICE_USE_PRIVATE_OBJECTS_SERVER_URL: 'true'
      PREVIEW_SERVICE_REDIS_URL: 'redis://redis'
      FILEIMPORT_SERVICE_USE_PRIVATE_OBJECTS_SERVER_URL: 'true'
      FILEIMPORT_SERVICE_REDIS_URL: 'redis://redis'

      S3_ENDPOINT: 'http://minio:9000'
      S3_PUBLIC_ENDPOINT: 'http://127.0.0.1:9000'
      S3_ACCESS_KEY: 'minioadmin'
      S3_SECRET_KEY: 'minioadmin'
      S3_BUCKET: 'speckle-server'
      S3_CREATE_BUCKET: 'true'
      S3_REGION: '' # optional, defaults to 'us-east-1'
      FILE_SIZE_LIMIT_MB: 1000
      EMAIL_FROM: 'no-reply@example.org'

      FRONTEND_ORIGIN: 'http://125.1.34.249'
      ONBOARDING_STREAM_URL: 'https://latest.speckle.systems/projects/843d07eb10'

      FILEIMPORT_QUEUE_POSTGRES_URL: 'postgresql://speckle:speckle@postgres/speckle'
      FF_NEXT_GEN_FILE_IMPORTER_ENABLED: 'true'

    depends_on:
      []
      # - minio
      # - redis
      # - postgres

  preview-service:
    build:
      context: .
      dockerfile: packages/preview-service/Dockerfile
    platform: linux/amd64
    image: speckle/speckle-preview-service:local
    restart: always
    mem_limit: '3000m'
    memswap_limit: '3000m'
    environment:
      HOST: '127.0.0.1' # The preview service does not need to be exposed outside the container.
      PORT: '3001'
      LOG_LEVEL: 'info'
      LOG_PRETTY: 'true'
      REDIS_URL: 'redis://redis'
    depends_on:
      []
      # - redis

  webhook-service:
    build:
      context: .
      dockerfile: packages/webhook-service/Dockerfile
    platform: linux/amd64
    image: speckle/speckle-webhook-service:local
    restart: always
    environment:
      LOG_LEVEL: 'info'
      LOG_PRETTY: 'true'
      PG_CONNECTION_STRING: 'postgres://speckle:speckle@postgres/speckle'
    depends_on:
      - speckle-server
      # - postgres

  ifc-import-server:
    build:
      context: .
      dockerfile: packages/ifc-import-service/Dockerfile
    platform: linux/amd64
    image: speckle/ifc-import-service:local
    restart: always
    environment:
      LOG_LEVEL: 'info'
      LOG_PRETTY: 'true'
      FILEIMPORT_QUEUE_POSTGRES_URL: 'postgresql://speckle:speckle@postgres/speckle'
    depends_on:
      - speckle-server
     # - postgres

networks:
  default:
    name: speckle-server

After running the services docker ps -a displays the following:

Could you please help us identify the cause of this issue or guide us towards a possible solution?

Thank you in advance.

Fioroni, Tomás

Our updated server documentation can be found here: Introduction - Speckle Docs

Yes, we checked it, but on the Full Deployment Guide: Deploying with Docker Compose we found a 404 Page not found, is that correct?