Docker Compose Generator

Generate a production-ready docker-compose.yml for phpVMS. Configure your services below and the output updates live.

docker-compose.yml
# phpVMS Docker Compose Configuration# Generated 7/22/2026, 3:40:55 PMservices:  app:    image: phpvms/phpvms:latest    restart: unless-stopped    user: "${WWWUSER:-1000}:${WWWGROUP:-1000}"    environment:      AUTORUN_ENABLED: "true"      AUTORUN_DEBUG: "false"      DISABLE_DEFAULT_CONFIG: "false"      OCTANE_HTTPS: "true"      PHP_OPCACHE_ENABLE: "1"      PHP_OPCACHE_VALIDATE_TIMESTAMPS: "0"      PHP_OPCACHE_MAX_ACCELERATED_FILES: "20000"      PHP_OPCACHE_INTERNED_STRINGS_BUFFER: "16"      PHP_OPCACHE_JIT: "tracing"      PHP_OPCACHE_JIT_BUFFER_SIZE: "64M"      XDG_DATA_HOME: "/var/www/html/storage"      XDG_CONFIG_HOME: "/var/www/html/storage"    command:      [        "php",        "/var/www/html/artisan",        "octane:start",        "--server=frankenphp",        "--host=0.0.0.0",        "--workers=auto",        "--max-requests=500",      ]    ports:      - "8080:8080"      - "8443:8443"    env_file:      - .env    volumes:      - phpvms_modules:/var/www/html/modules:ro      - phpvms_uploads:/var/www/html/public/uploads:rw      - phpvms_storage:/var/www/html/storage:rw    healthcheck:      test: ["CMD", "healthcheck-octane"]      start_period: 30s      interval: 30s      timeout: 5s      retries: 3  task:    image: phpvms/phpvms:latest    user: "${WWWUSER:-1000}:${WWWGROUP:-1000}"    restart: unless-stopped    command: ["php", "/var/www/html/artisan", "schedule:work"]    environment:      AUTORUN_ENABLED: "false"      PHP_OPCACHE_ENABLE: "1"    healthcheck:      test: ["CMD", "healthcheck-schedule"]      start_period: 10s    env_file:      - .env    volumes:      - phpvms_modules:/var/www/html/modules:ro      - phpvms_uploads:/var/www/html/public/uploads:rw      - phpvms_storage:/var/www/html/storage:rw  queue:    image: phpvms/phpvms:latest    user: "${WWWUSER:-1000}:${WWWGROUP:-1000}"    restart: unless-stopped    command: ["php", "/var/www/html/artisan", "queue:work", "--tries=3"]    environment:      AUTORUN_ENABLED: "false"      PHP_OPCACHE_ENABLE: "1"    healthcheck:      test: ["CMD", "healthcheck-queue"]      start_period: 10s    env_file:      - .env    volumes:      - phpvms_modules:/var/www/html/modules:ro      - phpvms_uploads:/var/www/html/public/uploads:rw      - phpvms_storage:/var/www/html/storage:rwvolumes:  phpvms_modules:  phpvms_storage:  phpvms_uploads:

Notes

  • The Octane server mode (default) keeps the Laravel framework booted across requests, improving performance for Filament and Livewire admin paths. Switch to FrankenPHP worker mode only if you encounter compatibility issues with Octane.
  • Database and Redis services are disabled by default. Enable them to run everything in a single compose stack, but for production consider using managed services (AWS RDS, ElastiCache, etc.).
  • Click Include .env file to generate a matching .env with your configuration, including an auto-generated APP_KEY.

On this page

No Headings