Open source · MIT licence

مفتوح المصدر · رخصة MIT

DockHub — your self-hosted server, simplified DockHub — خادمك الخاصّ، ببساطة

AI-Agents

Install Docker once, then pick what you want from a menu. Forty-one services, every one of them tested on a real server before it got here.

ثبّت Docker مرّةً واحدة، ثمّ اختر ما تريد من قائمة. إحدى وأربعون خدمة، كلّ واحدةٍ منها جُرّبت على خادمٍ حقيقيّ قبل أن تصل إليك.

$git clone https://github.com/IbrahimAljuhani/dockhub.git
$sudo bash install_dockhub.shthe foundationالأساس
$bash services/services.shthe catalogueالكتالوج

The installer needs sudo. The menu runs as you, so your files stay yours.

المثبِّت يحتاج sudo. والقائمة تعمل باسمك أنت، لتبقى ملفّاتك ملكك.

Services readyخدمة جاهزة 41 / 41
Categoriesفئة 15
Installed firstأساسيّات تُثبَّت أوّلًا 4
Trackersمتتبِّعات 0

01 · The foundation

01 · الأساس

Four things, installed once

أربعة أشياء تُثبَّت مرّةً واحدة

They are the foundation every service sits on. DockHub installs them, then its job is done — remove it and they keep running, because they were never part of it.

هي أساس كلّ خدمةٍ بعدها. يُثبّتها DockHub ثمّ ينتهي دوره — لو حذفته بقيت تعمل كما هي، لأنّها لم تكن جزءًا منه.

Docker

The engine that runs everything else. Skipped if you already have it.

المحرّك الذي يشغّل كلّ ما بعده. ويُتخطّى إن كان مثبَّتًا عندك.

no pageبلا واجهة

NGINX Proxy Manager

Connects your domain name to a service, and gets it a free HTTPS certificate.

يربط اسم نطاقك بالخدمة، ويجلب لها شهادة HTTPS مجّانيّة.

:81

Portainer

A web page where you can see everything that is running, and stop or restart it. Optional, and closed to the outside unless you open it.

صفحة ويب ترى فيها كلّ ما يعمل، وتوقفه أو تعيد تشغيله. اختياريّة، ومغلقة على الخارج حتّى تفتحها أنت.

no port by defaultبلا منفذ افتراضيًّا

main-net

A private network your services share, so they can find each other by name.

شبكة خاصّة تتشارك فيها خدماتك، فيجد بعضها بعضًا بالاسم.

no pageبلا واجهة

Read this first

اقرأ هذا أوّلًا

NGINX Proxy Manager starts with the password changeme. Portainer starts with no password at all — the first person to open it becomes the admin. So the installer asks where each one should listen, and will keep them off every network interface if you let it — reachable only from the machine itself, over SSH. Answer that way and there is no race to lose.

يبدأ NGINX Proxy Manager بكلمة المرور changeme. وPortainer يبدأ بلا كلمة مرور إطلاقًا — وأوّل من يفتحه يصير هو المدير. ولهذا يسألك المُثبِّت أين تستمع كلٌّ منهما، ويُبقيهما بعيدًا عن كلّ واجهات الشبكة إن أذنت له — لا يصلهما إلّا الجهاز نفسه عبر SSH. أجب هكذا فلا يبقى سباقٌ تخسره.

02 · The catalogue

02 · الكتالوج

Fifteen categories, forty-one services

خمس عشرة فئة، وإحدى وأربعون خدمة

All of them are ready. Nothing on this page says “soon” any more — and while four of them did, they said so plainly, because a list that counts unfinished work as finished is not worth reading.

كلّها جاهزة. لم يعد في هذه الصفحة ما يقول «قريبًا» — ويوم كانت أربعٌ منها كذلك، قالتها صراحةً، لأنّ قائمةً تعدّ غير المنجَز منجَزًا لا تستحقّ أن تُقرأ.

AI

4 / 4
Ollamallama.cppLocalAIOpen WebUI

Run AI models on your own machine. Three engines, plus one screen to chat with them.

شغّل نماذج الذكاء الاصطناعيّ على جهازك أنت. ثلاثة محرّكات، وشاشةٌ تحادثها.

OpenClawHermesOpenHands

Assistants that do the work, not just talk about it. Each one runs sealed off from the rest of your server.

مساعدون ينفّذون العمل لا يتحدّثون عنه فقط. وكلٌّ منهم يعمل معزولًا عن بقيّة خادمك.

DifyFlowiseLangflowPaperclip

Build agents by drawing them instead of writing them. These run code you did not write, so they are kept off the network your other services share.

ابنِ الوكلاء برسمهم لا بكتابتهم. وهذه تُنفّذ شِفرةً لم تكتبها، لذلك تُعزَل عن الشبكة التي تتشاركها بقيّة خدماتك.

n8n

Connect your apps together and let them run without you.

اربط تطبيقاتك ببعضها ودعها تعمل من دونك.

DNS

2 / 2
Pi-holeAdGuard Home

Blocks ads and trackers for every device in the house. Run one, not both.

يحجب الإعلانات والتتبّع عن كلّ جهازٍ في البيت. شغّل واحدًا لا الاثنين.

ERP

3 / 3
OdooERPNextDolibarr

Run a business: accounts, stock, invoices, staff. ERPNext is heavy, and warns you before it starts.

لإدارة عملٍ تجاريّ: حسابات ومخزون وفواتير وموظّفون. وERPNext ثقيلة، وتنبّهك قبل أن تبدأ.

Home AssistantMosquitto

Run your smart home yourself. Nothing goes to a company's cloud.

أدِر منزلك الذكيّ بنفسك. ولا يذهب شيءٌ إلى سحابة شركة.

Media

2 / 2
JellyfinPlex

Your films and music on your own server, playing on any screen in the house.

أفلامك وموسيقاك على خادمك أنت، تُعرض على أيّ شاشةٍ في البيت.

Photos

2 / 2
ImmichPhotoPrism

Back up your phone's photos, and search them by face or place — without sending them anywhere.

انسخ صور هاتفك احتياطيًّا، وابحث فيها بالوجه أو المكان — دون أن تُرسَل إلى أيّ جهة.

OpenProjectPlaneRedmineTaigaVikunja

Tasks, boards and deadlines for a team. The biggest category here.

مهامّ ولوحات ومواعيد لفريقك. وهي أكبر فئةٍ هنا.

Vaultwarden

Your passwords, kept on your own server. Works with the Bitwarden apps you already use.

كلمات مرورك محفوظةً على خادمك أنت. ويعمل مع تطبيقات Bitwarden التي تستعملها.

Juice ShopWebGoatVulhub

Practice targets, built weak on purpose so you can learn to break in and to defend. Never opened to the internet.

أهدافُ تدريبٍ ضعيفةٌ عن قصد، لتتعلّم عليها الاختراق والدفاع. ولا تُفتح على الإنترنت أبدًا.

Storage

3 / 3
NextcloudownCloudSeafile

Your own cloud drive: files synced across your devices, stored on your server.

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

VPN

3 / 3
WireGuardNetBirdOpenVPN

Reach your home network safely from anywhere. Three ways to do it — pick what fits.

صِل إلى شبكة بيتك بأمانٍ من أيّ مكان. ثلاث طرق، اختر ما يناسبك.

Web

3 / 3
WordPressGhostLinkStack

Build a website or a blog you actually own.

أنشئ موقعًا أو مدوّنةً تملكها أنت فعلًا.

03 · The rules

03 · القواعد

Every service installs the same way

كلّ الخدمات تُثبَّت بالطريقة نفسها

Learn one and you have learned all forty-one. Seven rules, kept by every single one.

تعلّم واحدةً فقد تعلّمت الإحدى والأربعين. سبع قواعد، تلتزمها كلّ خدمةٍ بلا استثناء.

One command

أمرٌ واحد

bash deploy.sh, or pick it from the menu. There is no second step you were supposed to know about.

bash deploy.sh، أو اخترها من القائمة. ولا توجد خطوةٌ ثانية كان يُفترض أن تعرفها.

Asks, never assumes

يسأل ولا يفترض

It asks how you want it set up, and tells you the cost of each answer while you are choosing.

يسألك كيف تريد الإعداد، ويذكر لك ثمن كلّ إجابةٍ وأنت تختار.

Makes its own passwords

يصنع كلمات مروره بنفسه

A fresh one for every service, saved in a file only you can read. No service in the catalogue ships with a shared default — the proxy from section 01 does, which is why it says so.

كلمةٌ جديدة لكلّ خدمة، تُحفَظ في ملفٍّ لا يقرؤه غيرك. ولا خدمةً في الكتالوج تُشحن بكلمةٍ افتراضيّةٍ مشتركة — والوكيل في القسم الأوّل يفعل، ولهذا يقولها.

Never overwrites your edits

لا يمسّ تعديلاتك

If you changed a settings file, it keeps yours. Delete it yourself when you want the newer one.

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

Safe to rerun

آمنٌ عند الإعادة

Run it again to change a setting. It will not reinstall, and it will not erase your data.

أعِد تشغيله لتغيير إعداد. ولن يُعيد التثبيت، ولن يمحو بياناتك.

Tests itself, then admits the gap

يختبر نفسه ثمّ يعترف بما فاته

It checks what it can, then says what the check did not prove. Passing is evidence, not a guarantee.

يفحص ما يستطيع، ثمّ يقول ما الذي لم يُثبته الفحص. فالنجاح دليلٌ لا ضمان.

Leaves you a note

يترك لك ورقة

A file listing whatever is left for you to do by hand, and why each step is needed.

ملفٌّ يسرد ما بقي عليك فعله بيدك، وسببَ كلّ خطوةٍ منه.

04 · Three networks

04 · ثلاث شبكات

Not everything belongs on the internet

ليس كلّ شيءٍ مكانه الإنترنت

Give a service a domain name and anyone can reach it. Leave it without one and it stays inside your network. Several services here stay inside on purpose — and some are kept apart from each other, too.

أعطِ الخدمة اسم نطاقٍ يصل إليها أيّ أحد. واتركها بلا نطاقٍ تبقَ داخل شبكتك. وعدّة خدماتٍ هنا تبقى بالداخل عن قصد — وبعضها يُبقى بعيدًا عن بعض، أيضًا.

main-net

Anything you want reachable by a domain name

كلّ ما تريد الوصول إليه باسم نطاق

Services on this network can find each other by name, so nothing has to be opened to the outside just to make it work.

الخدمات على هذه الشبكة يجد بعضها بعضًا بالاسم، فلا يحتاج شيءٌ أن يُفتح للخارج لمجرّد أن يعمل.

ai-net

The AI models, and the assistants that use them

نماذج الذكاء الاصطناعيّ، والمساعدون الذين يستعملونها

A separate network so AI traffic stays away from the rest. Change the model engine and everything using it is re-pointed for you.

شبكةٌ منفصلة تُبقي حركة الذكاء الاصطناعيّ بعيدةً عن غيرها. وإن بدّلت المحرّك أُعيد توجيه كلّ ما يستعمله تلقائيًّا.

models-net

The flow builders — and only the models

بُناة التدفّقات — والنماذج وحدها

A network is flat: everything on it can reach everything else. The tools that let you draw an agent also run code you did not write, so they get their own network with nothing on it but the models. The models sit on both and pass the answers along.

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

Everything a service creates lives in one folder, so backing up your server means copying one place:

كلّ ما تُنشئه الخدمة يعيش في مجلّدٍ واحد، فنسخُ خادمك احتياطيًّا هو نسخُ موضعٍ واحد:

~/docker/ ├── npm/ ├── portainer/ ├── backups/ └── <service>/ ├── docker-compose.yml ├── .env ├── deploy.log ├── NEXT-STEPS.txt └── data/

05 · What it tells you

05 · ما الذي يقوله لك

It tells you the truth, not the good news

يقول لك الحقيقة، لا الخبر السارّ

Most installers only report success. These report what actually happened — because the alternative is finding out later, on a server you already trusted.

أكثر المثبِّتات لا تُبلّغ إلا بالنجاح. وهذه تُبلّغ بما جرى فعلًا — لأنّ البديل أن تكتشفه لاحقًا، على خادمٍ ائتمنتَه.

Not this

ليس هذا

Deployment complete. Everything is working.

اكتمل النشر. كلّ شيء يعمل.

This

بل هذا

Self-test passed — the interface answered. That does not prove the agent works.

نجح الاختبار الذاتيّ — الواجهة أجابت. وهذا لا يُثبت أنّ الوكيل يعمل.

Not this

ليس هذا

Optimising configuration for your system…

جارٍ تحسين الإعدادات لنظامك…

This

بل هذا

The small setting fits your graphics card. The large one does not, and will run slower. Choose.

الإعداد الصغير يتّسع لكرت الشاشة عندك. والكبير لا يتّسع وسيعمل أبطأ. اختر.

Not this

ليس هذا

Removed successfully.

تمّت الإزالة بنجاح.

This

بل هذا

Some files could not be deleted and are still on your disk. Here is exactly what is left.

بعض الملفّات تعذّر حذفها وما زالت على قرصك. وهذا نصّ ما تبقّى منها.

Not this

ليس هذا

Secure by default.

آمنٌ افتراضيًّا.

This

بل هذا

This service has no password of its own. Keep it off the internet — and here is why.

هذه الخدمة لا كلمة مرور لها. أبقِها بعيدةً عن الإنترنت — وهذا هو السبب.

06 · Requirements

06 · المتطلّبات

A Linux distribution and twenty gigabytes

توزيعة لينكس وعشرون جيجابايت

Your system is detected automatically. If that fails you are asked to pick it yourself — it never guesses wrong in silence.

يُتعرَّف على نظامك تلقائيًّا. وإن تعذّر ذلك سُئلت لتختاره بنفسك — ولا يخمّن خطأً في صمتٍ أبدًا.

OS familyعائلة النظام Versionsالإصدارات
Debian10 · 11 · 12
Ubuntu20.04 · 22.04 · 24.04 — x86_64, ARM64
Raspberry Pi OSARM64
RHEL familyCentOS · Rocky · AlmaLinux · Fedora
Arch Linuxrolling
openSUSELeap · Tumbleweed

Minimums

الحدّ الأدنى

2 GB of memory and 20 GB of disk to start. Bigger services need more and say so before they begin, not after they fail. A graphics card matters only for AI.

2 جيجابايت ذاكرة و20 جيجابايت قرص للبداية. والخدمات الأكبر تحتاج أكثر وتقول ذلك قبل أن تبدأ لا بعد أن تفشل. وكرت الشاشة لا يعني إلا الذكاء الاصطناعيّ.