
به اشتراک بگذارید

به اشتراک بگذارید
هر بار که تغییری را به گیت میفرستید، باید SSH بزنید، git pull کنید و کانتینر را دستی از نو بسازید؟ کولیفای (Coolify) و داکپلوی (Dokploy) این چرخه را به یک push میسپارند: پنلی روی سرور مجازی خودتان نسخه تازه را میسازد و بالا میآورد. فرقشان در منابع، لایسنس و رجیستریهایی است که اسکریپت نصب از آن ایمیج میگیرد.
در یک نگاه؛ هر اولویت به کدام پنل نزدیکتر است
💡 ایمیجهای نصب از Docker Hub میآیند
پلتفرم PaaS خودمیزبان یعنی پنلی روی سرور خودتان که کد گیت را خودکار میسازد و اجرا میکند.
✅ هر دو در دقیقه اول نصب سراغ Docker Hub میروند.
✅ سروری که آن دقیقه را با 403 تمام میکند، با رفع تحریم داکر روی سرور ایران برای نصب پنل آماده میشود.
بیشتر مقایسهها از رابط کاربری شروع میکنند. روی سرور ایران، معیاری که کمتر دیده میشود تصمیم را میگیرد: اسکریپت نصب در دقیقه اول از کدام رجیستری ایمیج میکشد. اگر آن رجیستری بسته باشد، نصب نیمهکاره میماند.
📌 از اسکریپت نصب تا اولین push
◀️ پلتفرم استقرار شخصی؛ چه کاری را از دوش شما برمیدارد
◀️ کولیفای و داکپلوی کنار هم؛ منابع، لایسنس و منبع دانلود
◀️ نصب، اتصال به گیت و اولین استقرار با Push
◀️ کدام را انتخاب کنیم وقتی سرور در ایران است؟

پلتفرم استقرار شخصی ساخت ایمیج از روی کد، اجرای کانتینر، اتصال دامنه و تمدید گواهی HTTPS را به یک پنل میسپارد. تجربه شبیه Heroku است، ولی روی سرور خودتان.
این دو پنل به دو شرکت اجاره دفتر کار مبله میمانند. هر دو میز و برق و اینترنت را آماده میکنند تا فقط کدتان را بیاورید؛ فرق در شرایط قرارداد است و اینکه اگر مدیر ساختمان برود، میزتان میماند یا نه.
طبق صفحه معرفی مستندات، Coolify با SSH به سرور وصل میشود و ساخت، استقرار، دامنه و HTTPS را هماهنگ میکند. داکپلوی هم Traefik را برای دامنه و گواهی کنار خودش نصب میکند. دیگر برای هر سایت پیکربندی nginx نمینویسید.
مستندات کولیفای صریح نوشته که بهروزرسانی سیستمعامل، فایروال، DNS، داده و پشتیبانگیری آزموده، بهعلاوه نگهداری خود پنل، با صاحب سرور است. داکپلوی چنین فهرستی ندارد، اما روی سرور شما اجرا میشود و همین کارها آنجا هم با شماست.
جدول از مستندات و اسکریپتهای نصب در 4 نوامبر 2026 است (کولیفای پایدار 4.6.0).
| معیار | کولیفای | داکپلوی |
|---|---|---|
| حداقل در مستندات | ۲ هسته، ۲ گیگابایت رم، ۱۰ گیگابایت دیسک آزاد | ۲ گیگابایت رم، ۳۰ گیگابایت دیسک |
| هشدار یا توقف اسکریپت | زیر ۳۰ گیگابایت دیسک کل یا ۲۰ آزاد هشدار میدهد و ادامه میدهد | با اشغال بودن پورت 80، 443 یا 3000 متوقف میشود |
| لایسنس | تمام مخزن زیر Apache 2.0 | زیر Apache 2.0، جز پوشههای /proprietary با لایسنس DSAL |
| ایمیجهای نصب و پراکسی | ایمیج docker.io/coollabsio/coolify و helper، postgres:15-alpine، redis:7-alpine و پراکسی traefik:v3.7 | ایمیج dokploy/dokploy، postgres:16 و traefik:v3.6.25 |
| تغییر رجیستری | متغیر REGISTRY_URL، فقط برای ایمیج پنل و helper | گزینهای در اسکریپت نیست |
| بستر اجرای برنامه | کانتینرهای معمولی Docker | روش Compose با docker compose؛ Application و Stack روی Swarm |
| پراکسی معکوس | پیشفرض Traefik؛ Caddy یا حالت None هم هست | Traefik |
صفحه نصب کولیفای میگوید اگر هزینه مهم است، با ۱ هسته و ۱ گیگابایت رم شروع کنید و بعد ارتقا دهید؛ ۵۱۲ مگابایت را توصیه نمیکند. مستندات نصب داکپلوی عددی کمتر از ۲ گیگابایت نمیدهد. این عددها سهم خود پنل است و ساخت ایمیج رم جداگانه میخواهد.
مخزن کولیفای یکسره Apache 2.0 است. طبق فایل لایسنس داکپلوی، پوشههای /proprietary زیر DSAL قرار دارند؛ این لایسنس استفاده عملیاتی را به قرارداد تجاری مشروط میکند و توسعه و تست را آزاد میگذارد. مستندات Enterprise آن هم قابلیتهایی مثل SSO، نقش سفارشی و لاگ ممیزی را به کلید لایسنس گره میزند.
در اسکریپت کولیفای، REGISTRY_URL فقط ایمیج پنل و helper را جابهجا میکند؛ postgres، redis و Traefik بدون نام رجیستری نوشته شدهاند و از Docker Hub میآیند. داکپلوی هم هر سه ایمیجش را از Docker Hub میگیرد. برای گرفتن ایمیج پنل از ghcr.io، متغیر را جلوی bash بگذارید نه curl: | REGISTRY_URL=ghcr.io bash.
🔸 هر دو اسکریپت Docker را هم از اینترنت نصب میکنند
هر دو اسکریپت Docker را در صورت نبودن از get.docker.com نصب میکنند. روی سرور ایران، اول دریافت ایمیج را با تحریم داکر و تنظیم میرور رجیستری درست کنید و یک docker pull postgres:16 آزمایشی بگیرید. برای نصب دستی Docker، راهاندازی Docker Engine روی Ubuntu 24.04 را ببینید.

هر دو پنل با یک دستور رسمی و دسترسی root روی سرور تازه نصب میشوند و به مخزن وصل میشوند. رکورد A دامنه را از قبل به IP سرور ببرید؛ گواهی Let’s Encrypt از راه پورت 80 صادر میشود.
داشبورد بعد از نصب روی پورت 8000 است. حساب مدیر را بیمعطلی بسازید، چون به گفته مستندات هر کسی زودتر ثبتنام کند مدیر و صاحب دسترسی root میشود؛ اسکریپت هم برای این کار ۱۰ دقیقه وقت میدهد. راه امنتر، ساختن حساب هنگام نصب با ROOT_USERNAME، ROOT_USER_EMAIL و ROOT_USER_PASSWORD است. از فایل .env نصب (حاوی APP_KEY) هم پشتیبان بگیرید.
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
این اسکریپت سرور را با docker swarm leave --force از هر Swarm قبلی بیرون میبرد، اگر Docker نباشد نسخه 28.5.0 را نصب و با apt-mark hold قفل میکند و به /etc/dokploy مجوز 777 میدهد. پس فقط روی سرور تازه اجرا کنید و وصله امنیتی Docker را دستی دنبال کنید.
curl -sSL https://dokploy.com/install.sh | sh
داشبورد روی پورت 3000 با صفحه ساخت حساب مدیر باز میشود؛ این صفحه را هم همان لحظه پر کنید.
⚠️ پورتهای 80 و 443 در اختیار کیست
پراکسی معکوس هر دو پنل صاحب پورتهای 80 و 443 است و nginx جدا نباید روی آنها باشد. راهنمای فایروال کولیفای بستن 8000، 6001 و 6002 را بعد از رساندن داشبورد به دامنه مجاز میداند. داکپلوی برای بستن 3000 دستور docker service update --publish-rm "published=3000,target=3000,mode=host" dokploy را داده است. ufw این پورتها را نمیبندد، چون به گفته مستندات Docker بستهها پیش از قوانین فایروال مسیریابی میشوند؛ از فایروال میزبان یا ufw-docker کمک بگیرید.
در کولیفای، از منوی Sources با New source یک GitHub App بسازید. در پروژه با + New گزینه Private Repository (with GitHub App) را بزنید، مخزن، شاخه، Build pack و پورت داخلی را تعیین کنید و با تعریف دامنه مستقر کنید. از آن پس هر push به آن شاخه، با گزینه Deploy on push (webhooks) در Advanced و Deployment، استقرار تازه میسازد. مخزن عمومی یا deploy key Webhook دستی میخواهد.
در داکپلوی، از بخش Git با Create Github App اپ را بسازید و روی مخزنها نصب کنید، بعد مخزن را در یک Application انتخاب و دامنه را در تب Domains تعریف کنید. به گفته مستندات، این مسیر بدون تنظیم اضافه با هر push به شاخه انتخابشده مستقر میکند. برای GitLab، Bitbucket و Gitea:

با دسترسی Docker Hub حلشده، اگر لایسنس یکدست و ادامه کار مستند برنامهها بدون پنل مهم است، Coolify را بردارید؛ اگر پشته کمجزء و Stack روی Swarm میخواهید، داکپلوی را.
دو خانه «(استنتاج)» از معماری داکپلوی نتیجه گرفته شده، چون مستنداتش این حالت را شرح نداده است.
| بخش | کولیفای | داکپلوی |
|---|---|---|
| برنامههای در حال اجرا | به گفته مستندات کار میکنند | موتور Docker آنها را جدا از پنل اجرا میکند؛ احتمالاً کار میکنند (استنتاج) |
| مسیریابی دامنه و HTTPS | پراکسی روی همان سرور جدا از پنل کار میکند | کانتینر dokploy-traefik جدا از سرویس پنل است |
| استقرار تازه با push | میایستد تا پنل برگردد | میایستد، چون Webhook به خود پنل میرسد (استنتاج) |
| پشتیبان خود پنل | فایل .env نصب که APP_KEY در آن است | پشتیبان Web Server از دیتابیس و /etc/dokploy روی S3، با Restore |
روی سرور آزمایشی با docker service scale dokploy=0 پنل را بخوابانید، سایت را باز کنید و با =1 برگردانید.
روی سرور کوچک، ساخت برنامه و پنل با هم رم را تنگ میکنند؛ ایمیج را در GitHub Actions بسازید و فقط اجرا را به پنل بسپارید.
بین این دو ماندهاید؟ هر کدام از این هفت پرسش میتواند کفه ترازو را به یک سمت ببرد:
نسخه خودمیزبان هر دو بدون پرداخت نصب میشود. در داکپلوی قابلیتهای Enterprise مثل SSO کلید لایسنس میخواهند. هر دو نسخه ابری هم دارند.
بله. مستندات برای صرفهجویی شروع با ۱ هسته و ۱ گیگابایت رم و ارتقای بعدی را پیشنهاد میکند؛ حداقل اصلی ۲ گیگابایت است.
نه. هر دو پورتهای 80 و 443 را برای پراکسی خودشان میخواهند.
دریافت ایمیج شکست میخورد و پنل بالا نمیآید؛ REGISTRY_URL هم postgres، redis و Traefik را نجات نمیدهد. میرور رجیستری را روی Docker تنظیم کنید.
بله. داکپلوی برای GitLab، Bitbucket، Gitea و Docker Hub مسیر Webhook دارد و کولیفای اتصال GitLab را مستقیم میپذیرد.
نه. روش Docker Compose با Compose معمولی اجرا میشود و Stack روی Swarm؛ خود پنل روی Swarm تکنودی است.
یک docker pull postgres:16 بگیرید؛ اگر 403 برگشت، اول میرور رجیستری را تنظیم کنید.
جمعبندی؛ Coolify یا داکپلوی روی سرور ایران هر دو پنل با اپ GitHub، هر push را بدون تنظیم اضافه به استقرار تبدیل میکنند. کولیفای لایسنس یکدست Apache 2.0 دارد، انتخاب پراکسی را به شما میدهد و در مستندش آمده که برنامهها بدون پنل هم اجرا میمانند. داکپلوی پشته سهکانتینری (پنل، PostgreSQL و Traefik) دارد، پیش از نصب پورتها را میسنجد و قابلیتهای سازمانیاش لایسنس جدا میخواهد. روی سرور ایران هر دو اسکریپت ایمیج پایه را از Docker Hub میگیرند؛ پس اول دسترسی رجیستری را با یک pull آزمایشی بسنجید و بعد پنل را روی سرور تازه نصب کنید.
🚀 مسیر دانلود ایمیج، شرط نصب هر دو پنل
نصب هر دو پنل به Docker Hub بند است؛ تشخیص خطای 403 و تنظیم میرور در راهنمای تحریم داکر قدمبهقدم آمده است.
شما الان چطور منتشر میکنید: SSH و دستور دستی، یا یک pipeline؟ کدامیک از این دو را آزمودهاید و کجا گیر کردید؟
منابع