توسعه
بکاند
Section titled “بکاند”cd backendpip install -r requirements.txtuvicorn app.main:app --reloadکلید راهاندازی بدون Docker نیز با اجرای python -m cli.main generate-admin-key در پوشهی backend/ قابل تولید است.
فرانتاند
Section titled “فرانتاند”cd frontendnpm installnpm run devسرور توسعهی Vite مسیر /api را به http://localhost:8000 پروکسی میکند.
تستها
Section titled “تستها”cd backendpip install -r requirements-dev.txtpython -m pytest -qپوشهی backend/tests اینها را پوشش میدهد: لینکهای اشتراک و متغیرهای ریمارک؛ /sub در همهی فرمتها (ساده، Clash، sing-box، صفحهی HTML) همراه با گروهها، فعالسازی on_hold و محدودیت دستگاه؛ محاسبهی ترافیک با ضریب نود و آمار روزانه، انقضا و سقف حجم و ریست دورهای؛ سهمیهی نمایندهها؛ چرخهی کاربر و تانلها از طریق API؛ پورتهای رزرو؛ اعتبارسنجی و برگشت کانفیگ در ایجنت نود (با باینریهای ساختگی xray، hysteria، swanctl و xl2tpd)؛ اسکریپتهای آپدیت تانل و نود (که واقعاً با systemctl و docker ساختگی اجرا میشوند)؛ و زنجیرهی مایگریشن — یک head، برگشتپذیری مراحل اخیر، و یکی بودن مدلها با اسکیمای تازه مایگریتشده؛ پس تغییر مدل بدون مایگریشن همینجا شکست میخورد.
فایل tests/conftest.py به هر تست یک دیتابیس SQLite تازه مایگریتشده (db، بین تستها پاک میشود) و یک client از اپ واقعی بدون حلقههای پسزمینه میدهد؛ tests/factories.py هسته، inbound، هاست و کاربر میسازد. با هر تغییر رفتار یک تست اضافه کنید.
.github/workflows/tests.ymlبا هر push و pull request تستهای بکاند و type check و بیلد داشبورد (npm run build) را اجرا میکند.- ساخت ایمیجها (
build-images.ymlدر ریپوی عمومی) همین بررسیها را روی دقیقاً همان سورسی که قرار است منتشر شود اجرا میکند و اگر شکست بخورند هیچ ایمیجی نمیسازد؛ پس هیچ چیز تستنشده به:latestنمیرسد.
ایمیج عامل نود
Section titled “ایمیج عامل نود”docker build -t tifusi-node-agent -f backend/node_agent/Dockerfile backendکارهای برنامهریزیشده و موارد کنارگذاشتهشده در ROADMAP.md ثبت شدهاند.
