Added /mnt folder synchronization for backups (6.8GB) and PostgreSQL data. Updated documentation in README.md, .claude/workflow.md and .gitignore to exclude large backup files. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
258 lines
8.6 KiB
Markdown
258 lines
8.6 KiB
Markdown
# 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
|