简体中文 | English
Docker image based on Ubuntu 24.04 LTS, pre-installed with OpenCode and Vibe-Kanban, along with related OpenCode plugins.
- OpenCode: Open-source AI programming agent
- Claude Code: Claude AI code editor (pre-installed)
- Vibe-Kanban: Project management tool
- Docker: Full Docker engine with Docker Compose support (Docker-in-Docker)
- SSH: SSH server for remote access
- Programming Languages: Pre-installed development environments
- Go: Golang development environment
- Rust: Rust toolchain and cargo package manager
- Node.js 20: Installed via NodeSource repository
- Python 3: Includes pip package manager
- Conda: Package and environment manager (envs stored in
/app/conda-env/)
- Git: Version control system
- Build tools: build-essential toolchain
The following plugins are installed and can be used in OpenCode:
- oh-my-opencode: OpenCode enhancements (GitHub)
- superpowers: OpenCode superpowers (GitHub)
- playwright-mcp: Playwright MCP server (GitHub)
- agent-browser: Agent browser (GitHub)
- chrome-devtools-mcp: Chrome DevTools MCP server (GitHub)
| Port | Service | Description |
|---|---|---|
| 2046 | OpenCode | OpenCode Web server |
| 3927 | Vibe-Kanban | Vibe-Kanban Web interface |
| 2027 | Reserved | For user custom services |
| 2211 | SSH | SSH server for remote access |
| Host Path | Container Path | Description |
|---|---|---|
./project |
/home/user/project |
Default working directory, project files stored here |
./vibe-kanban |
/var/tmp/vibe-kanban |
Vibe-Kanban data directory |
./app |
/app |
Application directory |
/var/run/docker.sock |
/var/run/docker.sock |
Docker socket for Docker-in-Docker |
- Docker 20.10 or higher
- Docker Compose 2.0 or higher
- Clone or download this repository locally
git clone <repository-url>
cd <repository-directory>- Start the service
docker compose up -d- Access the services
- OpenCode: http://localhost:2046
- Vibe-Kanban: http://localhost:3927
docker build -t successage/opencode-vibe-kanban-docker:latest .
docker run -d \
--name opencode-vibe \
--privileged \
-p 2046:2046 \
-p 3927:3927 \
-p 2027:2027 \
-p 2211:2211 \
-v $(pwd)/project:/home/user/project \
-v $(pwd)/vibe-kanban:/var/tmp/vibe-kanban \
-v $(pwd)/app:/app \
-v /var/run/docker.sock:/var/run/docker.sock \
successage/opencode-vibe-kanban-docker:latest/home/user/project is the default working directory. Place your project files in the ./project directory, and they will be automatically available in the container.
The OpenCode server starts automatically when the container starts, listening on port 2046.
When starting OpenCode for the first time, you will see a warning message:
! OPENCODE_SERVER_PASSWORD is not set; server is unsecured.
This is expected behavior. If secure access is needed, you can set the environment variable OPENCODE_SERVER_PASSWORD in docker-compose.yml.
The Vibe-Kanban server starts automatically when the container starts, listening on port 3927.
Claude Code is pre-installed and ready to use. Configuration files will be automatically synced between the container and host (./userdata/.claude.json and ./userdata/.claude/).
First-time setup:
# 1. Start the container
docker-compose up -d
# 2. Connect to container via SSH
ssh -p 2211 user@localhost
# Password: pwd4user
# 3. Run Claude Code (will prompt for login on first run)
claude
# 4. Configuration files will be automatically saved to ./userdata/Subsequent usage:
Configuration persists across container restarts. Simply run claude after connecting via SSH.
The SSH server starts automatically when the container starts, listening on port 2211.
Connection details:
- Host: localhost (or your server IP)
- Port: 2211
- Username: user
- Password: pwd4user
ssh -p 2211 user@localhostThe container includes a full Docker installation that starts automatically. This allows you to run and manage Docker containers from within the container.
Docker configuration:
- Storage driver: fuse-overlayfs (required for running Docker inside containers)
- Custom network configuration to avoid conflicts with host:
- Bridge IP: 192.168.200.1/24
- Default address pools: 10.200.0.0/16
- MTU: 1400
- Data directory: /app/docker-data
Docker Compose:
Both docker compose and docker-compose commands are available.
Note: For Docker-in-Docker to work properly, the container must be started in privileged mode and the Docker socket must be mounted. These are configured in docker-compose.yml.
Port 2027 is reserved for users to start their own services. For example:
docker exec -it opencode-vibe bash
cd /home/user/project
python -m http.server 2027Then access your service at http://localhost:2027.
docker compose downdocker compose logs -fdocker exec -it opencode-vibe bashIf you see an "address already in use" error, the port is already occupied. You can:
- Stop the process occupying the port
- Or modify the port mappings in
docker-compose.yml
If you encounter file permission issues in the container, you can adjust the host directory permissions:
chmod -R 755 project vibe-kanbandocker compose restart- Build size: ~832MB
- Base image: Ubuntu 24.04 LTS
docker compose build --no-cachedocker compose down
docker system prune -aSoftware components included in this image follow their respective licenses:
- OpenCode documentation: https://opencode.ai/docs
- OpenCode GitHub: https://github.com/anomalyco/opencode
- Vibe-Kanban GitHub: https://github.com/BloopAI/vibe-kanban
- Port conflicts: Default ports 2046, 3927, 2027, and 2211 may be occupied by other services. Please ensure these ports are available or modify the port mappings.
- Data persistence: All data is saved to the host via volume mappings. Deleting the container will not lose data.
- Security: By default, the OpenCode server has no password set. In production, please set the
OPENCODE_SERVER_PASSWORDenvironment variable. - SSH security: The default SSH password (pwd4user) should be changed in production environments. You can modify it by rebuilding the image with a custom configuration.
- Docker-in-Docker: Running Docker inside Docker requires privileged mode and Docker socket mounting, which are configured in docker-compose.yml. This setup is suitable for development but should be carefully evaluated for production use.
- Playwright browser: The Playwright Chromium browser is pre-installed and ready to use.
- Add Docker engine with Docker-in-Docker support
- Add SSH server for remote access (port 2211, user/pwd4user)
- Configure Docker for container environment (fuse-overlayfs, custom network)
- Add Docker init script for service management
- Update docker-compose.yml with privileged mode and Docker socket mount
- Add app volume mapping (./app → /app)
- Update documentation for SSH and Docker features
- Initial release
- Install OpenCode 1.1.33
- Install Vibe-Kanban
- Pre-install 5 OpenCode plugins (oh-my-opencode, superpowers, playwright-mcp, agent-browser, chrome-devtools-mcp)
- Configure dual service startup scripts
- Port mappings: 2046 (OpenCode), 3927 (Vibe-Kanban), 2027 (custom)
- Volume mapping support for project persistence