Hello everyone,
I’m Mario Salviati and I work for an Italian engineering and architecture firm.
We’d like to adopt Speckle for our clients’ small BIM projects. I’m writing to you because, despite several attempts, we’re struggling to get IFC import and preview to work reliably on our self-hosted Speckle (2.26.x) instance behind Caddy.
This is an urgent issue for our ongoing work, and we’d be very grateful for your help in finding a clear and stable configuration.
Problem Summary
After many attempts, we’ve returned to a stable baseline configuration (login, email, and TLS certificates via Caddy all work).
Every time we re-enable file import/preview, upload and preview operations start to fail, and routing becomes unstable.
We need a clear and production-safe recipe to properly expose MinIO/S3 and the /preview endpoint.
Current Configuration (Summary)
Speckle 2.26.7 (server, frontend-2, preview-service, fileimport-service).
Reverse Proxy: Caddy with HTTPS running on the public domain.
Storage: MinIO; internal S3 endpoint at http://minio:9000, S3_PUBLIC_ENDPOINT not yet mapped to a public HTTPS subdomain.
Preview: Service running on the internal network; public route /preview not yet proxyed by Caddy at preview-service:3050.
CORS: Still needs to be aligned on the MinIO bucket for direct uploads.
What we’re asking for (initial guidance)
Confirm whether, for direct uploads, it’s recommended to expose MinIO on an HTTPS subdomain (e.g., s3.) behind Caddy, rather than using the legacy upload fallback.
Minimal routing configuration for /preview/* from Caddy → preview-service:3050 (when not using the default ingress on port :80).
Essential server/frontend environment variables to maintain stable MinIO uploads and previews behind a proxy (S3_PUBLIC_ENDPOINT, CORS, etc.).
Any known pitfalls (CORS/headers, host mapping, integrity checks) to avoid in version 2.26.7.
Attachments (sanitized)
env_sanitized.txt (extracted from our .env file, credentials redacted).
docker-compose.yml and docker-compose.override.yml currently in use.
We’ll be happy to provide logs, MinIO CORS configuration, and full Caddy snippets if needed.
Thank you so much for your time and support—it means a lot to us! Mario — SIT & SERVICE Soc. Coop.
.env (312 Bytes)
docker-compose.override.yml (1.1 KB)
docker-compose.yml (2.9 KB)