Перевод: оболочка страницы на русском; тело навыка (SKILL.md) пока на английском — это исходные инструкции агента.
Docker Vps Ship
Ship starters via Docker Compose on a VPS.
Метаданные навыка
| Source | Optional — install with vibeos skills install official/devops/docker-vps-ship |
| Путь | optional-skills/devops/docker-vps-ship |
| Версия | 1.0.0 |
| Автор | VibeOS |
| Лицензия | MIT |
| Платформы | linux, macos |
| Теги | docker, compose, vps, deploy, internet, rsync |
| Связанные навыки | deploy-presets, internet-starter, docker-management, ship-web-service |
Справка: полный SKILL.md
к сведению
Ниже полное определение навыка, которое VibeOS загружает при активации. Это инструкции, которые видит агент.
Docker VPS Ship
Take an internet-starter app to a VPS with Docker Compose: sync files,
compose up --build, wait for health. Complements deploy-presets with an
explicit remote ship recipe + health waiter script.
When to Use
- User has SSH access to a VPS (Timeweb, Hetzner, etc.)
- Prefer containers over Fly/Cloudflare Workers
- After local
vibeos project servers+ network assert are green
Prerequisites
- Docker + Compose on the remote host
- SSH key or password (from
.env/ ssh-agent — never invent) - Install:
vibeos skills install official/devops/docker-vps-ship - Local health already OK
How to Run
- Ensure
Dockerfile(+ optionaldocker-compose.yml) exist — FastAPI starter includes a Dockerfile; Compose template fromdeploy-presetsis fine. - Sync to the VPS (adjust user/host/path):
rsync -az --delete \
--exclude .venv --exclude node_modules --exclude .git --exclude .env \
./ user@vps:/opt/my-app/
# copy secrets separately
scp .env user@vps:/opt/my-app/.env
- Remote up + wait:
ssh user@vps 'cd /opt/my-app && docker compose up --build -d'
# from this skill:
python3 scripts/compose_health_wait.py \
--url http://127.0.0.1:8000/health --timeout 90
# or probe the public URL if published:
python3 …/browser-network-assert/scripts/assert_network.py \
--probe https://api.example.com/health --require-ok /health
For fullstack: publish both API and web (or reverse-proxy) and probe both health URLs.
Quick Reference
| Step | Surface |
|---|---|
| Local green | vibeos project servers --health |
| Sync | rsync / scp (no .env in git) |
| Up | docker compose up --build -d |
| Wait | compose_health_wait.py |
| Assert | browser-network-assert |
Procedure
- Confirm compose binds the intended host ports (or reverse-proxy).
- Never rsync
.envfrom an example with fake secrets into prod blindly — use host secrets. - After up, wait for health before announcing the URL.
- Prefer staging path/host first when a staging VPS exists.
Pitfalls
- Do not
docker compose down -von prod without explicit approval. - Firewall: open only 80/443 publicly when possible; keep app ports internal.
- Fullstack Next needs a production image — document build if missing.
Verification
compose_health_wait.pyexits 0 for each--url.- Public (or SSH-tunnel) health returns 2xx.