Files
anti-plagiarism/.env.example
jze9 d2d99d8231 feat(obs): наблюдаемость Prometheus + Grafana под профилем observability
Раньше видимости в прод не было — только email-монитор (костыль). Добавлено
без нагрузки по умолчанию (профиль не поднимается, пока не попросят):

- API: /metrics через prometheus-fastapi-instrumentator (кол-во/латентность
  запросов по хендлерам);
- Prometheus (infra/prometheus/prometheus.yml) скрейпит API и Flower — из Flower
  приходят метрики Celery (задачи, время, воркеры) вообще без доп. кода;
- Grafana с автопровижном источника Prometheus (infra/grafana/provisioning),
  пароль через GRAFANA_ADMIN_PASSWORD;
- docker-compose.prod.yml: сервисы prometheus/grafana под profiles:[observability]
  + volumes; .env.example и README пополнены.

Запуск: docker compose --profile observability up -d prometheus grafana.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-11 20:37:47 +05:00

50 lines
1.1 KiB
Plaintext

# PostgreSQL
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_DB=antiplagiator
POSTGRES_USER=antiplagiator
POSTGRES_PASSWORD=changeme
# Redis
REDIS_URL=redis://redis:6379/0
# RabbitMQ
RABBITMQ_URL=amqp://guest:guest@rabbitmq:5672/
# MinIO
MINIO_ENDPOINT=minio:9000
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=changeme
MINIO_BUCKET_DOCS=documents
MINIO_BUCKET_BACKUPS=backups
# Elasticsearch
ELASTICSEARCH_URL=http://elasticsearch:9200
# Ollama
OLLAMA_URL=http://ollama:11434
# JWT
SECRET_KEY=change-me-in-production-use-openssl-rand-hex-32
ACCESS_TOKEN_EXPIRE_MINUTES=10080
# SMTP (собственный Postfix+Dovecot, mail.jze9mail.ru, STARTTLS)
SMTP_HOST=mail.jze9mail.ru
SMTP_PORT=587
SMTP_USER=noreply
SMTP_PASSWORD=changeme
SMTP_FROM=noreply@jze9mail.ru
SMTP_TLS_VERIFY=true
# App
APP_URL=https://academic.jze9.ru
ENVIRONMENT=development
# Векторный бэкенд (опционально): faiss (по умолчанию) или qdrant. См. README.
VECTOR_BACKEND=faiss
QDRANT_URL=http://qdrant:6333
QDRANT_COLLECTION=documents
# Наблюдаемость (профиль observability, опционально)
GRAFANA_ADMIN_PASSWORD=admin