
مساعد شخصي ذكي يركز على الأمان.

Stavrobot هو مساعد ذكاء اصطناعي شخصي مبني على مبدأ "كل الوصول الذي يحتاجه مساعد الذكاء الاصطناعي، ولا أكثر".
يمتلك جميع الميزات الرائعة لمساعد الذكاء الاصطناعي، لكنه يركّز على العزل والتقليل من الصلاحيات. إنه خفيف الوزن ويُنشر بأمر واحد فقط docker compose up.
uv، معزول عن بيئة المضيف.تثبيت بمساعدة الذكاء الاصطناعي: اطلب من ذكاءك الاصطناعي البرمجي (Claude Code، Cursor، Windsurf، إلخ) جلب واتباع https://stavrobot.stavros.io/INSTALL.md — سيرشدك خلال الإعداد بالكامل بشكل تفاعلي.
التثبيت اليدوي:
راسل @BotFather على Telegram لإنشاء بوت وانسخ الرمز (token). راسل @userinfobot للحصول على معرّف مستخدم Telegram الخاص بك (يُستخدم كمعرّف المحادثة chat ID).
انسخ env.example إلى .env وغيّر POSTGRES_PASSWORD إلى شيء آمن وTZ إلى منطقتك الزمنية.
انسخ config.example.toml إلى data/main/config.toml واملأ الحقول المطلوبة: apiKey، password، publicHostname، [owner].name، [owner].telegram (معرّف المحادثة الخاص بك)، و[telegram].botToken. كل ما عدا ذلك في الملف اختياري.
docker compose up --build
هذا كل شيء. راسل بوتك على Telegram وسيستجيب. راجع أقسام الإعداد التفصيلية أدناه لـ Signal وWhatsApp والبريد الإلكتروني والخيارات الأخرى.
config.example.toml إلى data/main/config.toml.authFile (أو apiKey) وpublicHostname. كل ما عدا ذلك اختياري.env.example إلى .env واضبط منطقتك الزمنية (TZ). يمكن أيضًا تجاوز بيانات اعتماد Postgres وإعدادات البيئة الأخرى هناك. اضبط دائمًا POSTGRES_PASSWORD على شيء آمن — القيمة الافتراضية هي عنصر نائب ضعيف ولا ينبغي استخدامها في الإنتاج.بعد تشغيل التطبيق، افتح /settings/config لتحرير config.toml في المتصفح. الصفحة
محمية بـ HTTP Basic Auth وتعرض الإعدادات الخام، بما في ذلك أي أسرار تحتوي عليها.
يؤدي الحفظ الصالح إلى إنشاء نسخة احتياطية واحدة <CONFIG_PATH>.bak، وحفظ المحتوى
الجديد، وإعادة تشغيل التطبيق؛ وهذا يقطع أي دور للوكيل قيد التنفيذ.
تقرأ plugin-runner وcoder وsignal-bridge وpython-runner ملف config.toml فقط
عند بدء تشغيلها. التغييرات التي تؤثر عليها، مثل كلمة المرور، تتطلب إعادة تشغيل تلك
الحاويات يدويًا.
يمكن توجيه Stavrobot إلى أي نقطة نهاية متوافقة مع OpenAI (Ollama، LiteLLM، vLLM، إلخ) أو وكيل مخصص متوافق مع Anthropic عبر ضبط baseUrl في config.toml. راجع config.example.toml للحقول المطلوبة وأمثلة الإعدادات.
يدعم التطبيق وضعي مصادقة: مفتاح API أو OAuth.
apiKey في config.toml. لا حاجة لتسجيل الدخول أو الخروج.authFile في config.toml (مسار حيث ستُخزَّن بيانات الاعتماد). تعمل صفحة تسجيل الدخول مع أي مزوّد OAuth يدعمه Pi.
<your-hostname>/login في المتصفح. اتبع الإرشادات على الصفحة، وستُحفظ بيانات الاعتماد في ملف المصادقة. إذا انتهت صلاحية المصادقة أثناء تشغيل البوت، فإنه يرسل لك رسالة تحتوي على رابط تسجيل الدخول عبر منصة المراسلة الخاصة بك.authFile. سيكتشف البوت غياب بيانات الاعتماد عند الرسالة التالية ويطلب منك تسجيل الدخول مرة أخرى.حاوية coder اختيارية (مطلوبة فقط لميزة البرمجة الذاتية). تستخدم Claude Code مع مصادقة الاشتراك (OAuth)، منفصلة عن مفتاح API الخاص بالتطبيق الرئيسي.
ملفات تعريف Docker Compose مفصولة بفواصل، لذا يمكنك دمجها (مثل COMPOSE_PROFILES=signal,coder).
COMPOSE_PROFILES في ملف .env لديك ليشمل coder (مثل COMPOSE_PROFILES=coder، أو COMPOSE_PROFILES=signal,coder إذا كنت تستخدم Signal أيضًا).docker compose --profile coder up --builddocker compose exec -u coder coder claude (سيطلب منك تسجيل الدخول إذا لم تكن قد فعلت ذلك).[coder].model في إعداداتك على اسم مستعار لنموذج Claude Code (sonnet أو opus أو haiku).يتطلب Signal رقم هاتف منفصل — وليس رقمك الشخصي. تعمل شريحة SIM مدفوعة مسبقًا أو رقم VoIP.
COMPOSE_PROFILES=signal في ملف .env لديك لتمكين حاوية signal-bridge.docker compose --profile signal builddocker compose --profile signal run --rm --entrypoint bash signal-bridge -c 'signal-cli link -n "Stavrobot" | tee >(xargs -L 1 qrencode -t utf8)' — امسح رمز QR بهاتفك (Signal > الإعدادات > الأجهزة المرتبطة).docker compose --profile signal run --rm --entrypoint bash signal-bridge -c 'signal-cli -u +YOUR_NUMBER register'، ثم تحقق باستخدام docker compose --profile signal run --rm --entrypoint bash signal-bridge -c 'signal-cli -u +YOUR_NUMBER verify CODE'.[signal].account في إعداداتك.docker compose up --build/settings.
[telegram].botToken في الإعدادات الخاصة بك.[owner].telegram في الإعدادات الخاصة بك./settings.يتطلب WhatsApp رقم هاتف منفصلًا، وإلا فستكون مراسلًا لنفسك، وهو أمر لا يعمل فعليًا.
يستخدم WhatsApp Baileys، وهي مكتبة غير رسمية لـ WhatsApp Web ترتبط كجهاز مرافق (مثل WhatsApp Web). لا حاجة إلى رقم هاتف منفصل — فهي ترتبط بحساب WhatsApp الحالي الخاص بك.