اگر به هر دلیلی نمیخواهی از ویزارد وب استفاده کنی، همین راهنما کل مسیر را قدمبهقدم پوشش میدهد. نتیجهی نهایی هر دو راه یکسان است.
- اکانت رایگان Hugging Face
- اکانت گیتهاب (همین ریپو را fork میکنی یا فایلها را آپلود میکنی)
- ربات تلگرام: در @BotFather با
/newbotبساز و توکن را نگه دار - آیدی عددی خودت در تلگرام (از @userinfobot)
- یک توکن Write از تنظیمات HF
- در هاگینگفیس: New Space → نام دلخواه (مثلاً
hermes-stack) - SDK را روی Docker بگذار → Blank template → Public
- در تب Files همین سه چیز را از پوشهی
space/این ریپو آپلود کن:README.md(متادیتایsdk: dockerوapp_port: 7860را دارد — دست نزن)DockerfileCaddyfile- پوشهی
hfkit/با تمام محتویاتش
- Build خودکار شروع میشود؛ چون دو ایمیج بزرگ دانلود میکند ۱۰ تا ۲۵ دقیقه صبر کن.
در Settings → Variables and secrets اینها را بساز (نوع سمت چپ):
| نام | نوع | مقدار |
|---|---|---|
TELEGRAM_BOT_TOKEN |
Secret | توکن BotFather |
TELEGRAM_ALLOWED_USERS |
Secret | آیدیهای عددی مجاز، با کاما |
NINEROUTER_API_KEY |
Secret | هر رشتهی قوی — بعداً در داشبورد ۹روتر همان را میسازی |
HERMES_API_KEY |
Secret | کلید دلخواه برای API عامل (مثل hs-…) |
DASHBOARD_USERNAME / DASHBOARD_PASSWORD |
Secret | ورود به داشبورد وب هرمس |
ROUTER_INITIAL_PASSWORD |
Secret | رمز اولین ورود داشبورد ۹روتر |
OMNI_ROUTER_KEY |
Secret | کلید دلخواه OmniRouter (مثل sk-omni-…) |
OMNI_ADMIN_PASSWORD |
Secret | رمز ادمین OmniRouter |
HF_TOKEN |
Secret | همان توکن Write (برای بکاپ/ریستور) |
BACKUP_REPO |
Variable | نامکاربری/نام-دیتاست — دیتاست خصوصی بساز |
HERMES_MODEL |
Variable | آیدی مدل از تب Models داشبورد ۹روتر (مثل kiro-claude-sonnet-4.5) |
HERMES_TIMEZONE |
Variable | Asia/Tehran |
OMNI_ENABLED |
Variable | true (برای غیرفعالکردن OmniRouter: false) |
HERMES_WEB_BACKEND |
Variable | tavily — بدون کلید کار میکند |
بعد از ستکردنها یک بار Restart Space بزن تا همهشان خوانده شوند.
بهجای آپلود دستی فایلها میتوانی از اتوماسیون همین ریپو استفاده کنی:
- این ریپو را fork کن (یا از قالب بساز)
- در تب Settings → Secrets and variables → Actions این سه را بساز:
HF_TOKEN،HF_USERNAME،HF_SPACE_NAME+ جدول سکرتهای بالا - تب Actions → «🚀 Deploy to Hugging Face Space» → Run workflow
ورکفلو خودش Space و دیتاست بکاپ را میسازد، سکرتها را داخل Space ست میکند، فایلها را آپلود میکند و تا سبز شدن صبر میکند.
| سرویس | آدرس | ورود |
|---|---|---|
| داشبورد ۹روتر | https://USER-SPACE.hf.space/ |
هر یوزر + ROUTER_INITIAL_PASSWORD |
| API مدلهای ۹روتر | …/v1 |
با NINEROUTER_API_KEY |
| داشبورد وب هرمس | …/hermes/ |
DASHBOARD_USERNAME / DASHBOARD_PASSWORD |
| API عامل هرمس | …/hermes-api/v1 |
با HERMES_API_KEY |
- در تلگرام به ربات
/startبده — باید جواب بدهد - در داشبورد ۹روتر یک API key با همان مقدار
NINEROUTER_API_KEYبساز و اکانتهای رایگان را وصل کن - مطمئن شو
HERMES_MODELدقیقاً با یکی از آیدیهای تب Models یکی است - برای روشنماندن Space: در cron-job.org یک Cron هر ۵ دقیقه به آدرس Space بساز
- تغییر هر Secret/Variable → فقط Restart Space (Factory reboot نزن؛ اگر زدی بکاپ خودش برمیگرداند)
- بکاپ هر ساعت + ۵ دقیقه بعد از بوت:
latest.tar.gz+ نگهداری ۷۲ ساعت نسخهی ساعتی - لاگهای هر سرویس:
/opt/data/logs/داخل کانتینر (از لاگهای خود HF هم دیدنی است) - اولین پیام بعد از ریاستارت ممکن است چند دقیقه طول بکشد (restore + اتصال سرویسها)
| مشکل | راهحل |
|---|---|
| Build میافتد | لاگ Build در تب Logs ببین؛ معمولاً قطعی موقت CDN است — دوباره Factory rebuild |
| ربات جواب نمیدهد | توکن را چک کن؛ TELEGRAM_ALLOWED_USERS باید آیدی عددی خودت باشد؛ Restart |
| هرمس مدلی پیدا نمیکند | HERMES_MODEL باید با آیدی تب Models داشبورد ۹روتر دقیقاً یکی باشد |
| داشبورد هرمس لاگین نمیشود | DASHBOARD_USERNAME/PASSWORD هر دو باید ست باشند؛ سپس Restart |
| Space خوابیده | یک GET به آدرس Space بزن یا Cron داشته باش؛ بکاپ ۵ دقیقه بعد از بوت برمیگردد |
| بکاپ آپلود نمیشود | HF_TOKEN باید نقش Write داشته باشد و BACKUP_REPO با فرمت user/dataset |