التثبيت

تثبيت Toutadmin

إصداران من المنتج نفسه: أحدهما يعمل خدمةً على خادمك، والآخر يُوضع على استضافة مشتركة. لا قاعدة بيانات مطلوبة ولا خدمة من طرف ثالث — غير أنّ خادوم MySQL يُقاد إن كان لديك واحد. احسب ساعة واحدة.

مُستضاف في أوروبا، ولا شيء تُثبِّته: مجاني حتى خمسة موظفين، والمنتج كاملًا من اليوم الأول.

التنزيل مفتوح للجميع

الصيغة المجانية لا تقف عند SaaS: فحتى خمسة موظفين يمكنك كذلك أن تُثبِّت المنتج عندك — ملفاتك وقاعدتك ونسخك الاحتياطية — من غير أن تدفع شيئًا. الذي يحدِّد الصيغة هو عدد الموظفين، لا المكان الذي تعمل فيه النسخة. وفوق خمسة موظفين يلزم اشتراك، سواء عملت النسخة عندنا أو عندك.

انظر الصيغ

أيّهما تثبّت

الاختيار يتوقف على استضافتك لا على حاجاتك الوظيفية: الإصداران يفعلان الشيء نفسه تمامًا.

إصدار Node

لخادم تديره بنفسك: جهاز واحد، خدمة دائمة، ووسيط عكسي أمامها.

‏Node 22، ومترجم C، وقرص محلي. جهاز بنواة واحدة يكفي لبضع عشرات من الأشخاص. ويُدار خادم MySQL إن كان لديك واحد؛ وإلا فإنّ SQLite لا يطلب شيئًا.

إصدار PHP

لاستضافة مشتركة: مجلد تُحمّله، وملف تملؤه، ومهمة مجدولة. لا حاجة إلى سطر أوامر.

‏PHP 8.1 وامتداد SQLite. لا اعتمادية تُثبَّت: لا Composer ولا مدير حزم. ويُضاف امتداد PDO MySQL إن فضّلت خادم قاعدة بيانات.

الاختيار يبقى قابلًا للرجوع

يتقاسم الإصداران مخطط قاعدة البيانات نفسه وصيغة كلمة المرور نفسها. الانتقال من أحدهما إلى الآخر هو نسخ ملف قاعدة وخمسة مجلدات: لا تحويل، ولا أحد مضطر إلى تغيير كلمة مروره.

SQLite أم MySQL

وأيّ قاعدة بيانات

الاختيار الثاني، وهو وحده العسير تبديله. ولا يتعلّق بالإصدار: كلاهما يقبل المحرّكين، والتوليفات الأربع تمرّ على الاختبارات نفسها.

SQLite

ملفّ على قرص الخادوم. لا شيء يُثبَّت، ولا شيء يُدار، ولا شيء يُراقَب — والنسخة المُشغَّلة تنتقل بنسخ مجلّد.

هو الافتراضيّ، والجواب الصحيح في أكثر الحالات: خادوم تطبيق واحد، وقرص محلّيّ يبقى من نشرٍ إلى نشر.

MySQL أو MariaDB

خادوم قواعد بيانات، على الآلة نفسها أو في مكان آخر من الشبكة. فتعيش البيانات حيث يحفظها قسم المعلوماتية عندكم ويستنسخها ويراقبها أصلًا.

يُؤخذ لثلاثة أسباب: عدّة خواديم تطبيق على قاعدة واحدة، أو سياسة داخلية تفرضه، أو قرص تطبيق زائل — حاوية تُعاد صناعتها عند كلّ نشر.

ليس MySQL خيار السرعة

هذا أشيع الاعتقادات، وهو خاطئ: فـSQLite يعيش داخل العملية، وMySQL خلف مقبس. وبقياسنا على ألفي عملية، يكون SQLite أسرع بمرّتين ونصف إلى مئة وخمسين مرّة بحسب العملية — ويصمد في المقارنة حتّى مع ثمانية كتّاب متزامنين. إنّما يُختار MySQL لمكان سكن البيانات ولمن يديرها، لا لزمن الاستجابة.

التفصيل، بالأرقام

في خمس دقائق

التثبيت السريع

ما يكفي لفتح المساعد. أما التفصيل فيأتي بعده مباشرة، خطوة خطوة، مع ما يفعله كل أمر ولماذا.

إصدار Node

ثلاثة أوامر على خادم تُديره أنت. والأخير يولِّد رمز تثبيت ويشغِّل النسخة.

git clone <votre-dépôt> toutadmin
cd toutadmin && npm ci --omit=dev
INSTALL_TOKEN=$(openssl rand -hex 16) \
NODE_ENV=production node src/server.js

إصدار PHP

ولا سطر أوامر واحد: مجلد يُودَع، وملف يُنسَخ، وحق كتابة يُفتَح.

# 1. déposer le dossier (racine web → public/)
# 2. cp config.sample.php config.php
# 3. chmod 770 data/
# 4. ouvrir https://votre-domaine/install

ثم يتولى المساعد الباقي

تبدأ النسخة فارغة وتنغلق على نفسها: ما دامت غير مثبَّتة فكل عنوان يفضي إلى المساعد، وما إن تُثبَّت حتى يختفي المساعد إلى الأبد.

  1. 1 اللغةلغة النسخة، من بين الست عشرة. تُغيَّر لاحقًا، ويحتفظ كل واحد بلغته.
  2. 2 المتطلباتيتفقَّد المساعد ما تحت قدميه: الإصدار، وحقوق الكتابة، والقاعدة، والمجلدات. وما ينقص يُسمَّى ولا يُخمَّن.
  3. 3 قاعدة البياناتSQLite في ملفّ لا يطلب شيئًا، أو MySQL / MariaDB إن كان لديك واحد. يجرّب المُرشد الاتّصال قبل أن يلتزم به.
  4. 4 المؤسّسةاسم الشركة ورصيد الإجازة السنوي. جوابان، يمكن تعديلهما بعد ذلك.
  5. 5 المديرالحساب الأول. اثنا عشر محرفًا على الأقل: وهو الحساب الوحيد الذي ينشئ غيره.
  6. 6 التثبيتالملخّص، ثمّ الوضع على أربع مراحل تُعلَن على الشاشة. ويُغلق المُرشد نفسه إلى غير رجعة.
https://votre-domaine/install

ضع رمز التثبيت قبل أن تفتح المنفذ

بين أول تشغيل ومرورك أنت بالمساعد، يستطيع أوَّل قادم أن ينشئ حساب الإدارة. ورمز INSTALL_TOKEN يغلق هذه النافذة: فبدونه يرفض المساعد أن يُفتَح.

مساعد التثبيت
مساعد التثبيت مساعد التثبيت
إصدار Node

على خادمك، في أربع خطوات

  1. الجلب والتثبيت

    ‏npm ci بدل npm install: يثبّت تمامًا ما يصفه ملف القفل. على خادم، نسخة تنزلق هي عطل لا يفهمه أحد.

    git clone <votre-dépôt> /var/www/toutadmin
    cd /var/www/toutadmin
    npm ci --omit=dev
  2. الضبط

    كل شيء يُضبط بمتغيرات البيئة، ولا شيء منها إلزامي. ضع INSTALL_TOKEN قبل فتح المنفذ: بين أول إقلاع ومرورك بالمعالج، أول قادم هو من كان سيُنشئ حساب الإدارة.

    cp .env.example .env
    # PORT, NODE_ENV=production, INSTALL_TOKEN…
  3. تسليمه إلى النظام

    المنتج المشغَّل يدويًا يتوقف حين تغلق الطرفية. الخدمة تعيد التشغيل من تلقاء نفسها، ولا يُسمح لها بالكتابة إلا في مجلد بياناتها.

    sudo systemctl enable --now toutadmin
    journalctl -u toutadmin -f
  4. تعمية الاتصال

    لا تقدّم منفذ التطبيق مباشرة على الإنترنت أبدًا. خلف الوسيط، تضع النسخة ترويسات الأمان بنفسها — ومنها HSTS، وعلى اتصال معمّى سلفًا وحده.

    sudo certbot --nginx -d intranet.exemple.fr
إصدار PHP

على استضافة مشتركة، في أربع خطوات

  1. رفع الملفات

    هنا يقع الخطأ. إن قدّم الخادم المجلد كله، صارت قاعدة البيانات قابلة للتنزيل من أي أحد: الحسابات وبصمات كلمات المرور والخزنة معها.

    # déposer le dossier ; la racine web pointe sur public/, pas sur le dossier
  2. كتابة الإعداد

    المعالج هو من يكتب الإعدادات، ويفعل ذلك أخيرًا: ما دام الملف غير موجود، فإنّ تثبيتًا انقطع لم يترك وراءه شيئًا. ويضع فيه مفتاحًا خاصًّا بالمثيل يختم التوقيعات ويشفّر الأسرار في القاعدة — فاحفظه مع البقية.

    cp config.sample.php config.php
    php -r "echo bin2hex(random_bytes(32));"   # session_secret
  3. فتح صلاحيات الكتابة

    ‏SQLite يكتب ملفات مجاورة للقاعدة: المجلد هو ما يجب أن يكون قابلًا للكتابة، لا الملف وحده. أما بقية المنتج فيمكن أن تبقى للقراءة فقط.

    chmod 770 data/     # le dossier, pas seulement la base
  4. جدولة المسح

    موقع PHP لا يحيا إلا أثناء طلب. المهمة المجدولة تغلق العقود المنتهية، وتصدر الفواتير الدورية، وترسل خطافات الويب، وتنشئ النسخ الاحتياطية.

    * * * * * /usr/bin/php /var/www/toutadmin/tools/cron.php

قبل أن تفتحه للزملاء

نسخة تغادر المبنى

خذ واحدة فورًا والقاعدة ما تزال صغيرة، واضبط الوجهة البعيدة. أرشيف يبقى على الخادم الذي يحميه لا يحمي شيئًا.

حساب تجريبي بلا صلاحيات

ادخل به وتجوّل. هذه هي الطريقة الوحيدة لترى الأداة كما سيراها زملاؤك — وهي أكثر تحقّق يُتخطّى.

مديران، لا واحد

إن فعّلت التحقق بخطوتين ثم فقدت الهاتف ورموز الاسترجاع معًا، فلا يفتح لك الباب إلا مدير آخر. ليس هناك باب خلفي.

الدليل الكامل في التوثيق

هذه الصفحة تعطي الخطوط العامة. أما التوثيق فيعطي كل ما بقي: إعداد الخادم الأمامي، والصلاحيات الدقيقة، والشهادات، والاستعادة، والترقية، وحل المشكلات حسب العَرَض — والدليلين كاملين، واحدًا لكل إصدار.

ابدأ مجانًا، وغيّر الباقة حين تكبر

الموظفون الخمسة الأوائل مجانًا، دائمًا. وما فوق ذلك، ٥ يورو لكل موظف شهريًا. ولا حاجة إلى بطاقة للتجربة.