vibe
The vibe config template provides a ready-to-use AI coding sandbox, integrating Code-Server (Web VS Code), JupyterLab, Claude Code observability, Codex CLI, JuiceFS distributed filesystem, and a feature-rich PostgreSQL database.
Overview
- Config Name:
vibe - Node Count: Single node
- Description: VIBE AI coding sandbox with Code-Server + JupyterLab + Claude Code + Codex CLI + JuiceFS + PostgreSQL
- OS Distro:
el8,el9,el10,d12,d13,u22,u24,u26 - OS Arch:
x86_64,aarch64 - Related:
meta
Usage:
Content
Source: pigsty/conf/vibe.yml
Explanation
The vibe template is an AI-era Web coding sandbox, enabling development, data analysis, AI app building all in browser.
Core Components:
| Component | Description | Access Method |
|---|---|---|
| Code-Server | Web version of VS Code, full-featured code editor | http://<ip>/code |
| JupyterLab | Interactive data science notebook, Python/SQL | http://<ip>/jupyter |
| Claude Code | AI coding runtime and observability entrypoint (claude_env customizable) |
Terminal / Dashboard |
| Codex CLI | OpenAI agentic coding CLI; VIBE installs it but does not manage its configuration | Terminal |
| JuiceFS | PostgreSQL-based distributed filesystem | Mount point /fs |
| PostgreSQL 18 | Feature-rich database with pg18-main + categorized extension package groups |
Port 5432 |
Node tools explicitly installed by this template (node_packages):
openssh-server,juicefs,restic,rcloneuv,opencode,golangasciinema,tmux
PostgreSQL Extensions:
This template installs PostgreSQL 18 extension groups by category:
By default, the meta database enables postgis, timescaledb, and vector; other extensions can be enabled as needed.
VIBE Module Components
The VIBE module provides AI coding sandbox capability; vibe.yml explicitly enables Code-Server and Jupyter and installs Claude Code and Codex CLI by default.
Code-Server: VS Code in browser
- Full VS Code functionality, extension support
- HTTPS access via Nginx reverse proxy
- Supports Open VSX and Microsoft extension marketplaces
- Explicit template params:
code_enabled,code_password - Optional params:
code_port,code_data,code_gallery
JupyterLab: Interactive computing environment
- Python/SQL/Markdown notebook support
- Pre-configured Python venv with data science libraries
- HTTPS access via Nginx reverse proxy
- Explicit template params:
jupyter_enabled,jupyter_password - Optional params:
jupyter_port,jupyter_data,jupyter_venv
Claude Code: AI coding assistant runtime
- Uses module default behavior to bootstrap Claude runtime
- Supports endpoint/API key overrides through
claude_env - Provides
claude-codedashboard for usage monitoring
Codex CLI: AI coding assistant
- Controlled by
codex_enabled, which defaults totrue - VIBE installs
@openai/codexonly; it does not write Codex configuration or connect Codex to the Claude Code dashboard
JuiceFS Filesystem
This template uses JuiceFS for distributed filesystem capability, with a special feature: both metadata and data stored in PostgreSQL.
Architecture Features:
- Metadata Engine: Uses PostgreSQL for filesystem metadata storage
- Data Storage: Uses PostgreSQL Large Object for file data storage
- Mount Point: Default mount at
/fs(controlled byjuice_instances.jfs.path) - Monitoring Port:
9567provides Prometheus metrics
Use Cases:
- Persistent storage for code projects
- Working directory for Jupyter Notebooks
- Storage for AI models and datasets
- File sharing across instances (when scaled to multiple nodes)
Config Example:
Deployment Steps
Access Methods
After deployment, access via browser:
Use Cases
- AI App Development: Build RAG, Agent, LLM applications
- Data Science: Use JupyterLab for data analysis and visualization
- Remote Development: Setup Web IDE environment on cloud servers
- Teaching Demos: Provide consistent dev environment for students
- Rapid Prototyping: Quickly validate ideas without local env setup
- Claude Code Observability: Monitor AI coding assistant usage
Notes
- Must change passwords:
code_passwordandjupyter_passworddefaults are for testing only - Jupyter boundary: The template listens on
0.0.0.0:8888, allows any Origin, disables XSRF checks, and relies on the token by default; restrict the port and portal sources and never expose it directly to the Internet - Network security: This template exposes
5432(node_firewall_public_port) and includesaddr: worldHBA by default; remove those public paths for production and add portal Basic Auth when appropriate - Resource requirements: Recommend at least 2 cores 4GB memory, SSD disk
- Simplified architecture: This template disables Patroni, PgBouncer etc HA components, suitable for single-node dev env
- Claude API: Using Claude Code requires configuring API key in
claude_env