Skip to content

Upgrade Guide

siamakerlab edited this page May 23, 2026 · 5 revisions

Upgrade Guide

Standard upgrade (data preserved):

cd ~/vibe-coder
docker compose pull
docker compose up -d --force-recreate
docker compose logs -f vibe-coder-server   # watch boot output

This is safe for any v0.7.0 → newer transition. The unified ./vibe-coder-data/ layout means workspace, DB, SDK, Gradle cache, MCP servers, Playwright browsers, Claude auth all survive.

Version-specific notes

v0.6.x → v0.7.0 (volume restructuring)

Pre-0.7.0 used Docker named volumes (vibe-android-sdk, vibe-gradle-cache) and put MCP servers in image layers. v0.7.0 routes everything to bind mounts under ./vibe-coder-data/. Existing users must migrate.

Option 1 — clean restart (recommended, 5-15 min)

cd ~/vibe-coder
docker compose down                      # named volumes preserved
curl -fsSL https://raw.githubusercontent.com/siamakerlab/vibe-coder-server/main/docker/compose.yml -o compose.yml
curl -fsSL https://raw.githubusercontent.com/siamakerlab/vibe-coder-server/main/docker/.env.example -o .env
# Edit .env to set VIBE_DATA_ROOT (default ./vibe-coder-data)
docker compose up -d
# Browser → /env-setup → "Install/update all"  (re-downloads SDK)

Option 2 — copy existing named-volume data (saves SDK re-download)

cd ~/vibe-coder
docker compose down

# Android SDK
docker run --rm \
    -v vibe-coder_vibe-android-sdk:/from \
    -v "$(pwd)/vibe-coder-data/dev-tools/android-sdk":/to \
    alpine sh -c 'cp -a /from/. /to/'

# Gradle cache
docker run --rm \
    -v vibe-coder_vibe-gradle-cache:/from \
    -v "$(pwd)/vibe-coder-data/dev-tools/gradle":/to \
    alpine sh -c 'cp -a /from/. /to/'

# Claude auth (if you had ~/.claude mounted, keep it; or migrate)
cp -a ~/.claude vibe-coder-data/claude

# New compose.yml + boot
curl -fsSL .../compose.yml -o compose.yml
docker compose up -d

# After confirming everything works, delete old named volumes
docker volume rm vibe-coder_vibe-android-sdk vibe-coder_vibe-gradle-cache

MCP servers must be reinstalled in both options — they used to live in the image's /usr/local/lib/node_modules/ and don't exist in named volumes. v0.8.0's MCP catalog UI makes this a one-click affair.

v0.7.x → v0.8.0 (MCP catalog)

Server-side change only. Existing MCPs registered in .mcp.json continue to work. The new /env-setup/mcp page reads existing entries and lets you add 60+ more.

v0.8.0 → v0.8.1 (Ubuntu noble base)

Just docker compose pull && up -d --force-recreate. New container is Ubuntu 24.04 LTS; vibe user UID/GID 1000 is preserved.

v0.8.x → v0.10.0 (wire change)

Two new APIs:

  • RegisterProjectRequestDto gained sourceType/cloneUrl/cloneBranch fields (all optional, default empty). Old clients still work.
  • 19 new /api/env-setup/* and /api/settings/git-integrations/* endpoints. Old clients ignore them.

Both v0.9 and v0.10 features are in 0.10.0. Update the Android client's shared/ copy to pick up the new constants/DTOs.

Rollback

If a new release misbehaves:

# Pin the previous version
cd ~/vibe-coder
sed -i 's|siamakerlab/vibe-coder-server:0.10.0|siamakerlab/vibe-coder-server:0.8.1|' compose.yml
docker compose pull
docker compose up -d --force-recreate

The unified ./vibe-coder-data/ layout means rollback is data-safe in either direction (no schema migrations in v0.7+).

Pinning versions

By default compose.yml ships with :0.10.0. To always-track-latest:

image: siamakerlab/vibe-coder-server:latest

Not recommended for production-leaning installs — pin to a specific minor and bump deliberately after reading the CHANGELOG.

Backup before upgrading

docker compose stop
tar czf vibe-coder-data-pre-upgrade-$(date +%F).tar.gz vibe-coder-data/
docker compose start

Roll back is then:

docker compose down
rm -rf vibe-coder-data/
tar xzf vibe-coder-data-pre-upgrade-*.tar.gz
docker compose up -d

Clone this wiki locally