mirror of
https://github.com/MiniModLauncher/server.git
synced 2025-07-01 15:35:24 +00:00
Update readme
This commit is contained in:
parent
d30bd549c9
commit
3242224241
82
README.md
82
README.md
@ -1 +1,81 @@
|
||||
# server
|
||||
# server
|
||||
|
||||
### Стек технологий:
|
||||
1. **Язык программирования**: Python
|
||||
2. **База данных**: PostgreSQL
|
||||
- Для хранения метаданных о модпаках (версии, хеши файлов, данные пользователей и т.д.)
|
||||
3. **Хранилище файлов**: minio (S3)
|
||||
- Для хранения самих файлов (модов, конфигураций и других данных).
|
||||
4. **Контейнеризация и оркестрация**: Docker Compose
|
||||
- Для запуска микросервисов в контейнерах.
|
||||
5. **Балансировка нагрузки**: NGINX
|
||||
- Для распределения запросов между микросервисами.
|
||||
6. **Аутентификация и авторизация**: JWT (JSON Web Token)
|
||||
- Для безопасной аутентификации пользователей и межсервисной авторизации.
|
||||
|
||||
---
|
||||
|
||||
### Микросервисы:
|
||||
|
||||
1. **Сервис учётных записей ([Account Service](src/auth))**:
|
||||
- **Роль**: Хранит информацию о пользователях, таких как логин, пароль, роли и прочее. За генерацию и проверку токенов (JWT).
|
||||
- **База данных**: PostgreSQL.
|
||||
- **API**:
|
||||
- Генерация JWT для пользователей при успешной аутентификации.
|
||||
- Проверка токенов при запросах от других микросервисов. - Регистрация пользователей.
|
||||
- Аутентификация с использованием JWT.
|
||||
- Управление ролями пользователей.
|
||||
|
||||
2. **Сервис сборок ([Modpack Service](src/modpacks))**:
|
||||
- **Роль**: Управляет версиями модпаков, их метаданными (хеши файлов, версии).
|
||||
- **База данных**: PostgreSQL.
|
||||
- **API**:
|
||||
- Добавление/обновление/удаление модпаков.
|
||||
- Хранение информации о версиях модпаков.
|
||||
- Управление метаданными файлов (например, хеши).
|
||||
- Интеграция с S3 для загрузки/выгрузки файлов.
|
||||
- Получение информации о последней версии модпака (для получения данных о "latest").
|
||||
|
||||
3. **Сервис хранения файлов (File Storage Service)**:
|
||||
- **Роль**: Отвечает за загрузку и выгрузку файлов (модов).
|
||||
- **Хранилище**: minio, S3
|
||||
- **API**:
|
||||
- Загрузка файлов в S3.
|
||||
- Получение Pre-signed URL для скачивания файлов.
|
||||
- Управление метаданными файлов (например, оригинальные имена в метаданных).
|
||||
- Могут быть настроены **приватные файлы** для определённых пользователей или ролей.
|
||||
|
||||
---
|
||||
|
||||
### Взаимодействие микросервисов:
|
||||
|
||||
- **Сервис учётных записей** предоставляет API для регистрации и аутентификации пользователей. Он генерирует **JWT**, который клиент использует для взаимодействия с другими сервисами.
|
||||
|
||||
- **Сервис сборок** получает запросы от клиентов на получение списка доступных сборок, их версий, хешей файлов. Он может запросить **Auth Service** для проверки токенов.
|
||||
|
||||
- **Сервис файлов** предоставляет API для загрузки и скачивания файлов через S3. Для скачивания он использует **Pre-signed URL**, и клиенты используют JWT для доступа к этим URL.
|
||||
|
||||
- Все запросы между сервисами и с клиентами будут использовать **JWT** для аутентификации и авторизации.
|
||||
|
||||
---
|
||||
|
||||
### Архитектура и безопасность:
|
||||
|
||||
1. **JWT для аутентификации**:
|
||||
- Каждый запрос, который приходит от клиента или между микросервисами, будет включать **JWT** в запросе `token`.
|
||||
|
||||
2. **NGINX**:
|
||||
- Используется для балансировки нагрузки между микросервисами и контроля доступа.
|
||||
- Настроен для проксирования запросов к нужным сервисам и проверки наличия действительного токена в запросах.
|
||||
|
||||
3. **Docker Compose**:
|
||||
- Для оркестрации контейнеров и упрощения развертывания всех микросервисов в одном окружении.
|
||||
- Каждый сервис будет запущен в своем контейнере, и все контейнеры будут взаимодействовать между собой через сети, настроенные в Docker Compose.
|
||||
|
||||
---
|
||||
|
||||
### Резюме:
|
||||
- Микросервисы: **Сервис учётных записей** + **Сервис авторизации**, **Сервис сборок**, **Сервис файлов**.
|
||||
- Стек: **Python**, **PostgreSQL**, **S3**, **Docker Compose**, **NGINX**, **JWT**.
|
||||
- **Безопасность**: Все микросервисы используют **JWT** для аутентификации и авторизации.
|
||||
- **Архитектура**: **NGINX** для балансировки нагрузки и контроля доступа, **Docker Compose** для оркестрации контейнеров.
|
Loading…
x
Reference in New Issue
Block a user