اجراگر
اجراگر برنامهای است که روی سرور شما مینشیند، تسکهای تأییدشده را برمیدارد و ترمینال را اجرا میکند. با آن، کار بدون حضور شما جلو میرود.
چرا روی سرور خودتان
چون رمزها آنجا میمانند. کلید SSH سرور مشتری، توکن گیت، رمز دیتابیس — هیچکدام به کاربانر نمیرسند. Runner آنها را از فایل محلی میخواند و فقط به محیط ترمینال تزریق میکند.
لاگ اجرا هم محلی است. اگر کاری شکست بخورد، فقط کد خروج و مسیر لاگ در کامنت ثبت میشود، نه خودِ خروجی.
نصب
cd runner && ./install.sh
karbaner-runner init # ~/.karbaner/runner.toml را میسازد
بعد در runner.toml سه چیز را پر کنید:
token— از پنل ← توکنها ← نوع اجراگرcommand— دستور اجرای انجین. کاربانر انجین پیشفرض ندارد؛ هرچه دارید استفاده کنید.workspaces_dir— پوشهای که هر پروژه زیرش workspace خودش را میگیرد
karbaner-runner register
karbaner-runner run
وصلکردن پروژه
در تنظیمات پروژه: اجراگر را انتخاب کنید و حالت اجرا را خودکار کنید. از آن به بعد هر تسکی که تأیید کنید، ظرف چند ثانیه برداشته میشود.
اجرای دائمی
پروسهی ترمینالی با بستن پنجره از بین میرود. برای همیشهروشن بودن:
- لینوکس:
deploy/karbaner-runner.service(systemd) - macOS:
./deploy/install-macos.sh(launchd)
هر دو بعد از کرش خودشان بالا میآیند.
secretها
برای هر پروژه یک فایل بسازید:
~/.karbaner/secrets/<project-slug>.env
هر خطش یک KEY=value است و در محیط ترمینال قرار میگیرد. این فایل هرگز خوانده یا ارسال نمیشود.
رفتارهای محافظتی
- تسکی که همین حالا اجرا شد یا شکست خورد، بلافاصله دوباره برداشته نمیشود.
- بعد از سه تلاش بیثمر — چه شکست، چه اجرایی که هیچ چیزی را جلو نبرد — تسک با یک کامنت توضیحی به شما برگردانده میشود.
- وضعیتهای «منتظر» و «بازبینی» اصلاً واگذار نمیشوند؛ آنها یعنی نوبت یک انسان است.
- با خاموششدن اجراگر، کار در جریان قطع نمیشود؛ تا پایان یا تا مهلت
drain_secondsصبر میکند.