From 9c3ac2917f23e5a432373f7d81184b37e5a504cb Mon Sep 17 00:00:00 2001 From: jjddhjdjd Date: Sat, 25 Jul 2026 12:25:04 +0330 Subject: [PATCH] Hshs --- Dockerfile | 88 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 79 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 20af6bf..8337798 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,25 +7,25 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ gcc python3-dev libc6-dev git curl unzip \ && rm -rf /var/lib/apt/lists/* -# نصب bun برای ساخت فرانت‌اند داشبورد (خود ایمیج رسمی این کار را در CI انجام می‌دهد، -# ولی چون از سورس تازه کلون می‌کنیم باید اینجا خودمان انجامش دهیم) +# انجام می‌دهد CI برای ساخت فرانت‌اند دادشورد (خود ایمیج رسمی این کار را انجام +# (ولی چون از سورس تازه کلون می‌کنیم باید اینجا خودمان انجامش دهیم RUN curl -fsSL https://bun.sh/install | bash ENV PATH="/root/.bun/bin:$PATH" WORKDIR /build RUN git clone --depth 1 https://github.com/PasarGuard/panel.git . -# ساخت خروجی استاتیک داشبورد؛ اگر این پوشه از قبل وجود نداشته باشد، -# خود برنامه هنگام استارت runtime سعی می‌کند با bun بسازدش که در ایمیج نهایی -# bun نصب نیست و باعث کرش می‌شود (FileNotFoundError: bun) +# ساخت خروجی استاتیک داشبورد؛ اگر این پوشه از قبل وجود نداشته باشد # +# می‌سازدش که در ایمیج نهایی bun سعی می‌کند با runtime خود برنامه هنگام استارت # +# نصب نیست و باعث کرش می‌شود (FileNotFoundError: bun) # RUN cd dashboard && bun install --frozen-lockfile && cd .. && bash build_dashboard.sh -# پچ ۱: باگ فعلی برنچ main پاسارگارد -- سینتکس پایتون ۲ که در پایتون ۳ SyntaxError می‌دهد -# و باعث می‌شود کل main.py اصلاً اجرا نشود (کرش کامل هنگام استارت). +# می‌دهد SyntaxError -- سینتکس پایتون ۴ که در پایتون ۲ باک فعلی برنج # +# .اصلا اجرا نشود (کرش کامل هنگام استارت) main.py # RUN sed -i 's/except ValueError, socket.gaierror:/except (ValueError, socket.gaierror):/' main.py -# پچ ۲: بدون SSL، پاسارگارد به‌صورت پیش‌فرض روی localhost گوش می‌دهد که در Railway -# باعث "Application failed to respond" می‌شود؛ این پچ همیشه 0.0.0.0 را اجباری می‌کند. +# پاسارگاد به صورت پیش‌فرض روی SSL, پیچ ۲: بدون localhost گوش می‌دهد که در Railway # +# .باعث "Application failed to respond" می‌شود. این پیچ 0.0.0.0 را اجباری می‌کند # RUN sed -i 's/bind_args\["host"\] = ip/bind_args["host"] = server_settings.host/' main.py RUN uv sync --frozen --no-dev @@ -33,8 +33,78 @@ RUN uv sync --frozen --no-dev FROM python:$PYTHON_VERSION-slim-bookworm COPY --from=builder /build /code WORKDIR /code + +# ایجاد و جایگزینی فایل قالب سابسکریپشن با پس‌زمینه سفارشی +RUN mkdir -p /code/app/templates/subscription && \ + cat <<'EOF' > /code/app/templates/subscription/index.html + + + + + + پروفایل اشتراک + + + +
+

پروفایل اشتراک

+

اطلاعات اشتراک شما فعال است.

+
+ + +EOF + ENV PATH="/code/.venv/bin:$PATH" +RUN apt-get update && apt-get install -y --no-install-recommends curl \ + && rm -rf /var/lib/apt/lists/* + +COPY start-railway.sh /start-railway.sh +RUN chmod +x /start-railway.sh + +# می‌گوید پنل روی کدام پورت گوش می‌دهد تا موقع ساخت Railway این خط به # +# .دامنه، پورت درست را خودش به صورت خودکار تشخیص دهد # +EXPOSE 8000 + +ENTRYPOINT ["/start-railway.sh"] + RUN apt-get update && apt-get install -y --no-install-recommends curl \ && rm -rf /var/lib/apt/lists/*