add rustfs

This commit is contained in:
2026-07-11 13:14:30 +07:00
parent c15106dc2d
commit bf46fb4e81
5 changed files with 101 additions and 15 deletions
+7
View File
@@ -1 +1,8 @@
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/evening_detective_server?sslmode=disable DATABASE_URL=postgresql://postgres:postgres@localhost:5432/evening_detective_server?sslmode=disable
SMTP_HOST=mail.crabs-games.art
SMTP_PORT=465
SMTP_USER=evening_detective@crabs-games.art
SMTP_PASSWORD=your_password
JWT_SECRET=your_secret
+2
View File
@@ -1,7 +1,9 @@
{ {
"cSpell.words": [ "cSpell.words": [
"Аркхема", "Аркхема",
"healthcheck",
"pgxpool", "pgxpool",
"rustfs",
"timestamppb" "timestamppb"
] ]
} }
+1 -1
View File
@@ -52,7 +52,7 @@ func main() {
smtpUser := os.Getenv("SMTP_USER") smtpUser := os.Getenv("SMTP_USER")
smtpPassword := os.Getenv("SMTP_PASSWORD") smtpPassword := os.Getenv("SMTP_PASSWORD")
emailSender := email_sender.NewSender(smtpHost, smtpPort, smtpUser, smtpPassword) emailSender := email_sender.NewSender(smtpHost, smtpPort, smtpUser, smtpPassword)
processorJWT := processor_jwt.NewProcessor(os.Getenv("SECRET")) processorJWT := processor_jwt.NewProcessor(os.Getenv("JWT_SECRET"))
refreshTokensRepo := refresh_tokens_repo.NewRefreshTokensRepo(dbpool) refreshTokensRepo := refresh_tokens_repo.NewRefreshTokensRepo(dbpool)
usersService := users_service.NewUsersService(usersRepo, passwordGenerator, emailSender, processorJWT, refreshTokensRepo) usersService := users_service.NewUsersService(usersRepo, passwordGenerator, emailSender, processorJWT, refreshTokensRepo)
uiService := ui_service.NewUiService() uiService := ui_service.NewUiService()
+42 -6
View File
@@ -1,20 +1,56 @@
version: '3.8' version: '3.8'
services: services:
# Сервис базы данных PostgreSQL для проекта "Вечерний детектив"
postgres_evening_detective_server: postgres_evening_detective_server:
image: postgres:15 image: postgres:15
container_name: postgres_evening_detective_server container_name: postgres_evening_detective_server
environment: environment:
POSTGRES_USER: postgres # Учетные данные для подключения к БД
POSTGRES_PASSWORD: postgres POSTGRES_USER: postgres # Имя пользователя
POSTGRES_DB: evening_detective_server POSTGRES_PASSWORD: postgres # Пароль пользователя (в продакшене нужно менять!)
TZ: Asia/Barnaul # Для системного времени контейнера POSTGRES_DB: evening_detective_server # Имя создаваемой базы данных
PGTZ: Asia/Barnaul # Специфичная для PostgreSQL переменная # Настройки временной зоны
TZ: Asia/Barnaul # Системная временная зона контейнера
PGTZ: Asia/Barnaul # Временная зона для PostgreSQL (специфичная переменная)
ports: ports:
- "5432:5432" - "5432:5432" # Стандартный порт PostgreSQL
volumes: volumes:
- postgres_data:/var/lib/postgresql/data - postgres_data:/var/lib/postgresql/data
restart: unless-stopped restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d evening_detective_server -h localhost"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
# Сервис файлового хранилища RustFS для проекта "Вечерний детектив"
rustfs_evening_detective_server:
image: rustfs/rustfs:latest
container_name: rustfs_evening_detective_server
environment:
# Учетные данные для подключения к FS
- RUSTFS_ACCESS_KEY=rustfs
- RUSTFS_SECRET_KEY=rustfs
# Включаем и настраиваем веб-консоль
- RUSTFS_CONSOLE_ENABLE=true
- RUSTFS_CONSOLE_ADDRESS=0.0.0.0:9001
- RUSTFS_ADDRESS=0.0.0.0:9000
ports:
- "9000:9000" # Порт для S3 API
- "9001:9001" # Порт для веб-консоли
volumes:
- rustfs_data:/data
restart: unless-stopped
healthcheck:
test: [ "CMD", "sh", "-c", "curl -f http://localhost:9000/health && curl -f http://localhost:9001/health" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
volumes: volumes:
postgres_data: postgres_data:
rustfs_data:
+49 -8
View File
@@ -13,28 +13,69 @@ services:
- "8080:8080" - "8080:8080"
environment: environment:
DATABASE_URL: "postgresql://postgres:postgres@postgres:5432/evening_detective_server?sslmode=disable" DATABASE_URL: "postgresql://postgres:postgres@postgres:5432/evening_detective_server?sslmode=disable"
SMTP_HOST: mail.crabs-games.art
SMTP_PORT: 465
SMTP_USER: evening_detective@crabs-games.art
SMTP_PASSWORD: your_password
JWT_SECRET: your_secret
depends_on: depends_on:
- postgres - postgres
restart: unless-stopped restart: unless-stopped
networks: networks:
- app_network - app_network
# Сервис базы данных PostgreSQL для проекта "Вечерний детектив"
postgres: postgres_evening_detective_server:
image: postgres:15 image: postgres:15
container_name: postgres_evening_detective_server container_name: postgres_evening_detective_server
environment: environment:
POSTGRES_USER: postgres # Учетные данные для подключения к БД
POSTGRES_PASSWORD: detective POSTGRES_USER: postgres # Имя пользователя
POSTGRES_DB: evening_detective_server POSTGRES_PASSWORD: you_password # Пароль пользователя (в продакшене нужно менять!)
TZ: Asia/Barnaul # Для системного времени контейнера POSTGRES_DB: evening_detective_server # Имя создаваемой базы данных
PGTZ: Asia/Barnaul # Специфичная для PostgreSQL переменная # Настройки временной зоны
TZ: Asia/Barnaul # Системная временная зона контейнера
PGTZ: Asia/Barnaul # Временная зона для PostgreSQL (специфичная переменная)
ports: ports:
- "5432:5432" - "5432:5432" # Стандартный порт PostgreSQL
volumes: volumes:
- postgres_data:/var/lib/postgresql/data - postgres_data:/var/lib/postgresql/data
restart: unless-stopped restart: unless-stopped
networks: networks:
- app_network - app_network
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U postgres -d evening_detective_server -h localhost" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
# Сервис файлового хранилища RustFS для проекта "Вечерний детектив"
rustfs_evening_detective_server:
image: rustfs/rustfs:latest
container_name: rustfs_evening_detective_server
environment:
# Учетные данные для подключения к FS
- RUSTFS_ACCESS_KEY=rustfs
- RUSTFS_SECRET_KEY=you_password
# Включаем и настраиваем веб-консоль
- RUSTFS_CONSOLE_ENABLE=true
- RUSTFS_CONSOLE_ADDRESS=0.0.0.0:9001
- RUSTFS_ADDRESS=0.0.0.0:9000
ports:
- "9000:9000" # Порт для S3 API
- "9001:9001" # Порт для веб-консоли
volumes:
- rustfs_data:/data
restart: unless-stopped
networks:
- app_network
healthcheck:
test: [ "CMD", "sh", "-c", "curl -f http://localhost:9000/health && curl -f http://localhost:9001/health" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
volumes: volumes:
postgres_data: postgres_data:
rustfs_data: