Repository navigation
Expand file tree
/
Copy pathenv.example.production
More file actions
executable file
·120 lines (105 loc) · 3.41 KB
/
Copy pathenv.example.production
File metadata and controls
executable file
·120 lines (105 loc) · 3.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# =============================================================================
# Omni Medical Suite — Production Environment Variables
# =============================================================================
# Copy this file to .env.production and fill in actual values.
# NEVER commit the actual .env file to version control.
# Usage: cp env.example.production .env.production
# =============================================================================
# ---- Application ----
APP_NAME=omni-medical-suite
APP_ENV=production
APP_DEBUG=false
APP_SECRET_KEY=CHANGE_ME_GENERATE_WITH_SCRIPTS
APP_LOG_LEVEL=INFO
APP_PORT=8000
# ---- Database (PostgreSQL) ----
POSTGRES_HOST=db
POSTGRES_PORT=5432
POSTGRES_DB=omni_medical
POSTGRES_USER=omni_user
POSTGRES_PASSWORD=CHANGE_ME_STRONG_PASSWORD
POSTGRES_POOL_SIZE=20
POSTGRES_MAX_OVERFLOW=10
DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
# ---- Redis ----
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_DB=0
REDIS_PASSWORD=CHANGE_ME_REDIS_PASSWORD
REDIS_URL=redis://:${REDIS_PASSWORD}@${REDIS_HOST}:${REDIS_PORT}/${REDIS_DB}
# ---- Celery (Background Tasks) ----
CELERY_BROKER_URL=${REDIS_URL}
CELERY_RESULT_BACKEND=${REDIS_URL}
CELERY_TASK_SERIALIZER=json
CELERY_RESULT_SERIALIZER=json
CELERY_ACCEPT_CONTENT=json
CELERY_WORKER_PREFETCH_MULTIPLIER=4
CELERY_TASK_TIME_LIMIT=300
CELERY_TASK_SOFT_TIME_LIMIT=240
CELERY_BEAT_SCHEDULE=true
# ---- OCR Engine ----
OCR_ENGINE=tesseract # Options: tesseract, easyocr, paddleocr, surya
OCR_LANGUAGES=en,ar
OCR_DEVICE=cpu # Options: cpu, cuda, mps
OCR_BATCH_SIZE=8
OCR_CONFIDENCE_THRESHOLD=0.7
# ---- Medical OCR Postprocessor ----
POSTPROCESSOR_ENABLED=true
POSTPROCESSOR_PHI_MASKING=true
POSTPROCESSOR_PHI_MODE=tag # Options: tag, mask, remove
POSTPROCESSOR_CONFIDENCE_THRESHOLD=0.85
POSTPROCESSOR_DICTIONARY_PATH=/app/data/dictionaries/medical_dict.csv
# ---- AI / LLM Integration ----
AI_API_KEY=CHANGE_ME_API_KEY
AI_MODEL=gpt-4
AI_TEMPERATURE=0.1
AI_MAX_TOKENS=4096
AI_TIMEOUT=30
# ---- Qdrant (Vector Database for Embeddings) ----
QDRANT_HOST=qdrant
QDRANT_PORT=6333
QDRANT_COLLECTION=medical_documents
QDRANT_API_KEY=CHANGE_ME_QDRANT_KEY
# ---- Authentication ----
JWT_SECRET_KEY=CHANGE_ME_JWT_SECRET
JWT_ALGORITHM=HS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30
JWT_REFRESH_TOKEN_EXPIRE_DAYS=7
AUTH_ALLOWED_ORIGINS=https://your-domain.com
# ---- File Storage ----
STORAGE_BACKEND=local # Options: local, s3, gcs
STORAGE_LOCAL_PATH=/app/data/uploads
# S3 Configuration (if STORAGE_BACKEND=s3)
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_S3_BUCKET=
AWS_REGION=us-east-1
# ---- Monitoring ----
PROMETHEUS_ENABLED=true
PROMETHEUS_PORT=9090
GRAFANA_ADMIN_PASSWORD=CHANGE_ME_GRAFANA_PASS
SENTRY_DSN= # Optional: Sentry error tracking
# ---- Security ----
CORS_ORIGINS=["https://your-domain.com"]
CORS_ALLOW_CREDENTIALS=false
RATE_LIMIT_REQUESTS=100
RATE_LIMIT_PERIOD=60
MAX_UPLOAD_SIZE_MB=50
ALLOWED_FILE_TYPES=pdf,png,jpg,jpeg,tiff,bmp,docx
# ---- PHI Compliance ----
PHI_DETECTION_ENABLED=true
PHI_AUDIT_LOG_ENABLED=true
PHI_RETENTION_DAYS=2555 # 7 years
PHI_ENCRYPTION_ENABLED=true
# ---- Docker ----
DOCKER_REGISTRY=ghcr.io
DOCKER_IMAGE_PREFIX=drabdulmalek/omni-medical-suite
COMPOSE_PROJECT_NAME=omni-suite
# ---- K8s ----
K8S_NAMESPACE=omni-medical
K8S_REPLICAS_API=3
K8S_REPLICAS_WORKER=2
K8S_RESOURCE_CPU_REQUEST=500m
K8S_RESOURCE_CPU_LIMIT=2000m
K8S_RESOURCE_MEMORY_REQUEST=512Mi
K8S_RESOURCE_MEMORY_LIMIT=2Gi