Files
PnvPanel/docker-compose.yml
T
Leonid Pershin b5630b2685
CI / Backend (build + test) (push) Successful in 1m18s
CI / Frontend (lint + typecheck + build) (push) Successful in 31s
Implement support ticket system with role request and bug report functionalities
- 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.
2026-07-14 06:49:05 +03:00

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: