لماذا تستضيف طرفية SSH بنفسك
يحتفظ برنامج SSH المكتبي بخوادمك ومفاتيحك على حاسوب واحد، وتزامنها خدمة سحابية مثل Termius عبر طرف ثالث مقابل اشتراك لكل مستخدم. يسلك Termix طريقاً ثالثاً: خادم تستضيفه أنت، يمكن الوصول إليه من أي متصفح أو من تطبيق سطح المكتب أو الهاتف، مع حسابات ومشاركة حسب الدور للفريق كله.
لتثبيته على VPS بدل جهاز داخل الشبكة التي يديرها ميزة بسيطة: عندما تتعطل تلك الشبكة تبقى الطرفية متاحة، وهي اللحظة التي تحتاجها فيها تحديداً.
ما يقدمه Termix
- طرفية SSH — تبويبات وشاشة مقسومة وسجل ولوحة أوامر ومقتطفات قابلة لإعادة الاستخدام.
- ملفات SFTP — تصفّح الملفات وتحريرها ونقلها، حتى من خادم إلى آخر.
- Docker — قائمة الحاويات والسجلات والإحصاءات والطرفية عبر SSH دون أي وكيل.
- المقاييس — المعالج والذاكرة والقرص والشبكة لكل خادم مباشرة.
- خزنة بيانات الاعتماد — كلمات المرور والمفاتيح مشفرة لكل مستخدم وقابلة لإعادة الاستخدام.
- الفريق — حسابات وأدوار ومشاركة الخوادم على أربعة مستويات وسجل تدقيق وTOTP ومفاتيح المرور.
- الإضافات — سطح مكتب بعيد RDP/VNC وأنفاق SSH وKubernetes وProxmox ودخول موحد OIDC حسب حاجتك.
Termix أم Termius أم برنامج SSH مكتبي؟
مرّر الجدول أفقيًا
| Termix (استضافة ذاتية) | Termius | برنامج SSH مكتبي | |
|---|---|---|---|
| أين توجد خوادمك ومفاتيحك | على خادمك | تُزامَن عبر خدمة الناشر | على حاسوب واحد |
| الترخيص | Apache-2.0، مفتوح المصدر | مملوك | متفاوت (OpenSSH وPuTTY مجانيان) |
| التكلفة | سعر الخادم | اشتراك للمزامنة والفرق | مجاني |
| الوصول من المتصفح | نعم | لا، تطبيق للتثبيت | لا |
| مشاركة الخوادم مع الفريق | نعم، أدوار وسجل تدقيق | نعم، باقات الفرق | لا |
| Docker وملفات SFTP والمقاييس | مدمجة عبر الإضافات | SFTP دون Docker | أدوات منفصلة |
المتطلبات
يكفي VPS بنظام Ubuntu 24.04 بذاكرة 1 غيغابايت وقرص 2 غيغابايت: يستهلك Termix نحو 330 ميغابايت عند الخمول. تحتاج إلى Docker مع إضافة Compose، وإلى اسم مضيف للوصول عبر HTTPS — نطاق فرعي من أحد نطاقاتك أو النطاق الفرعي المجاني المرفق مع VPS من ServOrbit.
تثبيت Termix باستخدام Docker Compose
إنشاء ملف Compose
أنشئ المجلد
/opt/termixوضع فيه ملفdocker-compose.ymlالتالي. يُنشر المنفذ على الواجهة المحلية فقط، وnginx هو من يعرضه عبر HTTPS.services: termix: image: ghcr.io/termix-ssh/termix:26.10.4 restart: unless-stopped ports: - "127.0.0.1:8080:8080" environment: PORT: "8080" volumes: - termix-data:/app/data volumes: termix-data: {}تشغيل الحاوية
شغّل Termix وتابع إقلاعه:
docker compose up -d docker compose logs -f termixعند أول تشغيل يولّد Termix أسراره بنفسه (JWT ومفتاح القاعدة ومفتاح التشفير) ويحفظها في المجلد
/app/data. يدل السطرTermix backend started successfullyعلى أنه جاهز خلال ثوانٍ.نشر Termix عبر HTTPS
في كتلة
serverمن إعدادات nginx، مرّر الحركة إلى الحاوية. الترويستانUpgradeوConnectionضروريتان لأن الطرفية تعمل عبر WebSockets.location / { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_read_timeout 1h; }ثم احصل على شهادة (Certbot أو ما يماثله). عند التثبيت من متجر ServOrbit تُنجز هذه الخطوة نيابة عنك.
إنشاء حساب المسؤول
افتح عنوان HTTPS الخاص بك: يعرض Termix نموذج التسجيل، وأول حساب يُنشأ يصبح المسؤول. أنشئه فوراً ثم عطّل التسجيل العام من إعدادات الإدارة. أضف بعدها خادماً (العنوان ومنفذ SSH والمستخدم والمفتاح أو كلمة المرور): تُفتح الطرفية في تبويب.
أغلق الباب مباشرة بعد التثبيت
ما دام لا يوجد أي حساب، يستطيع كل من يصل إلى العنوان إنشاء حساب المسؤول. أنشئ حسابك فور انتهاء التثبيت، وعطّل التسجيل، ثم فعّل TOTP أو مفتاح مرور. طرفية تحفظ مفاتيح SSH تستحق الحماية نفسها التي تستحقها الخوادم.
النسخ الاحتياطي والتحديث
كل البيانات — قاعدة SQLite ومفاتيح التشفير المولّدة والإضافات — موجودة في المجلد termix-data. أرشفه بانتظام:
docker run --rm -v termix_termix-data:/data -v "$PWD":/backup alpine \
tar czf /backup/termix-$(date +%F).tar.gz -C /data .احفظ هذا الأرشيف في مكان آمن: دون المفاتيح التي يحتويها لا يمكن فك تشفير بيانات الاعتماد المحفوظة. للتحديث، غيّر وسم الصورة في ملف Compose ثم نفّذ docker compose pull && docker compose up -d.
الإضافات التي تُفعَّل أولاً
يأتي Termix مع إضافاته الرسمية، ويفعّلها المسؤول أو يحدّثها أو يزيلها من تبويب Plugins. لتثبيت أول على خادم تكفي غالباً أربع إضافات: SSH Terminal وFile Manager للعمل اليومي، وDocker لإدارة حاويات خوادمك دون فتح جلسة، وHost Metrics لمعرفة الخادم المُثقَل بنظرة واحدة.
تليها الإضافات التي تخدم الفريق: TOTP وPasskeys للمصادقة الثنائية، وSingle sign-on لربط مزوّد OpenID Connect تستضيفه أصلاً (Authentik أو Pocket ID أو ZITADEL)، وSession Recording إن احتجت إلى أثر لتدخلات مزوّد خدمة. عطّل ما لا تستخدمه: كل إضافة معطّلة سطح أقل للصيانة، وإضافة Usage Statistics التي ترسل تقريراً يومياً مجهول الهوية تُعطَّل مثل غيرها.
حل المشكلات
تُفتح الطرفية ثم تُغلق فوراً. الوكيل العكسي لا يمرّر WebSockets: تحقّق من الترويستين Upgrade وConnection في إعدادات nginx، ثم أعد تحميله بالأمر nginx -t && systemctl reload nginx.
يفشل الاتصال بخادم. جرّب أولاً الاتصال نفسه من سطر الأوامر على الخادم (ssh -p <port> <user>@<host>): إن فشل أيضاً فالمشكلة في الجدار الناري أو المفتاح وليست في Termix. للخادم الذي لا يُصل إليه إلا من شبكتك الداخلية، استخدم خادماً وسيطاً أو شبكة VPN مثل WireGuard.
لا تُفتح بيانات الاعتماد المحفوظة بعد الاستعادة. المجلد المستعاد لا يحتوي مفاتيح التشفير المولّدة عند أول تشغيل: استعد المجلد termix-data كاملاً، ولا تكتفِ بقاعدة SQLite وحدها.
الواجهة لا تستجيب. اقرأ السجلات بالأمر docker compose logs --tail 100 termix: يسجّل Termix عند الإقلاع كل مرحلة (القاعدة والإضافات والخلفية)، وآخر سطر يدلّك على مكان التوقف.
التثبيت بنقرة واحدة من متجر ServOrbit
يثبّت متجر ServOrbit تطبيق Termix على خادمك دون سطر أوامر: ينشر الحاوية ويضبط nginx عبر HTTPS مع WebSockets ويعطيك عنوان الوصول في لوحة العميل. اختر نطاقاً فرعياً من أحد نطاقاتك أو النطاق الفرعي المجاني، ثم أنشئ حساب المسؤول عند أول وصول.