Skip to main content
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:
  1. Completed the Getting Started guide
  2. A working Speckle server running with the basic configuration
  3. 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.
  1. Apply changes incrementally - Start with one service configuration at a time
  2. Test each section - Verify the server still works after each change
  3. Monitor resource usage - Watch memory and CPU consumption
  4. Keep your backup - You can always revert if something breaks
  5. Check logs - Look for errors in docker compose logs [service-name]
  6. 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.