- Introduced a new support ticket system allowing users to submit bug reports and role requests. - Implemented endpoints for creating, updating, and managing support tickets, including file attachments. - Enhanced Telegram bot integration to handle role requests directly within the bot, enabling admins to approve or reject requests without accessing the website. - Updated database schema to include support ticket entities and their relationships. - Improved API documentation to reflect new support ticket endpoints and their usage. - Added necessary localization for support ticket features in both Russian and English.
54 lines
2.0 KiB
YAML
54 lines
2.0 KiB
YAML
services:
|
|
db:
|
|
image: postgres:17-alpine
|
|
environment:
|
|
POSTGRES_DB: ${POSTGRES_DB:-pnvpanel}
|
|
POSTGRES_USER: ${POSTGRES_USER:-pnvpanel}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-pnvpanel}
|
|
volumes:
|
|
- pgdata:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER:-pnvpanel} -d ${POSTGRES_DB:-pnvpanel}']
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
restart: unless-stopped
|
|
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
# Секреты (Jwt__SigningKey, AdminSeed__Password, Telegram__BotToken, ...) — из .env,
|
|
# см. .env.example. ConnectionStrings__Default ниже переопределяет .env: адрес БД внутри
|
|
# сети compose всегда 'db', не значение из .env (которое рассчитано на локальный запуск).
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
ASPNETCORE_ENVIRONMENT: Production
|
|
ASPNETCORE_HTTP_PORTS: '8085'
|
|
ConnectionStrings__Default: 'Host=db;Port=5432;Database=${POSTGRES_DB:-pnvpanel};Username=${POSTGRES_USER:-pnvpanel};Password=${POSTGRES_PASSWORD:-pnvpanel}'
|
|
FileStorage__RootPath: '/app/uploads'
|
|
volumes:
|
|
# Data Protection key-ring (шифрование секретов нод at-rest) должен пережить пересоздание
|
|
# контейнера — иначе расшифровка паролей нод после рестарта станет невозможна.
|
|
- dp_keys:/app/keys
|
|
# Вложения тикетов поддержки (скриншоты) — обычные файлы на диске, см. DiskFileStorage.
|
|
- ticket_uploads:/app/uploads
|
|
healthcheck:
|
|
test: ['CMD', 'curl', '-f', 'http://localhost:8085/health']
|
|
interval: 15s
|
|
timeout: 5s
|
|
start_period: 20s
|
|
retries: 5
|
|
ports:
|
|
- '8085:8085'
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
pgdata:
|
|
dp_keys:
|
|
ticket_uploads:
|