Skip to content

ManthanBhatt/dev-launch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚡ DevLaunch

A lightweight, single-file PHP dev server manager with a Vercel-inspired UI.
Add your local projects, launch them on custom ports, monitor logs — all from one browser tab.

DevLaunch Screenshot


✨ Features

  • Single file — drop one index.php anywhere served by PHP, nothing to install
  • Add & manage projects — browse your filesystem server-side to pick any project folder; name is auto-detected from the folder
  • Custom commands — run any dev command per project: ionic s, npm run dev, ng serve, vite, php artisan serve, etc.
  • Custom ports — assign a port per project; --port flag is auto-appended if not already in your command
  • Start / Stop — launches commands as detached background processes with full process tree kill on stop
  • Live log viewer — tail real-time stdout/stderr output from any running project
  • Running detection — auto-detects if a process is already running (survives page refreshes)
  • Vercel-inspired dark UI — clean, minimal, fast
  • Windows + Linux + macOS — works on all platforms via XAMPP, Laragon, built-in PHP server, etc.

🚀 Quick Start

Requirements

  • PHP 7.4+
  • proc_open must be enabled in php.ini (it is by default in most setups)
  • A local web server (XAMPP, Laragon, php -S, etc.)

Installation

# Clone the repo
git clone https://github.com/ManthanBhatt/devlaunch.git

# Move into your web server's document root, e.g.:
cp -r devlaunch/ C:/xampp/htdocs/devlaunch/
# or
cp -r devlaunch/ /var/www/html/devlaunch/

Then open your browser:

http://localhost/devlaunch/

That's it. No composer, no npm, no build step.

Using PHP's built-in server

cd devlaunch
php -S localhost:8080
# Open http://localhost:8080

📖 Usage

Adding a Project

  1. Click Add Project in the top-right
  2. Click the 📁 folder icon to browse your filesystem and navigate to your project folder
  3. Click Select on the target folder — the project name is taken from the folder name automatically
  4. Set your command (e.g. ionic s, npm run dev, ng serve --open)
  5. Set the port number
  6. Click Add Project

Starting a Project

Click the Start button on any project card. The command runs as a detached background process. The card updates to show:

  • ● Running status (animated green dot)
  • PID and start time
  • Clickable :PORT ↗ link to open in browser

Viewing Logs

Click Logs on any running project to open the live log drawer at the bottom of the screen. Output auto-refreshes every 2 seconds.

Stopping a Project

Click Stop — this kills the process and its entire child tree (e.g. cmd.exenode.exe → ionic subprocess on Windows).


⚙️ Configuration

All project data is stored in two JSON files created automatically next to index.php:

File Purpose
devlaunch_data.json Project definitions (name, path, command, port)
devlaunch_pids.json Runtime state (PID, port, start time, log path)

These are plain JSON — you can edit them manually if needed.


🔧 Troubleshooting

proc_open disabled error

Check if proc_open is in the disable_functions list in your php.ini:

php -r "echo ini_get('disable_functions');"

If it appears, remove it from disable_functions in php.ini and restart your web server.

XAMPP on Windows: Edit C:\xampp\php\php.ini
Linux: Edit /etc/php/8.x/apache2/php.ini or /etc/php/8.x/cli/php.ini

Command not found (ionic, ng, npm)

Make sure the command is available in your system PATH. You can verify with:

# Windows
where ionic

# Linux / macOS
which ionic

If using nvm or a version manager, ensure the correct Node version is active in your shell environment.

Port already in use

If a project shows as stopped but the port is still occupied, another process may be holding it:

# Windows
netstat -ano | findstr :8101

# Linux / macOS
lsof -i :8101

Project shows "Running" after system restart

PIDs don't survive a reboot. Hit Refresh — DevLaunch will detect the process is gone and update the status automatically.


🗂️ Project Structure

devlaunch/
├── index.php              # Entire application (PHP backend + HTML/CSS/JS frontend)
├── devlaunch_data.json    # Auto-created: project definitions
├── devlaunch_pids.json    # Auto-created: runtime PID state
├── LICENSE
└── README.md

🤝 Contributing

Contributions are welcome! Here's how:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Commit your changes: git commit -m 'Add my feature'
  4. Push to the branch: git push origin feature/my-feature
  5. Open a Pull Request

Ideas for contributions

  • Dark/light theme toggle
  • Project grouping / tags
  • Environment variable editor per project
  • Auto-restart on crash
  • Multiple commands per project (e.g. frontend + backend together)
  • Export/import project list
  • Notification when a server crashes

📄 License

MIT License — see LICENSE for details.


Made with ☕ by Manthan Bhatt

About

⚡ Tired of juggling terminal tabs? DevLaunch lets you start, stop & monitor all your local dev servers from one clean browser dashboard.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages