9bb6ce0955
add documentaion file for docker-compose.yaml file
103 lines
4.3 KiB
Markdown
103 lines
4.3 KiB
Markdown
# Документация по 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 |