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

8.6 KiB
Raw Permalink Blame History

OVHserver Infrastructure

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

Сервер: ubuntu@51.89.231.46 GitHub: 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


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

Инфраструктура

  • 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 - электронная подпись

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

Проверка синхронизации

# Статус 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 операции

# Проверить статус
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


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

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

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

Проверка здоровья сервисов

# 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 бэкапа

# Полное восстановление (осторожно!)
rsync -avz --progress /Volumes/SSD/Aimpress_Cloud_Prod/system-backup/ ubuntu@51.89.231.46:/

Из Git

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

Из Restic

# Посмотреть snapshots
restic snapshots

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

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


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


Лицензия

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


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