chien-dev is a standardized development environment scaffolder. It supports both DevContainer (Docker) and Virtual Machine (Multipass) backends to help you provision and manage isolated development setups with ease.
- Dual Backend Support: Seamlessly toggle between Docker (DevContainer) and Virtual Machine (Multipass).
- Interactive Setup: Customize OS, languages, and services through a friendly CLI.
- Smart Resource Detection: Automatically suggests VM configurations based on host CPU/RAM/Disk.
- SSH Security: Automated SSH key management for VMs.
- Doctor Check: Built-in health checks for ports and dependencies.
The easiest way to install chien-dev globally is via our install script:
curl -fsSL https://raw.githubusercontent.com/pong1013/dev-environment-setup/main/install.sh | bash(The script will automatically detect your OS and prompt to install missing dependencies like Docker or Multipass).
If you skipped the automatic dependency installation, please manually install:
- Docker Desktop (for Container mode)
- Multipass (optional, for VM mode)
chien-dev doctor
chien-dev create <NAME>
chien-dev start <NAME> PROJECT=/abs/path/to/repo
chien-dev statuschien-dev help: Show command usage and examples.chien-dev create <name>: Create a named environment (interactive or via env vars).chien-dev start <name> PROJECT=/path: Start environment and mount project to/workspace.chien-dev status [name]: Show all statuses or a specific environment's info.chien-dev shell <name>: Enter workspace container bash (Container mode) or show SSH instructions (VM mode).chien-dev stop <name>: Stop the environment.chien-dev clean <name>: Safely remove the environment and its generated files.
Pass any variable below to skip prompts:
# Create a VM environment
ENV=vm VM_CPUS=4 VM_MEM=4G chien-dev create my-node
# Create a Container with specific languages
chien-dev create my-dev LANGS=go,node DB=postgres| Key | Values | Default |
|---|---|---|
ENV |
devcontainer, vm |
devcontainer |
OS |
22.04, 24.04 |
22.04 |
LANGS |
go, node, python, java, php |
none |
FRONTEND |
react, vue |
none |
DB |
postgres, mysql, mongodb |
none |
BROKER |
redis, rabbitmq, kafka |
none |
After chien-dev start <NAME>, you can verify the setup:
# For Container Mode:
chien-dev shell <NAME>
go version # (or node --version, etc.)
# For VM Mode:
# Run the SSH command shown in 'chien-dev status'
ssh ubuntu@<VM_IP>scripts/commands/: CLI command handlers.scripts/generators/: Configuration renderers (container_render.sh,vm_render.sh).scripts/modules/: Shared logic fordocker.sh,vm.sh, andnetwork.sh.
Distributed under the MIT License.
