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(alias:-p; defaults to the current directory when omitted).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 option below to skip prompts:
# Create a VM environment
chien-dev create my-node --env vm --cpus 4 --memory 4G --disk 20G
# Create a Container with specific languages
chien-dev create my-dev --langs go,node --db postgres| Option | Values | Default |
|---|---|---|
--env, -e |
devcontainer, vm |
devcontainer |
--os, -o |
22.04, 24.04 |
22.04 |
--langs, -l |
go, node, python, java, php |
none |
--frontend, -f |
react, vue, none |
none |
--db, -d |
postgres, mysql, mongodb |
none |
--broker, -b |
redis, rabbitmq, kafka |
none |
--cpus, -c |
CPU count for VM mode | 2 |
--memory, -m |
Memory size for VM mode | 2G |
--disk, -s |
Disk size for VM mode | 10G |
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.
