architect/_archive/2025-11-09-marketplace-old/marketplace-mvp/DEPLOYMENT.md

🚀 DEPLOYMENT - Развёртывание

Проект: Marketplace MVP (mp1)
Последнее обновление: 2025-11-08


📑 СОДЕРЖАНИЕ

  1. Окружения
  2. Требования
  3. Development
  4. Staging
  5. Production
  6. Rollback
  7. Мониторинг

🌍 ОКРУЖЕНИЯ {#окружения}

Окружение URL Сервер Назначение
Development http://localhost:8501 Локальная машина Разработка
Staging https://staging.mp1.local {СЕРВЕР_STAGING} Тестирование
Production https://mp1.local {СЕРВЕР_PROD} Боевой

✅ ТРЕБОВАНИЯ {#требования}

Системные

Программное обеспечение


💻 DEVELOPMENT {#development}

Локальная установка

# 1. Клонировать репозиторий
git clone {REPO_URL}
cd Marketplace MVP (mp1)

# 2. Создать venv и установить зависимости
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# 3. Настроить .env
cp .env.example .env
# Отредактировать .env

# 4. Инициализировать БД
alembic upgrade head

# 5. Запустить
{КОМАНДА_ЗАПУСКА_DEV}

Docker (альтернатива)

# Development с Docker Compose
docker-compose -f docker-compose.dev.yml up

🧪 STAGING {#staging}

Развёртывание на staging

# SSH на staging сервер
ssh claude-helper@{STAGING_SERVER}

# Обновить код
cd /path/to/Marketplace MVP (mp1)
git pull origin develop

# Активировать venv
source venv/bin/activate

# Обновить зависимости
pip install -r requirements.txt

# Применить миграции
alembic upgrade head

# Перезапустить сервис
sudo systemctl restart Marketplace MVP (mp1)-staging

Docker (staging)

# На staging сервере
cd /path/to/Marketplace MVP (mp1)
git pull origin develop
docker-compose -f docker-compose.staging.yml up -d --build

🔴 PRODUCTION {#production}

⚠️ ВАЖНО: Чеклист перед deploy

Развёртывание на production

# SSH на production сервер
ssh claude-helper@{PROD_SERVER}

# 1. Создать backup БД
sudo -u postgres pg_dump mp1_db > /backup/db_$(date +%Y%m%d_%H%M%S).sql

# 2. Обновить код
cd /path/to/Marketplace MVP (mp1)
git fetch --tags
git checkout tags/v{VERSION}

# 3. Активировать venv
source venv/bin/activate

# 4. Обновить зависимости
pip install -r requirements.txt

# 5. Применить миграции БД
alembic upgrade head

# 6. Собрать статику (если frontend)
{КОМАНДА_СБОРКИ_FRONTEND}

# 7. Перезапустить сервис (zero-downtime)
sudo systemctl reload Marketplace MVP (mp1)
# или
sudo systemctl restart Marketplace MVP (mp1)

# 8. Проверить статус
sudo systemctl status Marketplace MVP (mp1)
curl https://mp1.local/health

Docker (production)

# На production сервере
cd /path/to/Marketplace MVP (mp1)
git fetch --tags
git checkout tags/v{VERSION}

# Backup БД
docker exec {DB_CONTAINER} pg_dump -U claude-helper mp1_db > /backup/db_$(date +%Y%m%d_%H%M%S).sql

# Deploy
docker-compose -f docker-compose.prod.yml pull
docker-compose -f docker-compose.prod.yml up -d --no-deps --build {SERVICE_NAME}

# Проверить
docker-compose -f docker-compose.prod.yml ps
curl https://mp1.local/health

⏪ ROLLBACK {#rollback}

Откат на предыдущую версию

# 1. SSH на сервер
ssh claude-helper@{PROD_SERVER}

# 2. Вернуться к предыдущему тегу
cd /path/to/Marketplace MVP (mp1)
git checkout tags/v{PREVIOUS_VERSION}

# 3. Откатить миграции БД (если нужно)
alembic downgrade {PREVIOUS_MIGRATION_ID}

# 4. Восстановить зависимости
pip install -r requirements.txt

# 5. Перезапустить
sudo systemctl restart Marketplace MVP (mp1)

# 6. Проверить
curl https://mp1.local/health

Восстановление из backup БД

# Остановить приложение
sudo systemctl stop Marketplace MVP (mp1)

# Восстановить БД
sudo -u postgres psql mp1_db < /backup/db_{TIMESTAMP}.sql

# Запустить приложение
sudo systemctl start Marketplace MVP (mp1)

📊 МОНИТОРИНГ {#мониторинг}

Проверка статуса

# Статус сервиса
sudo systemctl status Marketplace MVP (mp1)

# Логи
sudo journalctl -u Marketplace MVP (mp1) -f

# Логи приложения
tail -f /var/log/Marketplace MVP (mp1)/app.log

# Docker логи
docker-compose logs -f {SERVICE_NAME}

Health checks

# HTTP health endpoint
curl https://mp1.local/health

# Ожидаемый ответ
{"status": "ok", "version": "{VERSION}"}

# БД проверка
curl https://mp1.local/health/db

# Redis проверка  
curl https://mp1.local/health/redis

Метрики (если настроены)


🔧 CI/CD (опционально)

GitHub Actions

# .github/workflows/deploy.yml
name: Deploy to Production

on:
  push:
    tags:
      - 'v*'

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Deploy to server
        run: |
          # Деплой скрипт

GitLab CI

# .gitlab-ci.yml
deploy:production:
  stage: deploy
  only:
    - tags
  script:
    - # Деплой команды

🔐 SECRETS MANAGEMENT

Production secrets

НЕ КОММИТИТЬ в git:
- .env файлы
- API ключи
- Пароли БД
- SSH ключи

Хранить:
- В переменных окружения сервера
- В vault (HashiCorp Vault, AWS Secrets Manager)
- В CI/CD secrets

# Пример: установка secrets на сервере
echo "DATABASE_URL=postgresql://..." >> /etc/Marketplace MVP (mp1)/.env
chmod 600 /etc/Marketplace MVP (mp1)/.env

🆘 TROUBLESHOOTING

Проблема: Сервис не стартует

# Проверить логи
sudo journalctl -u Marketplace MVP (mp1) -n 50

# Проверить конфиг
{КОМАНДА_ПРОВЕРКИ_КОНФИГА}

# Проверить порты
sudo netstat -tulpn | grep 8501

Проблема: БД недоступна

# Проверить подключение
psql -h localhost -U {DB_USER} -d mp1_db

# Проверить статус PostgreSQL
sudo systemctl status postgresql

Последнее обновление: 2025-11-08
Автор: {АВТОР}