OVHserver/README.md
SamoilenkoVadym 972003dba2 feat: add /mnt folder to Syncthing sync
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>
2025-11-05 16:52:52 +00:00

258 lines
8.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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