# OVHserver Infrastructure

Production infrastructure для AI-Impress с полной автоматизацией, мониторингом и системой бэкапов.

**Сервер:** ubuntu@51.89.231.46
**GitHub:** [SamoilenkoVadym/OVHserver](https://github.com/SamoilenkoVadym/OVHserver)

---

## Трёхуровневая система синхронизации

### 🔄 1. Syncthing (Реального времени)
Мгновенная двусторонняя синхронизация между Mac и сервером.

- **Режим:** Send & Receive (bidirectional)
- **Папки:** `/opt`, `/data`, `/home/ubuntu`, `/mnt`
- **Автозапуск:** systemd (сервер) + brew services (Mac)
- **Скорость:** 10-30 секунд

### 📦 2. GitHub (Версионный контроль)
Полная история изменений кода и конфигураций.

- **Репозиторий:** git@github.com:SamoilenkoVadym/OVHserver.git
- **Автопуш:** Через post-commit hook
- **Защита:** pre-commit hook блокирует коммит секретов

### 💾 3. rsync (Системный бэкап)
Полная копия сервера для восстановления.

- **Назначение:** Disaster recovery
- **Запуск:** По требованию
- **Хранение:** `/Volumes/SSD/Aimpress_Cloud_Prod/system-backup/`

---

## Структура проекта

```
.
├── opt/                      # Основные проекты
│   ├── 00-infrastructure/    # Traefik, PostgreSQL, Redis, Vault, RabbitMQ
│   ├── 01-security/          # Authentik (SSO), Vaultwarden
│   ├── 02-core/              # n8n, Evolution API, Supabase
│   ├── 03-business/          # Odoo, Outline, Documenso, Wiki.js
│   ├── 04-tools/             # Portainer, Grafana, Monitoring, Uptime Kuma
│   ├── 05-backups/           # Бэкапы и скрипты (не в Git)
│   └── 06-webflow/           # Landing pages
├── data/                     # Данные приложений
├── home/                     # /home/ubuntu
├── mnt/                      # Смонтированные диски
│   ├── backups/              # Бэкапы системы (6.8GB)
│   └── psql-data/            # Данные PostgreSQL
└── .claude/                  # Документация для Claude Code
    ├── workflow.md           # Рабочий процесс
    └── project-structure.md  # Детальная структура
```

Подробная документация в [.claude/project-structure.md](.claude/project-structure.md)

---

## Технологический стек

### Инфраструктура
- **Docker** + **Docker Compose** - контейнеризация
- **Traefik** - reverse proxy с автоматическим SSL
- **PostgreSQL** - основная БД
- **Redis** - кэш и очереди
- **RabbitMQ** - message broker

### Безопасность
- **HashiCorp Vault** - управление секретами
- **Authentik** - SSO (Single Sign-On)
- **Vaultwarden** - менеджер паролей

### Мониторинг
- **Prometheus** + **Grafana** - метрики и дашборды
- **Loki** - агрегация логов
- **Uptime Kuma** - проверка доступности

### Бизнес-приложения
- **Odoo** - ERP система
- **n8n** - workflow automation
- **Evolution API** - WhatsApp Business API
- **Supabase** - Backend-as-a-Service
- **Outline** - корпоративная wiki
- **Documenso** - электронная подпись

---

## Быстрый старт

### Проверка синхронизации
```bash
# Статус Syncthing на сервере
ssh ubuntu@51.89.231.46 "systemctl --user status syncthing"

# Статус на Mac
brew services list | grep syncthing

# Размер синхронизированных данных
du -sh /Volumes/SSD/Aimpress_Cloud_Prod/{opt,data,home}
```

### Git операции
```bash
# Проверить статус
git status

# Посмотреть последние коммиты
git log --oneline -20

# Сделать коммит (push автоматический через hook)
git add .
git commit -m "feat: add new feature"
```

### Доступ к сервисам
Все сервисы доступны через Traefik с автоматическим SSL:
- **Portainer:** portainer.domain.com
- **Grafana:** grafana.domain.com
- **Authentik:** authentik.domain.com
- **Odoo:** odoo.domain.com
- **n8n:** n8n.domain.com

---

## Работа с проектом через Claude Code

### Рабочий процесс
1. Пользователь даёт задачу Claude
2. Claude работает с **локальными файлами** на Mac
3. Syncthing автоматически синхронизирует изменения на сервер (10-30 сек)
4. Claude делает git commit с понятным сообщением
5. Git hook автоматически пушит в GitHub

### Формат коммитов
```
<type>: <short description>

<detailed explanation if needed>

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
```

**Типы коммитов:**
- `feat:` - новая функция
- `fix:` - исправление бага
- `refactor:` - рефакторинг кода
- `docs:` - документация
- `chore:` - обслуживание (конфиги, зависимости)
- `perf:` - улучшение производительности

Полная документация в [.claude/workflow.md](.claude/workflow.md)

---

## Безопасность

### Git Hooks

**pre-commit:**
- Блокирует коммит файлов `.env`, `.key`, `.pem`
- Предупреждает о потенциальных секретах в коде
- Можно пропустить: `git commit --no-verify`

**post-commit:**
- Автоматически пушит каждый коммит в GitHub
- Работает с ветками main/master

### .gitignore
Исключены из Git:
- Зависимости: `node_modules`, `__pycache__`, `venv`
- Логи: `*.log`, `logs/`
- Секреты: `.env`, `*.key`, `*.pem`
- Бэкапы: `05-backups/`, `*.sql.gz`, `*.tar.gz`
- Временные: `.cache`, `*.tmp`, `.DS_Store`

---

## Мониторинг и поддержка

### Проверка здоровья сервисов
```bash
# Docker контейнеры
ssh ubuntu@51.89.231.46 "docker ps"

# Логи контейнера
ssh ubuntu@51.89.231.46 "docker logs <container_name>"

# Disk usage
ssh ubuntu@51.89.231.46 "df -h"
```

### Бэкапы
- **Автоматические:** В `/opt/05-backups/`
- **Restic:** Инкрементальные бэкапы
- **Скрипты:** В `/opt/05-backups/scripts/`
- **Документация:** `/opt/05-backups/SCRIPTS-REGISTRY.md`

### Uptime Kuma
Мониторинг доступности всех сервисов 24/7 через веб-интерфейс.

---

## Восстановление системы

### Из rsync бэкапа
```bash
# Полное восстановление (осторожно!)
rsync -avz --progress /Volumes/SSD/Aimpress_Cloud_Prod/system-backup/ ubuntu@51.89.231.46:/
```

### Из Git
```bash
# Откат к предыдущему коммиту
git log --oneline
git checkout <commit_hash> -- <file_path>
git commit -m "chore: rollback to <commit>"
```

### Из Restic
```bash
# Посмотреть snapshots
restic snapshots

# Восстановить конкретный snapshot
restic restore <snapshot_id> --target /restore/path
```

---

## Документация

- **[.claude/workflow.md](.claude/workflow.md)** - Рабочий процесс Claude Code
- **[.claude/project-structure.md](.claude/project-structure.md)** - Детальная структура проекта
- **[opt/05-backups/SCRIPTS-REGISTRY.md](opt/05-backups/SCRIPTS-REGISTRY.md)** - Реестр скриптов
- **[opt/05-backups/README-SCRIPTS.md](opt/05-backups/README-SCRIPTS.md)** - Документация скриптов

---

## Контакты и поддержка

- **GitHub Issues:** [SamoilenkoVadym/OVHserver/issues](https://github.com/SamoilenkoVadym/OVHserver/issues)
- **Сервер:** ubuntu@51.89.231.46

---

## Лицензия

Private repository - все права защищены.

---

**Последнее обновление:** 2025-11-05
**Версия инфраструктуры:** 1.0.0
