This guide shows how to enhance your Speckle server configuration beyond the basic
Getting Started setup. Start with the getting
started guide first, then use these proven, low-risk options to improve your server.
Why These Configurations Matter
- Domain settings - Required for production use with custom domains
- File import limits - Handle larger files and longer processing times
- Preview settings - Optimize performance for image generation
- Server security - Essential for production deployments
Development/Testing Only: Docker Compose is not recommended for production
deployments. Use Kubernetes or
other production deployment methods instead.
Before You Begin
Make sure you have:
- ✅ Completed the Getting Started guide
- ✅ A working Speckle server running with the basic configuration
- ✅ Backed up your current
docker-compose.yml file
Safety First: These configurations can break your server if applied
incorrectly. Always test changes incrementally and keep your backup ready.
Essential Security Improvements
Note: For security configuration, refer to the official Speckle server documentation for supported environment variables.
Frontend Configuration
Common tweaks for the web interface:
Ensure your domain is accessible before changing these URLs. Incorrect
values will break the frontend.
speckle-frontend-2:
# ... existing config from getting started ...
environment:
# ... existing environment variables ...
NUXT_PUBLIC_SERVER_NAME: 'My Speckle Server'
NUXT_PUBLIC_API_ORIGIN: 'http://speckle-server:3000'
NUXT_PUBLIC_BASE_URL: 'http://your-domain.com'
NUXT_PUBLIC_LOG_LEVEL: 'info'
Server Configuration
Common tweaks for the main server:
Critical settings. Incorrect values can break authentication, email, and
domain access. Test thoroughly.
speckle-server:
# ... existing config from getting started ...
environment:
# ... existing environment variables ...
PORT: '3000'
CANONICAL_URL: 'http://your-domain.com'
FRONTEND_ORIGIN: 'http://your-domain.com'
SESSION_SECRET: 'your-secure-random-secret'
EMAIL: 'true'
EMAIL_FROM: 'noreply@your-domain.com'
Preview Service Configuration
Common tweaks for preview generation:
Port 3001 must be available on your system. Change only if there’s a
conflict.
preview-service:
# ... existing config from getting started ...
environment:
# ... existing environment variables ...
PREVIEWS_HEADED: 'false'
PORT: '3001'
File Import Service Configuration
Common tweaks for file processing:
Test file imports after changing these values. Large files may fail if
limits are too low.
fileimport-service:
# ... existing config from getting started ...
environment:
# ... existing environment variables ...
FILE_IMPORT_TIME_LIMIT_MIN: '10'
MAX_OBJECT_SIZE_MB: '10'
Improved Service Dependencies
Enhance service startup reliability (requires Docker Compose v2.1+):
speckle-server:
# ... existing config ...
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
minio:
condition: service_started
Note: If you’re using an older Docker Compose version, use this simpler format
instead:
speckle-server:
# ... existing config ...
depends_on:
- postgres
- redis
- minio
Testing Your Changes
Never apply all changes at once. Test each section individually to isolate
any issues.
- Apply changes incrementally - Start with one service configuration at a time
- Test each section - Verify the server still works after each change
- Monitor resource usage - Watch memory and CPU consumption
- Keep your backup - You can always revert if something breaks
- Check logs - Look for errors in
docker compose logs [service-name]
- Verify functionality - Test the specific feature you’re configuring
If something breaks:
- Stop the services:
docker compose down
- Restore your backup:
cp docker-compose.yml.backup docker-compose.yml
- Restart:
docker compose up -d
Important: Always start with the Getting
Started guide first. These configurations
are proven safe but should still be tested in your environment.