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

## Общая информация

**Сервер:** ubuntu@51.89.231.46
**Локальная копия:** /Volumes/SSD/Aimpress_Cloud_Prod/
**GitHub:** git@github.com:SamoilenkoVadym/OVHserver.git

---

## Основная структура

```
/Volumes/SSD/Aimpress_Cloud_Prod/
├── opt/                  # Основные проекты и сервисы
├── data/                 # Данные приложений
├── home/                 # Пользовательские файлы ubuntu
├── .git/                 # Git репозиторий
├── .gitignore           # Исключения для Git
├── .claude/             # Документация для Claude
│   ├── workflow.md      # Рабочий процесс
│   └── project-structure.md  # Этот файл
└── README.md            # Общее описание
```

---

## Детальная структура /opt

### 00-infrastructure/ — Инфраструктурные сервисы
Базовые компоненты инфраструктуры, необходимые для работы других сервисов.

```
00-infrastructure/
├── postgres/          # PostgreSQL база данных
│   ├── docker-compose.yml
│   └── data/          # Данные БД
├── redis/             # Redis кэш
├── rabbitmq/          # RabbitMQ message broker
├── traefik/           # Traefik reverse proxy
│   ├── docker-compose.yml
│   ├── traefik.yml    # Основной конфиг
│   └── acme.json      # SSL сертификаты
├── vault/             # HashiCorp Vault (секреты)
│   ├── docker-compose.yml
│   └── data/          # Хранилище секретов
├── blackbox/          # Blackbox Exporter (мониторинг)
└── loki/              # Loki (агрегация логов)
```

**Назначение:**
- PostgreSQL: Общая база данных для всех сервисов
- Redis: Кэширование и очереди задач
- RabbitMQ: Message broker для асинхронной обработки
- Traefik: Reverse proxy с автоматическим SSL
- Vault: Управление секретами и credentials
- Loki: Сбор и хранение логов
- Blackbox: Мониторинг доступности эндпоинтов

---

### 01-security/ — Безопасность и аутентификация
Сервисы для управления доступом и безопасностью.

```
01-security/
├── authentik/         # Authentik SSO (Single Sign-On)
│   ├── docker-compose.yml
│   ├── custom-templates/
│   └── media/         # Статические файлы
└── vaultwarden/       # Vaultwarden (менеджер паролей)
    ├── docker-compose.yml
    └── data/          # Хранилище паролей
```

**Назначение:**
- Authentik: Единая система аутентификации (SSO) для всех сервисов
- Vaultwarden: Корпоративный менеджер паролей (Bitwarden compatible)

---

### 02-core/ — Ядро системы
Основные рабочие сервисы, критичные для бизнеса.

```
02-core/
├── n8n-shared/        # n8n (workflow automation) - общий
│   ├── docker-compose.yml
│   └── .n8n/          # Workflows и credentials
├── n8n-vip/           # n8n VIP instance (отдельный)
├── evolution-api/     # Evolution API (WhatsApp Business API)
│   ├── docker-compose.yml
│   ├── evolution-instances/  # Инстансы WhatsApp
│   └── evolution-store/      # Хранилище данных
└── supabase/          # Supabase (Backend-as-a-Service)
    ├── docker-compose.yml
    └── volumes/       # Данные Supabase
```

**Назначение:**
- n8n: Автоматизация бизнес-процессов (workflow automation)
  - n8n-shared: Для общих workflow
  - n8n-vip: Для VIP клиентов или критичных задач
- Evolution API: WhatsApp Business API для мессенджер-интеграций
- Supabase: Backend с БД, Auth, Storage для приложений

---

### 03-business/ — Бизнес-приложения
Приложения для работы бизнеса и команды.

```
03-business/
├── odoo/              # Odoo ERP
│   ├── docker-compose.yml
│   ├── addons/        # Кастомные модули
│   ├── config/        # Конфигурация
│   └── filestore/     # Файлы и attachments
├── outline/           # Outline (корпоративная wiki)
│   ├── docker-compose.yml
│   └── data/          # Документы
├── documenso/         # Documenso (электронная подпись)
│   ├── docker-compose.yml
│   └── uploads/       # Загруженные документы
└── wikijs/            # Wiki.js (документация)
    ├── docker-compose.yml
    └── data/          # Wiki контент
```

**Назначение:**
- Odoo: ERP система для управления бизнесом
  - CRM, Sales, Inventory, Accounting, HR
  - Кастомные модули в /addons
- Outline: Корпоративная база знаний (wiki)
- Documenso: Система электронного документооборота и подписи
- Wiki.js: Техническая документация

---

### 04-tools/ — Утилиты и мониторинг
Инструменты для управления и мониторинга инфраструктуры.

```
04-tools/
├── portainer/         # Portainer (Docker UI)
│   └── docker-compose.yml
├── grafana/           # Grafana (визуализация метрик)
│   ├── docker-compose.yml
│   └── dashboards/    # Дашборды
├── monitoring/        # Prometheus + Node Exporter
│   ├── prometheus/
│   ├── alertmanager/
│   └── node-exporter/
├── uptime-kuma/       # Uptime Kuma (мониторинг доступности)
│   └── docker-compose.yml
├── watchtower/        # Watchtower (авто-обновление Docker)
└── sftp/              # SFTP сервер
```

**Назначение:**
- Portainer: Web UI для управления Docker контейнерами
- Grafana: Дашборды для визуализации метрик
- Monitoring: Сбор метрик (CPU, RAM, disk, etc.)
- Uptime Kuma: Мониторинг доступности сервисов
- Watchtower: Автоматическое обновление Docker образов
- SFTP: Файловый сервер для обмена файлами

---

### 05-backups/ — Бэкапы и скрипты
Резервные копии, логи и административные скрипты.

⚠️ **Исключено из Git** (большие файлы, бинарные данные)

```
05-backups/
├── scripts/           # Bash скрипты для обслуживания
│   ├── backup-*.sh
│   ├── restore-*.sh
│   └── maintenance-*.sh
├── reports/           # Отчеты о бэкапах
├── logs/              # Логи бэкапов
├── data/              # Временные данные
├── config-versions/   # Версии конфигураций
├── credentials/       # Экспортированные credentials
├── restic/            # Restic бэкапы
├── docs/              # Документация по скриптам
├── SCRIPTS-REGISTRY.md     # Реестр всех скриптов
└── README-SCRIPTS.md       # Документация скриптов
```

**Назначение:**
- Автоматические бэкапы всех сервисов
- Скрипты для обслуживания и восстановления
- Логи всех операций
- Версионирование конфигураций

---

### 06-webflow/ — Webflow интеграция
Landing pages и интеграция с Webflow.

```
06-webflow/
└── landing/           # Landing page
    ├── index.html
    ├── css/
    └── js/
```

**Назначение:**
- Публичные landing pages
- Интеграция с Webflow CMS

---

### Другие файлы в /opt

```
/opt/
├── infrastructure-docs/    # Документация инфраструктуры
│   ├── setup-guides/
│   ├── troubleshooting/
│   └── architecture/
├── postiz-config/          # Конфигурация Postiz
├── containerd/             # Containerd данные (системные)
└── fix_odoo_pass.py       # Утилита для сброса пароля Odoo
```

---

## Структура /data

```
/data/
├── docker/            # Docker данные (volumes, overlay2)
├── app-data/          # Данные приложений
└── temp/              # Временные файлы
```

**Назначение:** Хранилище данных Docker контейнеров и приложений.

---

## Структура /home/ubuntu

```
/home/ubuntu/
├── .ssh/              # SSH ключи
├── .bashrc            # Bash конфигурация
├── scripts/           # Персональные скрипты
└── .local/            # Локальные данные пользователя
```

**Назначение:** Домашняя директория пользователя ubuntu.

---

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

### Оркестрация
- **Docker** + **Docker Compose** - контейнеризация всех сервисов

### Reverse Proxy & SSL
- **Traefik** - автоматический SSL (Let's Encrypt), маршрутизация

### Базы данных
- **PostgreSQL** - основная RDBMS
- **Redis** - кэш и очереди
- **RabbitMQ** - message broker

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

### Мониторинг
- **Prometheus** - сбор метрик
- **Grafana** - визуализация
- **Loki** - агрегация логов
- **Uptime Kuma** - проверка доступности
- **Blackbox Exporter** - HTTP/TCP мониторинг

### Бизнес-приложения
- **Odoo** - ERP
- **n8n** - workflow automation
- **Evolution API** - WhatsApp Business API
- **Supabase** - BaaS
- **Outline** - wiki
- **Documenso** - e-signature

### DevOps
- **Portainer** - Docker UI
- **Watchtower** - авто-обновления
- **Restic** - инкрементальные бэкапы

---

## Сетевая архитектура

```
Internet
    ↓
Traefik (51.89.231.46:80/443)
    ↓
    ├→ authentik.domain.com → Authentik
    ├→ n8n.domain.com → n8n
    ├→ odoo.domain.com → Odoo
    ├→ outline.domain.com → Outline
    ├→ vault.domain.com → Vault
    ├→ portainer.domain.com → Portainer
    ├→ grafana.domain.com → Grafana
    └→ etc.
```

Все сервисы доступны через Traefik с автоматическим SSL.

---

## Важные замечания

### Права доступа
- Большинство сервисов запущены от пользователя `ubuntu`
- Некоторые системные файлы (vault/data, containerd) принадлежат root
- Syncthing может не иметь доступа к root-файлам (это нормально)

### Бэкапы
- Автоматические бэкапы в `/opt/05-backups/`
- Restic для инкрементальных бэкапов
- Бэкапы НЕ коммитятся в Git (большие файлы)

### Секреты
- Хранятся в HashiCorp Vault
- .env файлы исключены из Git
- Credentials в `/opt/05-backups/credentials/` (не в Git)

### Docker
- Все сервисы в Docker контейнерах
- docker-compose.yml для каждого сервиса
- Volumes в `/data/` и локальных директориях

---

## Зависимости между сервисами

```
Traefik (обязательно для всех)
    ↓
PostgreSQL (используется: Odoo, Outline, Authentik, n8n, Supabase)
    ↓
Redis (используется: Odoo, n8n, Outline)
    ↓
Vault (хранит секреты для всех сервисов)
    ↓
Authentik (SSO для: Outline, Grafana, Portainer, и др.)
```

**Порядок запуска:**
1. Traefik
2. PostgreSQL, Redis, RabbitMQ
3. Vault
4. Authentik
5. Остальные сервисы

---

## Полезные пути

### Конфигурации
- `/opt/00-infrastructure/traefik/traefik.yml` - основной конфиг Traefik
- `/opt/*/docker-compose.yml` - конфигурации всех сервисов

### Логи
- `/opt/05-backups/logs/` - логи бэкапов
- `docker logs <container>` - логи контейнеров

### Данные
- `/data/` - Docker volumes
- `/opt/*/data/` - данные конкретных сервисов

### Скрипты
- `/opt/05-backups/scripts/` - административные скрипты
- `/opt/05-backups/SCRIPTS-REGISTRY.md` - список всех скриптов

---

## Как найти нужный сервис

1. **Инфраструктура?** → `00-infrastructure/`
2. **Аутентификация?** → `01-security/`
3. **Автоматизация?** → `02-core/n8n-*`
4. **CRM/ERP?** → `03-business/odoo/`
5. **Документация?** → `03-business/outline/` или `03-business/wikijs/`
6. **Мониторинг?** → `04-tools/grafana/` или `04-tools/monitoring/`
7. **Управление Docker?** → `04-tools/portainer/`
8. **Бэкапы?** → `05-backups/`

---

## Обновления структуры

Этот документ должен обновляться при добавлении новых сервисов или изменении структуры проекта.

**Последнее обновление:** 2025-11-05
