Playbook
VIBE provides the vibe.yml playbook to deploy Code-Server, JupyterLab, Node.js, Claude Code, and Codex CLI.
vibe.ymlincludes onlynode_idandviberoles, it does not includenode/infra. Rundeploy.ymlfirst, or explicitly runnode.ymlandinfra.yml.
vibe.yml
- name: VIBE
hosts: all
become: true
gather_facts: no
roles:
- { role: node_id, tags: id }
- { role: vibe, tags: vibe }
Task Structure
vibe
├── vibe_dir # create workspace and context files
├── code # Code-Server
│ ├── code_install
│ ├── code_dir
│ ├── code_config
│ └── code_launch
├── jupyter # JupyterLab
│ ├── jupyter_install
│ ├── jupyter_dir
│ ├── jupyter_config
│ └── jupyter_launch
├── nodejs # Node.js runtime and additional npm packages
│ ├── nodejs_install
│ ├── nodejs_config
│ └── nodejs_pkg
├── codex # Codex CLI
│ └── codex_install
└── claude # Claude Code
├── claude_install
└── claude_config
Notes:
jupyter_installusesuv pip, it does not create venvnodejs_pkginstalls only the additional packages declared innpm_packages; the list is empty by defaultclaude_installinstalls Claude CLI withclaude_package, whileclaude_configwrites the~/.claudeconfigurationcodex_installinstalls@openai/codexand does not manage Codex configuration
Common Commands
Full deploy:
./vibe.yml -l <host>
Component-level:
./vibe.yml -l <host> -t code
./vibe.yml -l <host> -t jupyter
./vibe.yml -l <host> -t nodejs
./vibe.yml -l <host> -t claude
./vibe.yml -l <host> -t codex
Config updates:
./vibe.yml -l <host> -t code_config,code_launch
./vibe.yml -l <host> -t jupyter_config
ssh <host> sudo systemctl restart jupyter
./vibe.yml -l <host> -t claude_config
Skip components for this run:
./vibe.yml -l <host> -e code_enabled=false
./vibe.yml -l <host> -e jupyter_enabled=false
./vibe.yml -l <host> -e nodejs_enabled=false
./vibe.yml -l <host> -e claude_enabled=false
./vibe.yml -l <host> -e codex_enabled=false
These switches are task conditions. Setting one to false only skips the corresponding installation and configuration tasks; it does not stop, disable, or uninstall a service or package deployed earlier. To retire Code-Server or JupyterLab, run systemctl disable --now code-server or systemctl disable --now jupyter separately. VIBE currently has no dedicated removal playbook.
Node.js is a runtime dependency of Claude Code and Codex CLI. If nodejs_enabled=false but either claude_enabled or codex_enabled remains true, the nodejs phase still runs. It is skipped only when all three switches are false.
Deployment Order
./deploy.yml # deploy NODE, INFRA, ETCD, MINIO, and PGSQL defined in the inventory
./juice.yml # optional shared storage
./vibe.yml # VIBE
Idempotency
vibe.yml is idempotent. Re-run after config changes.
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.