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: '100' 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://127.0.0.1' #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://127.0.0.1' # 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://127.0.0.1' # 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' EMAIL_SECURE: 'false' # Force the use of SSL. If connecting to maildev server, do not use SSL. EMAIL_REQUIRE_TLS: 'false' # Force the use of TLS. If your email server supports STARTTLS, you probably want this enabled instead of EMAIL_SECURE. If connecting to maildev server, do not use TLS. FRONTEND_ORIGIN: 'http://127.0.0.1' 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