Все скиллы
01Скилл
Деплой
vibecode
docker-compose + CaddyГотовый docker-compose с Caddy reverse-proxy
Полный стек: твоё приложение + Postgres + Caddy с авто-HTTPS. Один файл — деплой на любой сервер за 5 минут.
01aКогда брать
Для деплоя любого web-приложения на свой Hetzner. Caddy сам выписывает Let's Encrypt сертификат при первом запросе.
02Куда положить
<project>/docker-compose.ymlСоздай эту папку и файл (если их нет), вставь содержимое ниже. Затем в Claude Code: /exit и запусти claude заново — команда появится.
03Содержимое
Скопируй всё что внутри блока и вставь в файл по пути выше.
docker-compose.yml
1# Замени YOURAPP / yourdomain.com на свои2services:3 app:4 build: .5 container_name: yourapp6 restart: unless-stopped7 env_file:8 - /opt/yourapp/.env9 depends_on:10 - postgres11 networks:12 - web13 - internal14 healthcheck:15 test: ["CMD", "wget", "-qO-", "http://127.0.0.1:3000/healthz"]16 interval: 30s17 timeout: 5s18 retries: 319 20 postgres:21 image: postgres:16-alpine22 container_name: yourapp-postgres23 restart: unless-stopped24 environment:25 POSTGRES_DB: yourapp26 POSTGRES_USER: yourapp27 POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}28 volumes:29 - pgdata:/var/lib/postgresql/data30 networks:31 - internal32 healthcheck:33 test: ["CMD-SHELL", "pg_isready -U yourapp"]34 interval: 10s35 timeout: 5s36 retries: 537 38 caddy:39 image: caddy:2-alpine40 container_name: yourapp-caddy41 restart: unless-stopped42 ports:43 - "80:80"44 - "443:443"45 volumes:46 - /opt/yourapp/Caddyfile:/etc/caddy/Caddyfile:ro47 - caddy_data:/data48 networks:49 - web50 51networks:52 web: {}53 internal: {}54 55volumes:56 pgdata: {}57 caddy_data: {}04Как использовать
Примеры команд
- 01
scp docker-compose.yml server:/opt/myapp/ - 02
ssh server 'cd /opt/myapp && docker compose up -d --build'