version: '3' services: speckle-frontend: build: context: . dockerfile: packages/frontend/Dockerfile image: speckle/speckle-frontend:local restart: always ports: - '0.0.0.0:80:8080' environment: FILE_SIZE_LIMIT_MB: 100 speckle-server: build: context: . dockerfile: packages/server/Dockerfile image: speckle/speckle-server:local restart: always healthcheck: test: - CMD - node - -e - "try { require('node:http').request({headers: {'Content-Type': 'application/json'}, port:3000, hostname:'127.0.0.1', path:'/graphql?query={serverInfo{version}}', method: 'GET', timeout: 2000 }, (res) => { body = ''; res.on('data', (chunk) => {body += chunk;}); res.on('end', () => {process.exit(res.statusCode != 200 || body.toLowerCase().includes('error'));}); }).end(); } catch { process.exit(1); }" interval: 10s timeout: 10s retries: 3 start_period: 5s environment: # TODO: Change this to the URL of the speckle server, as accessed from the network CANONICAL_URL: 'http://localhost' # TODO: Change this to a unique secret for this server SESSION_SECRET: 'TODO:Replace' STRATEGY_LOCAL: 'true' LOG_LEVEL: 'info' POSTGRES_URL: 'postgres' POSTGRES_USER: 'speckle' POSTGRES_PASSWORD: 'speckle' POSTGRES_DB: 'speckle' REDIS_URL: 'redis://redis' S3_ENDPOINT: 'http://minio: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: 100 preview-service: build: context: . dockerfile: packages/preview-service/Dockerfile image: speckle/speckle-preview-service:local restart: always mem_limit: '3000m' memswap_limit: '3000m' environment: LOG_LEVEL: 'info' PG_CONNECTION_STRING: 'postgres://speckle:speckle@postgres/speckle' webhook-service: build: context: . dockerfile: packages/webhook-service/Dockerfile image: speckle/speckle-webhook-service:local restart: always environment: LOG_LEVEL: 'info' PG_CONNECTION_STRING: 'postgres://speckle:speckle@postgres/speckle' fileimport-service: build: context: . dockerfile: packages/fileimport-service/Dockerfile image: speckle/speckle-fileimport-service:local restart: always environment: LOG_LEVEL: 'info' PG_CONNECTION_STRING: 'postgres://speckle:speckle@postgres/speckle' SPECKLE_SERVER_URL: 'http://speckle-server:3000' FILE_IMPORT_TIME_LIMIT_MIN: 10