Really-amin commited on
Commit
6deea40
·
verified ·
1 Parent(s): a3783e0

Update .env

Browse files
Files changed (1) hide show
  1. .env +17 -112
.env CHANGED
@@ -1,112 +1,17 @@
1
- # ────────────────
2
- # Stage 1: Builder
3
- # ────────────────
4
- FROM python:3.10-slim AS builder
5
-
6
- # نصب ابزارهای لازم برای ساخت پکیج‌ها
7
- RUN apt-get update && apt-get install -y \
8
- build-essential \
9
- gcc \
10
- g++ \
11
- cmake \
12
- pkg-config \
13
- libgl1-mesa-dev \
14
- libglib2.0-dev \
15
- libsm6 \
16
- libxext6 \
17
- libxrender-dev \
18
- libgomp1 \
19
- libgcc-s1 \
20
- && rm -rf /var/lib/apt/lists/*
21
-
22
- # ارتقاء pip
23
- RUN pip install --upgrade pip
24
-
25
- # ایجاد virtual environment مستقل
26
- RUN python -m venv /opt/venv
27
- ENV PATH="/opt/venv/bin:$PATH"
28
-
29
- # کپی فایل requirements و نصب وابستگی‌ها به ترتیب مشخص
30
- WORKDIR /app
31
- COPY requirements.txt .
32
-
33
- # نصب numpy ابتدا (برای حل مشکل سازگاری)
34
- RUN pip install --no-cache-dir numpy==1.24.4
35
-
36
- # نصب PyTorch و وابستگی‌های مرتبط
37
- RUN pip install --no-cache-dir torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1
38
-
39
- # نصب transformers و tokenizers
40
- RUN pip install --no-cache-dir transformers==4.36.0 tokenizers==0.15.0
41
-
42
- # نصب بقیه وابستگی‌ها
43
- RUN pip install --no-cache-dir -r requirements.txt
44
-
45
- # ────────────────
46
- # Stage 2: Production
47
- # ────────────────
48
- FROM python:3.10-slim
49
-
50
- # ساخت کاربر غیر روت با uid/gid مشخص برای سازگاری
51
- RUN groupadd -g 1000 appuser && useradd -r -u 1000 -g appuser appuser
52
-
53
- # نصب وابستگی‌های زمان اجرا
54
- RUN apt-get update && apt-get install -y \
55
- poppler-utils \
56
- tesseract-ocr \
57
- tesseract-ocr-fas \
58
- libgl1-mesa-glx \
59
- libglib2.0-0 \
60
- libsm6 \
61
- libxext6 \
62
- libxrender-dev \
63
- libgomp1 \
64
- libgcc-s1 \
65
- curl \
66
- sqlite3 \
67
- && rm -rf /var/lib/apt/lists/*
68
-
69
- # انتقال virtual environment از مرحله builder
70
- COPY --from=builder /opt/venv /opt/venv
71
- ENV PATH="/opt/venv/bin:$PATH"
72
-
73
- # تنظیم دایرکتوری کاری
74
- WORKDIR /app
75
-
76
- # ایجاد دایرکتوری‌های لازم و تعیین مالکیت و دسترسی‌ها
77
- RUN mkdir -p /app/data /app/database /app/cache /app/logs /app/uploads /app/backups /tmp/app_fallback \
78
- && chown -R appuser:appuser /app \
79
- && chown -R appuser:appuser /tmp/app_fallback \
80
- && chmod -R 755 /app \
81
- && chmod -R 777 /tmp/app_fallback
82
-
83
- # کپی کل سورس برنامه با مالکیت صحیح
84
- COPY --chown=appuser:appuser . .
85
-
86
- # اگر فایل start.sh موجود بود، اجرایی کن
87
- RUN if [ -f start.sh ]; then chmod +x start.sh; fi
88
-
89
- # تعریف متغیرهای محیطی مهم برنامه
90
- ENV PYTHONPATH=/app
91
- ENV DATABASE_DIR=/app/data
92
- ENV DATABASE_PATH=/app/data/legal_documents.db
93
- ENV TRANSFORMERS_CACHE=/app/cache
94
- ENV HF_HOME=/app/cache
95
- ENV HF_DATASETS_CACHE=/app/cache
96
- ENV TORCH_HOME=/app/cache
97
- ENV LOG_LEVEL=INFO
98
- ENV ENVIRONMENT=production
99
- ENV PYTHONUNBUFFERED=1
100
-
101
- # تغییر به کاربر غیر روت پیش از اجرای برنامه
102
- USER appuser
103
-
104
- # باز کردن پورت پیش‌فرض برنامه
105
- EXPOSE 8000
106
-
107
- # چک سلامت ساده
108
- HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
109
- CMD curl -fs http://localhost:8000/health || exit 1
110
-
111
- # دستور شروع برنامه با اطمینان از ایجاد دایرکتوری data و اجرای uvicorn
112
- CMD ["sh", "-c", "python -c 'import os; os.makedirs(\"/app/data\", exist_ok=True)' && uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 1"]
 
1
+ # ==== FastAPI Settings ====
2
+ APP_NAME=Legal Dashboard
3
+ APP_ENV=production
4
+ HOST=0.0.0.0
5
+ PORT=7860
6
+
7
+ # Path settings
8
+ FRONTEND_DIR=frontend
9
+ STATIC_DIR=frontend
10
+ TEMPLATE_INDEX=index.html
11
+
12
+ # Logging
13
+ LOG_LEVEL=INFO
14
+
15
+ # Hugging Face specific
16
+ TRANSFORMERS_CACHE=/data/models
17
+ HF_HOME=/data/models