Files
speckle-server/docker-compose-vps.yml
huanld 6cd126af41
Release pipeline / Get version (push) Has been cancelled
Release pipeline / Get Chart Name (push) Has been cancelled
Release pipeline / tests (push) Has been cancelled
Release pipeline / builds (push) Has been cancelled
Release pipeline / builds-ghcr (push) Has been cancelled
Release pipeline / test-deployments (push) Has been cancelled
Release pipeline / deploy (push) Has been cancelled
Release pipeline / Helm chart oci (push) Has been cancelled
Release pipeline / npm (push) Has been cancelled
Release pipeline / snyk (push) Has been cancelled
feat: custom IFC converter with C++ geometry injection
- Add custom IFC converter using web-ifc C++ DLL for geometry extraction
- Add GeometryInjector.cs: patches Speckle objects with mesh geometry
- Add NativeIfcGeometry.cs: P/Invoke bindings to WebIfcDll
- Add CustomMeshConverterFactory.cs: custom Xbim mesh converter
- Configure fileimport-service dotnet IFC pipeline
- Add VPS deployment config (docker-compose-vps.yml)
- Add dev scripts: run_backend.bat, run_frontend.bat, start_dev.bat
- Update .gitignore: exclude scratch/IFC-toolkit, engine_web-ifc
- Memory optimization for Xbim (MemoryModel mode)
2026-04-16 06:46:41 +07:00

162 lines
4.2 KiB
YAML

services:
# Actual Speckle Server dependencies
postgres:
image: 'postgres:16.4-alpine3.20@sha256:d898b0b78a2627cb4ee63464a14efc9d296884f1b28c841b0ab7d7c42f1fffdf'
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_keycloak_init.sql:/docker-entrypoint-initdb.d/11-docker_postgres_keycloak_init.sql
ports:
- '5432:5432'
command: postgres -c max_prepared_transactions=150
postgres-region1:
image: 'postgres:16.4-alpine3.20@sha256:d898b0b78a2627cb4ee63464a14efc9d296884f1b28c841b0ab7d7c42f1fffdf'
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_keycloak_init.sql:/docker-entrypoint-initdb.d/11-docker_postgres_keycloak_init.sql
ports:
- '5401:5432'
command: postgres -c max_prepared_transactions=150
postgres-region2:
image: 'postgres:16.4-alpine3.20@sha256:d898b0b78a2627cb4ee63464a14efc9d296884f1b28c841b0ab7d7c42f1fffdf'
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_keycloak_init.sql:/docker-entrypoint-initdb.d/11-docker_postgres_keycloak_init.sql
ports:
- '5402:5432'
command: postgres -c max_prepared_transactions=150
redis:
image: 'valkey/valkey:8.1-alpine'
restart: always
volumes:
- redis-data:/data
ports:
- '6379:6379'
minio:
image: 'minio/minio'
command: server /data --console-address ":9001"
restart: always
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
volumes:
- minio-data:/data
ports:
- '9002:9000'
- '9003:9001'
minio-region1:
image: 'minio/minio'
command: server /data --console-address ":9001"
restart: always
volumes:
- minio-region1-data:/data
ports:
- '9020:9000'
- '9021:9001'
minio-region2:
image: 'minio/minio'
command: server /data --console-address ":9001"
restart: always
volumes:
- minio-region2-data:/data
ports:
- '9040:9000'
- '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: 100.64.0.3
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
# Local email server for email troubleshooting
maildev:
restart: always
image: maildev/maildev
ports:
- '1080:1080'
- '1025:1025'
pgadmin:
image: dpage/pgadmin4
restart: always
environment:
PGADMIN_DEFAULT_EMAIL: admin@localhost.com
PGADMIN_DEFAULT_PASSWORD: admin
volumes:
- pgadmin-data:/var/lib/pgadmin
ports:
- '16543:80'
depends_on:
- postgres
redis_insight:
image: redislabs/redisinsight:latest
restart: always
volumes:
- redis_insight-data:/db
ports:
- '8001:8001'
depends_on:
- redis
# Storage persistency
volumes:
postgres-data:
postgres-region1-data:
postgres-region2-data:
redis-data:
pgadmin-data:
redis_insight-data:
minio-data:
minio-region1-data:
minio-region2-data: