Деплой (администратор)¶
Руководство для DevOps и системных администраторов.
Варианты деплоя¶
| Способ | Когда использовать |
|---|---|
| GitHub Actions | Продакшен (рекомендуется) |
| deploy.sh | Ручной деплой на VPS |
| Docker Compose | Локально / staging |
Быстрый прод-деплой (GitHub Actions)¶
- Настройте Secrets в репозитории
valera7623/MedInsight: VPS_HOST,VPS_USER,VPS_SSH_KEYSECRET_KEY,APP_PORT,CORS_ORIGINS- Push в ветку
mainзапускает.github/workflows/deploy.yml. - Pipeline: test → deploy (SSH на VPS).
gh run list --workflow=deploy.yml --limit 1
gh run watch --exit-status
Ручной деплой на VPS¶
ssh medinsight-vps
cd ~/medinsight
git fetch origin && git reset --hard origin/main
./deploy.sh production
Скрипт deploy.sh:
- копирует
.envиз.env.production(если есть); - собирает образы
docker compose -f docker-compose.prod.yml build; - поднимает сервисы
up -d; - применяет SQL-миграции из
app/db/migrations/; - вызывает
scripts/docker_cleanup.sh deploy.
Проверка после деплоя¶
curl -s http://localhost:8000/health/ready
# {"status":"ready","database":"ok","redis":"ok"}
Структура на VPS¶
~/medinsight/
├── .env # секреты (не в git)
├── docker-compose.prod.yml
├── storage/ # зашифрованные файлы + DICOM
├── backups/ # age-архивы
└── deploy.sh
Порты¶
| Сервис | Порт (по умолчанию) |
|---|---|
| FastAPI (app) | 8000 |
| Redis | 6379 (внутри Docker) |
Nginx/Caddy на VPS проксирует HTTPS → localhost:8000.