Services: - api: FastAPI gateway with JWT auth, async endpoints, WebSocket - worker-gpu: CUDA sentence-transformers, FAISS IVFFlat, Ollama LLM - worker-indexer: Winnowing+MinHash plagiarism detection, PDF/DOCX extraction - worker-notifier: SMTP email notifications - worker-gost: GOST 7.1-2003 and GOST R 7.0.5-2008 formatting Infrastructure: - docker-compose.yml (production) + docker-compose.dev.yml (hot reload) - Nginx reverse proxy + WebSocket support - PostgreSQL 16 with Alembic migrations - Elasticsearch 8 with Russian/English analyzers - MinIO, RabbitMQ, Redis, Ollama Frontend: - React 18 + Vite + TypeScript + TailwindCSS + Zustand + React Query v5 - 9 pages: Home, Search, Cabinet, Task, Check, Bibliography, Pricing, Login, Register Scripts: - Parser stubs: OpenAlex, КиберЛенинка, arXiv (Phase 0 - to be filled) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
41 lines
778 B
Plaintext
41 lines
778 B
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 (Yandex)
|
|
SMTP_HOST=smtp.yandex.ru
|
|
SMTP_PORT=465
|
|
SMTP_USER=noreply@jze9.ru
|
|
SMTP_PASSWORD=changeme
|
|
SMTP_FROM=noreply@jze9.ru
|
|
|
|
# App
|
|
APP_URL=https://academic.jze9.ru
|
|
ENVIRONMENT=development
|