Docker Compose Generator
Generate a production-ready docker-compose.yml for phpVMS. Configure your
services below and the output updates live.
# 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
.envwith your configuration, including an auto-generatedAPP_KEY.