Files
tp/documentation/DocerDocs.md
T

103 lines
4.3 KiB
Markdown
Raw 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.
# Документация по Docker Compose проекту
## Обзор проекта
Данный проект представляет собой комплексную инфраструктуру для хостинга нескольких веб-сайтов и сервисов с использованием Docker Compose.
## Сервисы
### 1. Certbot
**Назначение**: Автоматическое получение и обновление SSL/TLS сертификатов Let's Encrypt
- **Контейнер**: `certbot`
- **Порты**: Нет внешних портов
- **Тома**:
- `certbot_data` - данные сертификатов
- `certbot_www` - веб-корень для проверки доменов
- **Зависимости**: Требует настройки доменов в .env файле
### 2. Nginx
**Назначение**: Веб-сервер и обратный прокси для всех сайтов
- **Контейнер**: `nginx`
- **Порты**: `80:80`, `443:443`
- **Тома**: Статические файлы всех сайтов + сертификаты Certbot
- **Зависимости**: Все остальные сервисы должны быть здоровы
- **Сети**: `web-network`, `internal`, `app-network`, `bb-network`
### 3. Analytics
**Назначение**: Система статистики для сайта valitovgaziz.ru
- **Контейнер**: `analytics`
- **Порты**: `9999:3000`
- **Технология**: Node.js 22+
- **Тома**: Логи и данные аналитики
- **Сети**: `web-network`, `internal`
### 4. API для Yalarba.ru (api_tp)
**Назначение**: REST API для бизнес-логики yalarba.ru
- **Контейнер**: `api_tp`
- **Порты**: `8888:8080`
- **Технология**: Golang (Gorm, Chi)
- **База данных**: `db` (PostgreSQL)
- **Сети**: `app-network`
### 5. Основная база данных (db)
**Назначение**: База данных для yalarba.ru и easysite102.ru
- **Контейнер**: `db_tp`
- **Порты**: `5432:5432`
- **Технология**: PostgreSQL 15
- **Тома**: `db_tp_data`
- **Миграции**: ./migrations
- **Сети**: `app-network`
### 6. API для Бегущий Башкир (api_bb)
**Назначение**: REST API для сайта Бегущий Башкир
- **Контейнер**: `api_bb`
- **Порты**: `7777:8080`
- **Технология**: Golang (Gorm, Chi)
- **База данных**: `db_bb` (PostgreSQL)
- **Тома**: Загружаемые файлы
- **Сети**: `bb-network`
### 7. База данных Бегущий Башкир (db_bb)
**Назначение**: База данных для сайта Бегущий Башкир
- **Контейнер**: `db_bb`
- **Порты**: `5433:5432`
- **Технология**: PostgreSQL 15
- **Тома**: `db_bb_data`
- **Сети**: `bb-network`
### 8. Easysite SPA
**Назначение**: Интерфейс для туристического бизнеса
- **Контейнер**: `easysite`
- **Порты**: `3000:3000`
- **Технология**: Nuxt.js
- **Сети**: `web-network`, `app-network`
### 9. API для Easysite (api_es)
**Назначение**: REST API для easysite102.ru
- **Контейнер**: `api_es`
- **Порты**: Определяется через переменную окружения
- **База данных**: `db` (общая с yalarba.ru)
- **Сети**: `app-network`, `web-network`
## Сети
- **web-network**: Для веб-сервисов, доступных извне
- **internal**: Для внутренних сервисов
- **app-network**: Для приложений yalarba.ru
- **bb-network**: Для приложений Бегущий Башкир
## Тома
- `certbot_data`, `certbot_www` - данные Certbot
- `db_tp_data`, `db_bb_data` - данные баз данных
- `api_bb_uploads` - загружаемые файлы
- `analytics_logs`, `analytics_data` - логи и данные аналитики
## Переменные окружения
Создайте файл `.env` в корне проекта со следующими переменными:
```env
EMAIL=your-email@example.com
ALL_DOMAINS=domain1.ru,domain2.ru
API_ES_APP_PORT=8088