LODEV is a local web development environment manager for containerized projects. It creates and manages project-specific Docker Compose stacks, configures local hostnames and TLS, and provides a single CLI for starting, stopping, inspecting, and extending your development environment.
- Manage local projects with one command line tool.
- Start, stop, restart, and power off projects and shared services.
- Use Composer inside the project web container.
- Open an interactive shell in the web container with
ssh. - Add custom commands from project or global command folders.
- Support for common project types such as PHP, Magento, Laravel, Symfony, Drupal, WordPress, Django, FastAPI, and Node.js.
- Docker Engine
- Docker Compose
- Docker Buildx
- mkcert for local HTTPS support
- Write permissions to modify the system hosts file for automatic hostname configuration
- MacOS & Linux:
sudo chown $(whoami) /etc/hosts - Windows:
C:\Windows\System32\drivers\etc\hosts
- MacOS & Linux:
brew tap namnh198/homebrew-lodev
brew install namnh198/lodev/lodevDownload the latest release archive for your platform from the releases page, extract it, and move the lodev binary to a directory in your PATH.
Because LODEV binarys are not signed, you may need to allow it to run on your system:
# macOS
xattr -d com.apple.quarantine /path/to/lodev
# Linux
chmod +x /path/to/lodev
# Windows
# No additional steps needed, but you may want to unblock the file in the properties dialog.If you build from source, you also need Go 1.26.2 or newer.
git clone https://github.com/namnh198/lodev.git
cd lodev
go build -o lodev .- Create or open a project directory.
- Initialize the project with LODEV.
- Start the environment.
lodev create
lodev startIf you want to name the project or choose a project type explicitly:
lodev create my-project --type=magentolodev start [projectname]
lodev stop [project-name]
lodev restart [projectname]
lodev show
lodev logs
lodev ssh
lodev composer <command>
lodev service
lodev service start
lodev service stop
lodev service restart
lodev poweroff
lodev upgradelodev startstarts the active project in the current directory when no project name is provided.lodev stopcan delete the project data with--delete.lodev sshopens a shell in the web container by default.lodev composerruns Composer inside the web container and starts the project automatically if needed.lodev servicemanages shared services and can list, add, remove, start, stop, or refresh the service registry.
LODEV can create projects using these types:
phpmagentoopenmagelaravelsymfonydrupalwordpresspythondjangofastapinodejs
If no type is specified, LODEV falls back to generic PHP.
LODEV stores global state in ~/.lodev/ and project state in the project directory.
- Global config:
~/.lodev/global_config.yaml - Project registry:
~/.lodev/project_list.yaml - Project config:
<project>/.lodev/config.yaml
You can edit the project config directly after creation if you need to adjust PHP, webserver, ports, extra hosts, environment variables, or connected services.
LODEV loads executable custom commands from these directories:
<project>/.lodev/commands~/.lodev/commands
Custom commands are grouped by service directory name. Host commands live in a host directory, while container commands are executed inside the matching service container.
See the repository for licensing details and sample project assets.