Telegramingizdagi raqamli xodimlar
Mila qanday qildi: tahlillar va yangiliklar
Milalar ortida kim turibdi va qanday qoʻshilish mumkin
Milani oʻzingizga yoki mijozga oʻrnatyapsizmi? Bitta skript toza Ubuntu yoki Debian serverini tayyorlaydi: parol bilan kirish oʻchirilgan alohida foydalanuvchi, 600 huquqli token va jurnal, xabarlarni qabul qiluvchi xizmat. Skript nima qilmasligi — Claudeʼga kirmaydi, bot tokenini yozmaydi, port ochmaydi — uning birinchi qatorlarida yozilgan. Quyidagi har bir qatorda kodga havola bor.
Milani oʻziga yoki mijozga oʻrnatayotgan va nima qayerda turishini bilmoqchi boʻlgan odam uchun.
deploy/bootstrap.sh toza serverda root nomidan ishga tushadi. Undan keyin serverda alohida foydalanuvchi, muhitlar, Mila toʻplami, qabul xizmati va yopiq fayllar qoladi. Repozitoriyda oʻrnatish bir kunlik ish deb yozilgan: kechgacha xabarlar kela boshlaydi va qayta ishga tushganda yoʻqolmaydi. REFERENCE.md:495-499
Bu hisobda root huquqlari yoʻq. Parol bilan kirish oʻchirilgan: faqat kalit bilan yoki root orqali kirasiz. Kalitni --ssh-key bayrogʻi bilan berasiz.
Foydalanuvchi xizmatlari SSH-sessiya yopilgandan keyin ham ishlayveradi. Xabarlarni qabul qiluvchi — Restart=always sozlamali systemd xizmati.
Shu foydalanuvchi uchun Bun, Node va Claude Code oʻrnatiladi, keyin toʻplam va uning oʻrnatuvchisi: koʻnikmalar, ishga tushirish buyrugʻi, hooklar.
bootstrap.sh:104-133 bootstrap.sh:135-160 deploy/README.md:45~/.claude/channels/telegram/ va uning ichki papkalariga faqat shu foydalanuvchi kira oladi.
Skript bot tokeni, kiruvchi xabarlar jurnali va kirish roʻyxatiga 600 huquq qoʻyadi: ularni faqat fayl egasi oʻqiy va yoza oladi. bootstrap.sh:217-224 deploy/README.md:49
mila doctor buni keyin ham tekshirib turadi. U huquqlarni son sifatida solishtirmaydi: 0444 soni 0600 dan kichik, lekin tokenni hammaga oʻqishga ochib qoʻyadi. U boʻlmasligi kerak boʻlgan bitlarni qidiradi va qaysi chmod buyrugʻini bajarishni yozib beradi. doctor.py:248-271
Oʻrnatuvchi asboblar siyosatini ham shu papkaga, 600 huquq bilan qoʻyadi. install/install.sh:239-251
--dry-run bayrogʻi bilan skript hech narsani oʻzgartirmaydi va qiladigan har bir qadamini ekranga chiqaradi. README aynan shundan boshlashni va chiqqan natijani ovoz chiqarib oʻqishni maslahat beradi. deploy/README.md:29-35 bootstrap.sh:40-43
Qayta ishga tushirish xavfsiz: bajarilgan qadamni skript oʻtkazib yuboradi va buni aytadi. deploy/README.md:51 bootstrap.sh:4-6
Avval u tizimni tekshiradi: root nomidan ishga tushdimi, Ubuntu yoki Debianmi. Aks holda toʻxtaydi va sababini yozadi. bootstrap.sh:45-52
$ scp deploy/bootstrap.sh root@server:/tmp/ $ ssh root@server \ 'bash /tmp/bootstrap.sh --user mila --dry-run' # oʻqidingiz — endi haqiqiy ishga tushirish: $ ssh root@server \ 'bash /tmp/bootstrap.sh --user mila'
rm -rf va DROP TABLE kartochkasiz rad etiladiSiyosat Milaning qaysi buyruqlari oʻzi bajarilishini, qaysilari rad etilishini va qaysilari odamni kutishini hal qiladi. Qoidalar yuqoridan pastga oʻqiladi, birinchi mos kelgan qoida ishlaydi; roʻyxatda yoʻq hamma narsa — «ask», yaʼni soʻrash. permissions.example.json:2-4 permission_policy.ts:8-15
Rekursiv oʻchirish, baza yoki jadvalni yoʻq qilish, mkfs, dd bilan diskka yozish, chmod -R 777 /. Hech kim uygʻotilmaydi: bu oldindan hal qilingan.
git status, ls, cat, grep va shunga oʻxshashlar; fayllarni oʻqish, qidirish va tahrirlash. Kartochkasiz bajariladi va jurnalga yoziladi.
Milaning oʻz skriptlari, qolgan shell buyruqlari va uning oʻz tizim fayllariga yozish: hooklar, sozlamalar, access.json, .env. Kartochka 15 daqiqa kutadi; javob boʻlmasa — rad.
Siyosat fayli buzilsa, hammasi «allow» emas, «ask» boʻladi. Bir daqiqada 25 tadan ortiq kartochka chiqsa, qolganlari oʻzi rad etiladi: cheksiz aylanish sizni kartochkalarga koʻmib tashlamaydi.
permissions.example.json:2 permission_policy.ts:19-25 permissions.example.json:6-7Skript hech kimning oʻrniga Claude Codeʼga kirmaydi, bot tokenini yozmaydi va tashqariga port ochmaydi. Bu ataylab shunday: akkaunt va obuna mijozning oʻziniki, klaviaturadagi qoʻl ham uniki. Bitta obunani bir necha kishi ishlatsa, provayder shartlari buziladi va ikkala akkaunt ham xavf ostida qoladi. bootstrap.sh:11-15 deploy/README.md:11-23
Oxirida skript uchta qadamni chiqaradi. mila doctor — qabul testi: undan oʻtmagan server mijozga berilmaydi. bootstrap.sh:226-247 deploy/README.md:77-79
Keyin — telefondan juftlash va policy allowlist: ungacha bot nomini topgan har kim juftlash kodini oladi. deploy/README.md:81-89
1 su - mila; claude # mijozning oʻz akkaunti bilan kirish 2 /plugin install mila-telegram@mila /mila-telegram:configure <token> 3 systemctl --user enable --now \ mila-telegram-receiver mila doctor
mila backup run bor, lekin jadvalni va arxiv qayerda turishini har bir mijoz uchun alohida hal qilasiz. Shu diskning oʻzidagi zaxira xatolardan saqlaydi, mashina yoʻqolishidan emas. deploy/README.md:112-115--kit yoki repozitoriy manzili bilan MILA_CORE_REPO kerak; aks holda skript eslatma qoldiradi va oʻrnatuvchi ishga tushmaydi. bootstrap.sh:137-160| Fayl | Nima qiladi |
|---|---|
| deploy/bootstrap.sh | server skripti: foydalanuvchi, muhitlar, toʻplam, papkalar, xizmat, huquqlar |
| deploy/README.md | butun yoʻl: quruq ishga tushirish, qoʻlda uchta qadam, mijozga topshirish (ingliz tilida) |
| install/install.sh | toʻplam oʻrnatuvchisi: koʻnikmalar, hooklar, asboblar siyosati |
| permissions.example.json | siyosat namunasi: standart holatda ask, deny va allow nomma-nom |
| permission_policy.ts | siyosat qanday oʻqiladi: uchta natija, buzilgan fayl, kartochkalar limiti |
| install/doctor.py | mila doctor: kanal tekshiruvi va ortiqcha huquq bitlari |
| docs/REFERENCE.md | oʻrnatish — bir kun; undan keyin nima qoladi (ingliz tilida) |
Toʻplam ochiq: koʻnikmalar, hooklar, asboblar va shablonlar. Oʻz serveringizda bootstrap.sh --dry-run buyrugʻini ishga tushiring: u hech narsani oʻzgartirmaydi va har bir qadamni koʻrsatadi.
Sahifadagi faktlar: github.com/shakhruz/mila (main, 8a6b97d, v1.5.2), 25.10.2026 da tekshirilgan. Telefondagi qatorlar — skript quruq ishga tushganda oʻzi chiqaradigan matndan parcha. «Mila», «MILAGPT» va logotip — MILAGPT tovar belgilari.