Run legacy and modern PHP and Node.js apps side by side with isolated runtimes, bundled services, and zero Docker setup.
Maintaining an old PHP 7.4 project while building a new Laravel 11 app on PHP 8.5? Running a Next.js frontend alongside a PHP backend? DevBox Pro is built for exactly that workflow. It lets you run multiple PHP, Node.js, database, and web server versions at the same time, with per-project configuration, automatic local domains, compatibility warnings, and bundled tooling.
DevBox Pro is an Electron desktop app with a React renderer and a Node.js main process. It manages PHP, Node.js, MySQL, MariaDB, Redis, Nginx, Apache, PostgreSQL, MongoDB, MinIO, Memcached, Mailpit, phpMyAdmin, Composer, Git, and more from one local interface.
Version 1.0.6: This release focuses on web server hardening and the new Share on Internet option powered by Cloudflare Tunnel and zrok.
Important: DevBox Pro is built for local development, testing, demos, and temporary preview links. It is not intended for production hosting or production traffic.
- PHP 7.4, 8.0, 8.1, 8.2, 8.3, 8.4, 8.5 - Run multiple versions side by side
- Per-project PHP version selection with compatibility validation
- Easy extension management per version with php.ini editor
- Pre-configured for optimal performance
- Node.js 16, 18, 20, 22, 24 - Run pure Node.js applications
- Per-project Node.js version selection
- Automatic proxy through Nginx/Apache for
.testdomains - Run Express, Next.js, Nuxt, or any Node.js framework
- Nginx 1.24, 1.26, 1.28 - High-performance, low memory footprint (recommended)
- Apache 2.4 - Full .htaccess support, mod_rewrite included
- Front-door ownership and automatic proxying between Nginx and Apache
- Automatic virtual host creation
- HTTP & HTTPS support for every project
| Service | Versions | Description |
|---|---|---|
| MySQL | 5.7, 8.0, 8.4 | Powerful relational database |
| MariaDB | 10.6, 10.11, 11.4 | MySQL-compatible, open source |
| Redis | 6.2, 7.2, 7.4 | In-memory cache & session storage |
| PostgreSQL | 14, 15, 16, 17 | Advanced relational database |
| MongoDB | 6.0, 7.0, 8.0 | Document database |
| Memcached | 1.6 | Distributed memory caching |
| MinIO | Latest | S3-compatible object storage |
| Mailpit | Latest | Email testing with SMTP server |
| phpMyAdmin | Latest | Web-based database management |
| Node.js | 16, 18, 20, 22, 24 (LTS) | JavaScript runtime for projects & tooling |
| Python | 3.10, 3.11, 3.12, 3.13 | Runtime for project tooling and workers |
| SQLite | 3 | Embedded database runtime |
| Composer | Latest | PHP dependency manager |
- Multi-engine support - MySQL, MariaDB, PostgreSQL, and MongoDB workflows
- Per-version data isolation - Each version has its own data directory
- Database import/export with
.sql,.gz, PostgreSQL, and MongoDB flows - Progress tracking for import/export operations
- phpMyAdmin integration for web-based management
- Automatic database creation per project
- Automatic SSL certificate generation
- Wildcard certificate support
- One-click certificate trust
.testdomain support (e.g.,myproject.test)
- Share a running project publicly with Cloudflare Tunnel or zrok
- Per-project Share on Internet toggle with optional auto-start tunnel when the project starts
- Works with both Nginx and Apache projects, including mixed front-door proxy setups
- Tunnel proxy rewrites redirects, cookies, and absolute local
.testURLs so public sessions stay on the tunnel hostname - Cloudflare Quick Tunnels use random
*.trycloudflare.comURLs - zrok requires a one-time app-wide enable token in Binary Manager β Tools
- Built for previews and reviews, not for production deployment
- Laravel - Full support with Artisan, Queue Workers, Scheduler
- Symfony - Console commands, Doctrine integration
- WordPress - WP-CLI ready, Multisite support
- Custom PHP - Works with any PHP application
- Node.js - Express, Next.js, Nuxt, Fastify, or any Node.js app
- Download individual components - Only install what you need
- Multi-version management - Keep multiple versions installed
- One-click updates - Easy version upgrades
- Import custom binaries - Use your own compiled versions
- Remote definitions - Binary metadata and compatibility rules can be updated without shipping a new app build
- Remote binary definitions - New versions available without app update
- Compatibility rules sync - Updated version compatibility warnings
- One-click update check - Check for new binaries and rules from Settings
- Offline fallback - Built-in defaults when offline
- Version tracking - Only download when updates are available
- Direct command access - Use
php,npm,node,composer,mysql,mysqldump, and related tools directly from any terminal - Automatic version detection - Detects your project and uses the correct PHP/Node.js version
- Works everywhere - VS Code, Windows Terminal, PowerShell, or any terminal emulator
- No prefix needed - Just run
php artisan migrateinstead of complex paths - Prevents version conflicts - No more "wrong PHP version" issues
- Real-time log streaming per project and service
- Color-coded log levels (info, warning, error)
- Log file rotation and cleanup
- Service resource monitoring
- Service version selection per project
- Compatibility validation - Warns about incompatible combinations
- Binary validation - Checks required binaries before project start
- php.ini editor - Customize PHP settings per version
- Download the latest release for your platform:
- Windows:
DevBox-Pro-Setup-1.0.6.exe - macOS:
DevBox-Pro-1.0.6.dmg
-
Install the application
-
Download binaries from the Binary Manager:
- Click "Download All" for the full stack, or
- Select individual components as needed
- Click "+ New Project" on the Dashboard
- Select your project type (Laravel, Symfony, WordPress, Custom PHP, or Node.js)
- Choose project folder and PHP/Node.js version
- Configure services (MySQL, Redis, etc.)
- Set your domain (e.g.,
myproject.test) - Click Create and you're ready!
- Open the project detail page and enable Share on Internet
- Choose Cloudflare Tunnel or zrok as the provider
- Optionally enable Auto-start tunnel if the project should publish automatically on startup
- Start the project, then click Start Sharing
- Use the generated public URL to access the project from outside your local machine
Provider notes: Cloudflare uses disposable random public URLs on
trycloudflare.com. zrok requires a one-time app-wide enable step before any project can use it.
Production note: Tunnel sharing is intended for temporary previews, QA, and stakeholder review. Do not use DevBox Pro as a production hosting platform.
DevBox Pro lets you use php, npm, node, composer, mysql, and mysqldump directly from any terminal with automatic project version detection:
- Go to Settings > CLI Tool in DevBox Pro
- Enable "Terminal commands"
- Restart your terminal or VS Code
Usage examples:
# Navigate to your project folder
cd C:\Projects\my-laravel-app
# Run PHP with project-specific version (auto-detected)
php artisan migrate
php artisan optimize
# Run Composer with correct PHP version
composer install
composer update
# Run Node.js/npm with project version (if enabled)
npm install
npm run dev
npx vite build
# Connect to MySQL/MariaDB using the active database version
mysql -u root
mysql -u root -p mydb < migration.sql
mysqldump -u root mydb > backup.sqlHow it works: When you run
php,mysql, ornpmfrom a project directory, DevBox Pro automatically uses that project's configured version. Outside a project, it uses your default version set in Settings.
- Node.js 24+
- npm
- Git
# Clone the repository
git clone https://github.com/JeffGepiga/DevBoxPro.git
cd DevBoxPro
# Install dependencies
npm install
# Start the Electron app with the Vite renderer dev server
npm run dev
# Build the renderer bundle only
npm run build:renderer
# Build platform packages
npm run build:win
npm run build:mac
npm run build:allThe renderer dev server runs at http://localhost:3000.
DevBox Pro includes unit, integration, and end-to-end coverage.
# Run all tests
npm test
# Run only main process tests
npm run test:main
# Run only renderer process tests
npm run test:renderer
# Run End-to-End (E2E) tests
npm run test:e2eThe test suite covers the main-process managers, the renderer, and Playwright end-to-end scenarios for project creation, binaries, databases, SSL, and settings persistence.
DevBoxPro/
βββ src/
β βββ main/ # Electron main process
β β βββ services/
β β β βββ BinaryDownloadManager.js # Thin facade for binary downloads and extraction
β β β βββ CliManager.js # Thin facade for terminal integration
β β β βββ CompatibilityManager.js # Thin facade for compatibility rules and updates
β β β βββ DatabaseManager.js # Thin facade for multi-engine DB operations
β β β βββ GitManager.js # Thin facade for Git clone and SSH workflows
β β β βββ ProjectManager.js # Thin facade for project lifecycle and vhosts
β β β βββ ServiceManager.js # Thin facade for service lifecycle and config generation
β β β βββ SupervisorManager.js # Thin facade for worker and process supervision
β β β βββ binary/ # Binary manager mixins
β β β βββ cli/ # CLI manager mixins
β β β βββ compatibility/ # Compatibility manager mixins
β β β βββ database/ # Database manager mixins
β β β βββ git/ # Git manager mixins
β β β βββ project/ # Project manager mixins
β β β βββ service/ # Service manager mixins
β β β βββ supervisor/ # Supervisor manager mixins
β β β βββ ...
β β βββ ipc/
β β β βββ handlers.js # IPC communication
β β βββ utils/
β β β βββ ConfigStore.js # Configuration storage
β β β βββ PortUtils.js # Port probing and process lookup
β β β βββ SpawnUtils.js # Safer child-process helpers
β β βββ preload.js # Preload script
β β βββ main.js # Main entry
β β
β βββ renderer/ # React frontend
β βββ src/
β β βββ components/ # Reusable components
β β β βββ Sidebar.jsx
β β β βββ PhpIniEditor.jsx
β β β βββ XTerminal.jsx
β β β βββ ...
β β βββ pages/ # Page components
β β β βββ Dashboard.jsx
β β β βββ Projects.jsx
β β β βββ ProjectDetail.jsx
β β β βββ Databases.jsx
β β β βββ Services.jsx
β β β βββ BinaryManager.jsx
β β β βββ Settings.jsx
β β β βββ ...
β β βββ context/ # React context
β β β βββ AppContext.jsx
β β βββ App.jsx # Root component
β βββ index.html
β
βββ resources/ # App resources (icons, configs)
βββ config/ # Remote configuration files
β βββ binaries.json # Binary download definitions
β βββ compatibility.json # Version compatibility rules
β βββ README.md # Config contribution guide
βββ screenshots/ # App screenshots
βββ build/ # Build resources
βββ electron-builder.config.js # Electron builder config
βββ package.json
βββ README.MD
| Service | Default Port |
|---|---|
| PHP Projects | 8000+ (auto-assigned) |
| MySQL | 3306 |
| MariaDB | 3310 |
| Redis | 6379 |
| PostgreSQL | 5432 |
| MongoDB | 27017 |
| Memcached | 11211 |
| MinIO API | 9000 |
| MinIO Console | 9001 |
| Mailpit SMTP | 1025 |
| Mailpit Web | 8025 |
| phpMyAdmin | 8080 |
| Nginx HTTP | 80 |
| Nginx HTTPS | 443 |
| Apache HTTP | 8081 when Apache is not the front-door server |
| Apache HTTPS | 8444 when Apache is not the front-door server |
Web server ownership is dynamic. The first active web server can claim ports 80 and 443, while the other is assigned alternate ports and proxied automatically.
Projects can use .env files with these pre-configured variables:
APP_ENV=local
APP_DEBUG=true
APP_URL=http://myproject.test
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=myproject
DB_USERNAME=root
DB_PASSWORD=
CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=127.0.0.1
MAIL_PORT=1025- Electron 40 - Cross-platform desktop framework
- React 19 - UI library
- Vite 7 - Build and dev server
- TailwindCSS 4 - Styling pipeline
- Vitest - Unit and integration testing
- Playwright - End-to-end testing
- electron-builder - Distribution packaging
- Multi-PHP version support (7.4 - 8.5)
- MySQL & MariaDB multi-version support
- Redis multi-version integration
- Nginx & Apache multi-version web servers
- Automatic SSL certificates
- Virtual host management
- Node.js & npm multi-version support
- Pure Node.js project support (Express, Next.js, etc.)
- Composer integration
- Database import/export with compression
- Per-project service version selection
- Binary validation before project start
- php.ini editor
- Real-time log streaming
- Cloud config updates (binaries & compatibility rules)
- PostgreSQL support
- MongoDB support
- Project templates
- Git clone integration with SSH key management
- Supervisor process management (queues, workers, schedulers)
- Bulk project and service stop
- Front-door proxy for Nginx/Apache co-existence
- Docker container support
- Extension marketplace
- Cloud sync settings
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- π§ Email: jeffreygepiga27@gmail.com
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
Made with β€οΈ for PHP & Node.js developers