مقایسه Cloudron و CasaOS و Coolify روی VPS
مقایسه دقیق Cloudron و CasaOS و Coolify روی Ubuntu 24.04 شامل دستورات نصب، مدیریت TLS، بکآپ و میزان مصرف RAM برای انتخاب بهترین پنل خودمیزبانی.
آنچه در حال ساخت آن هستید
انتخاب یک ابزار، به اندازه نصب کردن آن اهمیت دارد. سه پنل وعده میدهند که یک VPS خام را به یک میزبان اپلیکیشن با قابلیت کلیک کردن تبدیل کنند: Cloudron، CasaOS و Coolify. این راهنما هر کدام را روی یک سیستم تازه با Ubuntu 24.04 نصب میکند، اولین اپلیکیشن را نصب میکند و سپس بخشهایی را بررسی میکند که معمولاً اسکرینشات گرفته نمیشوند: TLS، بکآپها، آپدیتها، هزینه حافظه و میزان دشواری خروج از سیستم. در پایان خواهید دانست کدامیک مناسب است، یا اینکه آیا پاسخ صادقانه این است که «هیچکدام، فقط از Docker Compose استفاده کنید».
هیچکدام از اینها جادو نیستند. زیر هر سه پنل، همان Docker Engine وجود دارد که میتوانید به صورت دستی آن را مدیریت کنید. آنچه یک پنل در ازای هزینه یا مصرف RAM یا وابستگی به سیستم (lock-in) به شما میفروشد، انجام چهار کار تکراری است: نصب اپلیکیشن با یک کلیک، گواهیهای TLS خودکار، بکآپهای زمانبندی شده و مدیریت کاربران. اگر این چهار مورد برای شما ارزش صرف هزینه و منابع را دارد، استفاده از یک پنل توجیهپذیر است. اگر تنها یک یا دو سرویس را اجرا میکنید و دوست دارید دقیقاً بدانید چه چیزی روی سیستم شما نصب شده است، ابتدا بخش "Skip all three" را بخوانید تا در وقت خود صرفهجویی کنید.
پیشنیازهای مشترک و نکات چالشبرانگیز
هر سه مورد مستلزم یک VPS از نوع KVM هستند، نه مجازیسازی مبتنی بر کانتینر. Docker به یک Kernel واقعی نیاز دارد و Cloudron به طور قاطع از OpenVZ و LXC پشتیبانی نمیکند. با دستور systemd-detect-virt بررسی کنید: kvm یا qemu مناسب هستند، اما openvz یا lxc مناسب نیستند. در یک پلن KVM، دستور خروجی kvm را چاپ میکند و در سرور Bare Metal خروجی none است؛ در هر دو حالت میتوانید ادامه دهید.
فراتر از آن، اعداد متفاوت هستند و این اولین عاملی است که انتخاب شما را هدایت میکند.
- RAM. سیستم CasaOS با 1GB به خوبی اجرا میشود؛ این سیستم برای سختافزار Raspberry Pi بهینه شده و سبک باقی میماند. Coolify حداقل به 2GB و دو هسته CPU نیاز دارد و حدود 600 MB از آن مربوط به خود Coolify است. Cloudron حداقل به 2GB نیاز دارد و با 4GB عملکرد بسیار بهتری دارد، زیرا قبل از نصب اولین اپلیکیشن، یک Mail Server و یک Database را اجرا میکند.
- یک دامنه و DNS تحت کنترل شما. هر دو سیستم Cloudron و Coolify به یک دامنه واقعی با DNS فعال نیاز دارند. Cloudron ترجیح میدهد به API ارائهدهنده DNS شما دسترسی داشته باشد تا بتواند خودش رکوردها و گواهیهای Wildcard ایجاد کند. CasaOS روی یک IP خام نیز اجرا میشود، اما در آن صورت هیچ TLS ای نخواهید داشت.
- پورتها. هر سه سیستم برای HTTP و HTTPS به پورتهای 80 و 443 باز نیاز دارند. Coolify علاوه بر آن، پنل مدیریت خود را روی پورت 8000 ارائه میدهد، از پورت 6001 برای کانال Realtime و از پورت 6002 برای ترمینال داخل مرورگر استفاده میکند. برای هر سه سیستم، پورت 22 را برای SSH باز نگه دارید.
قبل از شروع، DNS را به سرور متصل کنید. پنلی که نتواند Hostname خودش را Resolve کند، قادر به درخواست گواهی (Certificate) نیست و شما اولین ساعت کار خود را به جای کار با نرمافزار، صرف عیبیابی این موضوع خواهید کرد. یک رکورد A به IP سرور متصل کنید و برای Coolify، یک رکورد Wildcard (*.apps.example.com) اضافه کنید تا هر اپلیکیشن مستقر شده، زیردامنه (Subdomain) مخصوص خود را داشته باشد.
Cloudron: یک Appliance صیقلخورده و با رویکرد مشخص
ماهیت محصول. Cloudron یک پلتفرم تجاری است که یک سرور کامل را به یک appliance مدیریتشده تبدیل میکند. این پلتفرم شامل یک reverse proxy، پایگاه داده و mail stack اختصاصی است، به همراه یک App Store منتخب از اپلیکیشنهای بستهبندی شده (مانند Nextcloud، WordPress، Gitea، Mattermost و غیره). مخاطبان هدف آن افرادی هستند که میخواهند اپلیکیشنهای خود را با قابلیتهای مدیریتشده، بهروزرسانی خودکار، گواهیهای خودکار و پشتیبانگیری خودکار دریافت کنند و حاضر به پرداخت هزینه برای این خدمات باشند.
نصب. این سیستم بر روی یک سرور کاملاً پاک (clean box) اصرار دارد و کنترل کامل آن را در دست میگیرد. این دستور را فقط روی یک سرور تازه Ubuntu 24.04 (Noble) اجرا کنید:
wget https://cloudron.io/cloudron-setup
chmod +x cloudron-setup
sudo ./cloudron-setupاسکریپت، Docker، nginx، یک پایگاه داده و mail stack را نصب کرده و سپس سیستم را ریاستارت میکند. پس از بالا آمدن سرور، https://<your-ip> را باز کنید، گواهی موقت self-signed را تایید کنید و مراحل تنظیمات را در مرورگر تکمیل کنید: دامنه خود را وارد کنید، ارائهدهنده DNS خود را انتخاب کنید، و داشبورد اختصاصی در my.example.com آماده خواهد بود.
افزودن اولین اپلیکیشن. در داشبورد، App Store را باز کنید، برای مثال Nextcloud را انتخاب کنید، زیردامنه files.example.com را انتخاب کنید و روی Install کلیک کنید. Cloudron رکورد DNS را ایجاد میکند، گواهی Let's Encrypt را درخواست میکند، پایگاه داده را آماده میکند، قابلیت single sign-on را متصل میکند و زمانبندی پشتیبانگیری را انجام میدهد؛ تمام اینها بدون نیاز به دستکاری در هیچ فایل کانفیگی انجام میشود. این ویژگی اصلی محصول است و Cloudron آن را محقق میکند.
TLS و پشتیبانگیری. قدرتمندترین بخش از میان سه ویژگی اصلی. هر زیردامنه اپلیکیشن یک گواهی خودکار Let's Encrypt دریافت میکند که توسط سیستم برای شما تمدید میشود. پشتیبانگیریها برنامهریزی شده و داخلی هستند و هدف آنها یک دایرکتوری محلی، S3 یا سایر ذخیرهسازهای از راه دور است. قابلیت بازیابی برای هر اپلیکیشن به صورت مجزا و حتی کپی کردن (cloning) یک اپلیکیشن به یک زیردامنه جدید با یک کلیک فراهم شده است.
هزینه و لایسنس، قبل از تصمیمگیری این را بخوانید. Cloudron یک محصول پولی با یک لایه رایگان محدود است: طرح رایگان اجازه نصب دو اپلیکیشن را میدهد. با نصب اپلیکیشن سوم، با محدودیت پرداخت مواجه میشوید؛ اشتراک پولی (Pro یا Max، با پرداخت ماهانه یا سالانه، هر دو با اپلیکیشنهای نامحدود) امکانات بیشتری را باز میکند. این مهمترین نکته درباره Cloudron است. این محصول دقیقاً به این دلیل صیقلخورده است که یک کسبوکار است و لایه رایگان آن بیشتر به یک نسخه آزمایشی طولانیمدت شباهت دارد تا مکانی برای یک مجموعه اپلیکیشن در حال رشد.
حالت خطا، قانون سرور پاک. اگر سعی کنید Cloudron را روی سروری که از قبل برنامهای روی آن در حال اجراست نصب کنید، فرآیند نصب قبل از تغییر هر چیزی متوقف میشود:
Error: Some packages like nginx/docker/nodejs are already installed. Cloudron requires
specific versions of these packages and will install them as part of it's installation.
Please start with a fresh Ubuntu install and run this script again.علت این اتفاق، سختگیری بیدلیل نیست. Cloudron نسخههای خاصی از nginx، Docker و Node را تثبیت میکند و آنها را به صورت عمیق با هم ادغام میکند، بنابراین نمیتواند با نسخههای نصب شده توسط شما همزیستی داشته باشد. راه حل، استفاده از یک ایمیج تازه Ubuntu 24.04 و هیچ چیز دیگر نیست: بدون وبسرور، بدون Docker، و حتی بدون فایروالی که خودتان دستی تنظیم کرده باشید. اگر ایمیج اشتباهی را بوت کرده باشید، فرآیند نصب از هر چیزی به جز Ubuntu LTS پشتیبانی شده (22.04 یا 24.04) روی معماری x86-64 خودداری میکند؛ معماریهای ARM، LXC و OpenVZ به طور کامل پشتیبانی نمیشوند.
حالت خطای دوم، گواهیهای wildcard نیاز به DNS API دارند. اگر در هنگام نصب، به جای دادن API token به Cloudron، گزینه "Manual" را برای DNS انتخاب کنید، سیستم نمیتواند رکوردها یا یک گواهی wildcard برای شما ایجاد کند. در این حالت، برای هر اپلیکیشن جدید باید یک رکورد DNS را به صورت دستی اضافه کنید تا گواهی صادر شود و داشبورد در انتظار آن رکورد میماند. اگر دسترسی API به یک ارائهدهنده DNS پشتیبانی شده (مانند Cloudflare، Route 53، DigitalOcean و غیره) به Cloudron بدهید، تمام این فرآیند تنها با یک کلیک انجام میشود.
CasaOS: داشبورد رایگان برای آزمایشگاه خانگی (home-lab)
ماهیت برنامه. CasaOS محصول شرکت IceWhale، یک داشبورد رایگان و متنباز است که روی Docker اجرا میشود و به شما یک صفحه اصلی، یک فروشگاه اپلیکیشن و یک مدیریت فایل ارائه میدهد. این پروژه از دنیای سرورهای خانگی نشأت گرفته است؛ بنابراین ویژگیهای آن برای home-lab طراحی شده است: نصب سریع، رابط کاربری کاربرپسند و پیچیدگی کم. هدف این برنامه، کاربران مبتدی و علاقهمند به تغییرات (tinkerers) است که میخواهند بدون پرداخت هزینه، رابط کاربری بهتری برای Docker داشته باشند.
نصب. با اجرای یک دستور، نصب انجام میشود و نیازی به سیستمعامل تازه (clean box) نیست:
curl -fsSL https://get.casaos.io | sudo bashنصبکننده مجموعهای از سرویسهای systemd (شامل casaos، casaos-gateway، casaos-app-management و موارد مشابه) را اضافه میکند. قبل از باز کردن مرورگر، از بالا آمدن gateway اطمینان حاصل کنید:
systemctl status casaos-gatewayهنگام اجرا، داشبورد در آدرس http://<your-ip> (پروتکل HTTP ساده، پورت 80) در دسترس است. یک حساب کاربری محلی بسازید تا وارد شوید.
افزودن اولین اپلیکیشن. App Store را باز کنید، یک اپلیکیشن انتخاب کنید و روی Install کلیک کنید. CasaOS در پسزمینه یک پروژه Docker Compose ایجاد میکند و اپلیکیشن را روی یک پورت میزبان (host port) مانند http://<your-ip>:8080 در دسترس قرار میدهد. فروشگاه آن شامل مجموعهای از برنامههای استاندارد سرور خانگی است؛ بنابراین نصب Jellyfin media server on a VPS یا self-hosted Immich photo library تنها با چند کلیک امکانپذیر است. شما همچنین میتوانید هر docker-compose.yaml مورد نظر خود را وارد کنید که نقطه قوت اصلی برنامه است: اپلیکیشنها کانتینرهای معمولی هستند، نه یک فرمت اختصاصی.
TLS و بکآپ، نقاط ضعف. اینجاست که محدودیتهای نسخه "رایگان" مشخص میشود. CasaOS تمام موارد، از جمله داشبورد خود، را به صورت پیشفرض با پروتکل HTTP ساده ارائه میدهد. این برنامه فاقد Let's Encrypt داخلی و سیستم بکآپگیری زمانبندی شده داخلی است. دادههای شما در Docker volumes زیر مسیر /DATA ذخیره میشوند و مسئولیت پشتیبانگیری از آنها با شما است (مثلاً با استفاده از یک restic یا tar زمانبندی شده).
حالت خطا، عدم وجود TLS و عدم اطلاعرسانی. هیچ خطایی نمایش داده نمیشود. شما یک اپلیکیشن نصب میکنید، http://<your-ip>:8080 را باز میکنید و برنامه کار میکند، اما از طریق یک اتصال رمزنگاری نشده که مرورگر شما آن را "Not Secure" علامتگذاری میکند. رمزهای عبور و کوکیهای نشست (session cookies) به صورت متن ساده (cleartext) در شبکه جابجا میشوند. بدتر از آن، CasaOS در داشبورد خود با آسیبپذیریهای واقعی از نوع Remote Code Execution مواجه شده است (CVE-2023-37265 و CVE-2023-37266، یک دور زدن احراز هویت که منجر به تسلط کامل بر میزبان میشد)؛ بنابراین باز کردن مستقیم پورت HTTP برای اینترنت یک ریسک واقعی است، نه یک بحث جزئی. راه حل این است که هرگز CasaOS را مستقیماً در معرض اینترنت قرار ندهید. یک reverse proxy در مقابل آن قرار دهید که TLS را مدیریت کند، مانند nginx with a Let's Encrypt certificate from Certbot، Caddy، یا یک Cloudflare Tunnel، و ترافیک را فقط به CasaOS در شبکه محلی هدایت کنید. توجه داشته باشید که CasaOS از قبل پورت 80 را اشغال میکند، بنابراین اگر ابتدا پورت CasaOS را تغییر ندهید، پروکسی و CasaOS بر سر این پورت با هم درگیر میشوند.
هزینه. کاملاً رایگان و برای همیشه، بدون محدودیت در تعداد اپلیکیشنها. هزینه شما در عملیات مدیریت است: شما باید خودتان مسئولیت TLS، بکآپها و ایمنسازی (hardening) را بر عهده بگیرید.
Coolify: PaaS خود-میزبان
تعریف. Coolify یک پلتفرم سرویسدهی (PaaS) متنباز و خود-میزبان است که مشابه Heroku یا Vercel روی سرور شخصی شما عمل میکند. واحد اصلی آن "نصب این اپلیکیشن بستهبندی شده" نیست، بلکه "استقرار این مخزن Git" است: یک مخزن را متصل کنید، و Coolify آن را (از طریق Nixpacks یا Dockerfile اختصاصی شما) میسازد و مستقر میکند و با هر push، مجدداً استقرار را انجام میدهد. این ابزار همچنین دارای پایگاههای داده و سرویسهای با قابلیت نصب با یک کلیک است. هدف آن توسعهدهندگانی است که کد خود را مستقر میکنند و میخواهند بدون اجاره کردن یک PaaS، قابلیت push-to-deploy داشته باشند.
نصب.
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bashاین اسکریپت Docker را نصب کرده و مجموعهی کانتینرهای اختصاصی Coolify را راهاندازی میکند. قبل از ادامه، از سلامت آنها مطمئن شوید:
docker ps --format 'table {{.Names}}\t{{.Status}}'باید وضعیت coolify، coolify-db، coolify-redis، coolify-realtime و coolify-proxy همگی Up باشد. داشبورد در آدرس http://<your-ip>:8000 در دسترس است. بلافاصله حساب کاربری ادمین خود را بسازید، زیرا صفحه ثبتنام تا زمان ساخته شدن اولین حساب باز میماند و هر کسی که زودتر به آن دسترسی پیدا کند، سرور را کنترل میکند. سپس دامنه نمونه (instance domain) خود را تنظیم کنید و یک رکورد DNS wildcard (*.example.com یا *.apps.example.com) را به سرور متصل کنید تا Coolify بتواند به هر اپلیکیشن مستقر شده، زیردامنه اختصاصی خود را اختصاص دهد.
افزودن اولین اپلیکیشن. یک منبع Git (GitHub، GitLab یا یک URL مستقیم مخزن) را متصل کنید، یک شاخه (branch) را انتخاب کنید، دامنه را تنظیم کنید و مستقر کنید. پروکسی داخلی Traefik در Coolify، زیردامنه را مسیریابی کرده و گواهی (certificate) را درخواست میکند. برای نرمافزارهای آماده، کاتالوگ Services موارد را با چند کلیک مستقر میکند: همان stack اتوماسیون گردشکار n8n که ممکن است در غیر این صورت مجبور به تنظیم دستی آن باشید تنها یک ورودی است، و همینطور است Uptime Kuma برای مانیتورینگ صفحه وضعیت.
TLS و بکآپها. استفاده از Let's Encrypt به صورت خودکار برای هر اپلیکیشن از طریق Traefik داخلی انجام میشود، بنابراین هر زیردامنه مستقر شده یک گواهی دریافت میکند. بکآپها اولویت را به پایگاه داده میدهند: شما میتوانید زمانبندی dumpهای Postgres و MySQL را به ذخیرهسازهای سازگار با S3 انجام دهید. بکآپگیری از کل نمونه (خودِ پیکربندی Coolify که در /data/coolify قرار دارد) به صورت دستیتر است، بنابراین خودتان آن را export و ذخیره کنید.
هزینه و لایسنس. نسخه خود-میزبان کاملاً متنباز و رایگان است و محدودیتی در تعداد اپلیکیشنها ندارد. یک گزینه Coolify Cloud (پولی) وجود دارد که لایه کنترل (control plane) را برای شما میزبانی میکند، در حالی که اپلیکیشنهای شما همچنان روی سرورهای خودتان اجرا میشوند؛ این حالت راحت است اما اجباری نیست.
حالت خطا: اپلیکیشن مستقر میشود اما دامنه آن بارگذاری نمیشود. داشبورد در http://<ip>:8000 به درستی کار میکند، فرآیند ساخت (build) با موفقیت انجام میشود، اما URL خودِ اپلیکیشن با خطای اتصال یا یک خطای 404 page not found از سمت Traefik مواجه میشود. این مشکل به پروکسی یا DNS مربوط است، نه به اپلیکیشن شما. دو علت رایج وجود دارد. اول، پورتهای 80 یا 443 هنگام تلاش برای شروع پروکسی اشغال شده بودند، بنابراین کانتینر آن با خطای Docker متوقف شد:
Error response from daemon: driver failed programming external connectivity on endpoint coolify-proxy: Bind for 0.0.0.0:443 failed: port is already allocatedدوم، رکورد DNS wildcard وجود ندارد، بنابراین Traefik هرگز درخواستی برای آن hostname دریافت نمیکند. اگر در عوض، کل کارت سرور در Coolify عبارت "Server is not reachable" را نشان میدهد، این یک خطای متفاوت است: Coolify اصلاً نمیتواند با Docker socket سرور ارتباط برقرار کند، که معمولاً به دلیل متوقف بودن Docker daemon یا خراب بودن SSH key است. قبل از حدس زدن، دلیل واقعی را در لاگها بخوانید:
docker logs coolify-proxy --tail 100مشکل را از صفحه Proxy حل کنید: روی Restart Proxy کلیک کنید، یا پیکربندی پروکسی را به حالت پیشفرض برگردانید و دوباره آن را شروع کنید، سپس حدود دو دقیقه صبر کنید تا پایدار شود. پورت 8000 را فقط برای IP خودتان قابل دسترس نگه دارید (یا در صورت بروز مشکل در پروکسی، آن را موقتاً باز کنید) به جای اینکه آن را برای همه باز بگذارید — این پورت داشبورد را از طریق HTTP ساده سرو میکند و مستندات خود Coolify میگوید که پس از سرو شدن داشبورد از طریق دامنه اختصاصی خود، پورتهای 8000، 6001 و 6002 میتوانند بسته شوند.
Resource overhead on the same VPS
میزان مصرف منابع در حالت Idle روی یک سرور 4GB یکسان، پیش از اجرای هرگونه workload واقعی. به جای اعتماد به یک عدد واحد، وضعیت خود را با free -m و docker stats --no-stream بررسی کنید؛ زیرا مجموع مصرف منابع بسته به ترکیب اپلیکیشنهای شما تغییر میکند.
- CasaOS سبکترین گزینه است. این پنل مجموعهای کوچک از سرویسهای Go است؛ انتظار مصرف حدود 150 تا 300 MB علاوه بر مصرف کانتینرهای خود را داشته باشید.
- Coolify چندین کانتینر پشتیبان (شامل app، Postgres، Redis، یک سرویس realtime و Traefik) را اجرا میکند، بنابراین در حالت Idle قبل از استقرار هر چیزی، حدود 600 MB تا 1 GB مصرف دارد.
- Cloudron در حالت استراحت سنگینترین گزینه است، زیرا nginx، پایگاه داده، پشته mail و سیستم مانیتورینگ اختصاصی خود را، چه از آنها استفاده کنید و چه نکنید، اجرا میکند؛ حدود 1 تا 1.5 GB برای حالت Idle در نظر بگیرید. به همین دلیل است که حداقل 2GB رم درخواست میکند و در سرورهای 4GB عملکرد بهتری دارد.
در یک VPS کوچک 2GB، CasaOS بیشترین فضای باقیمانده را برای اپلیکیشنهای واقعی فراهم میکند و Cloudron کمترین فضا را. اگر پلن شما 2GB است و میخواهید از Cloudron به همراه mail server استفاده کنید، برای ارتقای سرور برنامهریزی کنید.
مقایسه بهروزرسانیها، پشتیبانگیریها و وابستگی به پلتفرم (Lock-in)
Updates. سرویس Cloudron پلتفرم و تمام اپلیکیشنها را طبق یک زمانبندی تستشده برای شما بهروزرسانی میکند: کمترین میزان تلاش و بیشترین میزان پشتیبانی خودکار. Coolify با فشار دادن یک دکمه در داشبورد خود، خودش را بهروزرسانی میکند. CasaOS پنل را از طریق اسکریپت نصب یا apt بهروزرسانی میکند، اما مسئولیت بهروزرسانی و ریاستارت کردن اپلیکیشنهایی که نصب کردهاید، با خود شماست.
Lock-in، بخشی که در سال دوم مشکلساز میشود. سرویس CasaOS کمترین میزان وابستگی به پلتفرم را دارد: اپلیکیشنهای آن پروژههای معمولی Compose هستند، بنابراین میتوانید فایل docker-compose.yaml و volumeهای موجود در /DATA را به هر هاست دیگری کپی کنید و به کار خود ادامه دهید. Coolify در حالت میانی قرار دارد: Deployهای شما Dockerfileها و مخازن (repos) خودتان هستند، اما تنظیمات آنها در دیتابیس Coolify ذخیره میشود، بنابراین انتقال به هاست دیگر به معنای بازسازی پروژهها در مقصد است. Cloudron بیشترین میزان وابستگی را دارد: اپلیکیشنها در قالب بستهبندیشدهی Cloudron هستند و اگرچه data شما از طریق قابلیت پشتیبانگیری عالی آن به راحتی قابل انتقال است، اما بستهبندیها (packaging) قابل انتقال نیستند، بنابراین باید اپلیکیشن را در پلتفرم مقصد دوباره Deploy کنید. دادههای قابل حمل، زیرساختهای غیرقابل حمل.
کدام یک را باید انتخاب کنید
ابتدا نسخه کوتاه، سپس بررسی جزئیات. اگر میخواهید کمترین میزان درگیری با سرور را داشته باشید، چندین اپلیکیشن بستهبندی شده را اجرا کنید و هزینه سالانه برای مدیریت TLS، پشتیبانگیری (backups) و بهروزرسانیها پرداخت کنید، Cloudron را انتخاب کنید. اگر این پروژه یک آزمایشگاه خانگی (home lab) پشت شبکه خودتان یا یک reverse proxy است، میخواهید رابط کاربری سادهای برای Docker داشته باشید و نمیخواهید هیچ هزینهای پرداخت کنید، CasaOS را انتخاب کنید. اگر کد خود را از Git مستقر (deploy) میکنید و میخواهید قابلیت push-to-deploy همراه با TLS خودکار را بدون هزینه یک PaaS میزبانیشده داشته باشید، Coolify را انتخاب کنید. اگر هیچکدام از این سه مورد با شرایط شما مطابقت ندارد، بخش بعدی پاسخ واقعی است.
اگر این سه مورد را دارید، از آنها عبور کنید...
در مورد مقیاس کار خود صادق باشید. اگر فقط یک یا دو اپلیکیشن اجرا میکنید، یا میخواهید دقیقاً بدانید چه چیزی روی سرور شما نصب شده است، از پنلها استفاده نکنید. برای یک پشته (stack) کوچک و پایدار، سربار اضافی و وابستگی به پنل (lock-in) ارزشش را ندارد. مسیر DIY (انجام شخصی) شامل یک reverse proxy در مقابل فایلهای Compose خودتان است: Traefik با TLS خودکار در مقابل چندین اپلیکیشن Docker Compose همان قابلیت HTTPS را با یک کلیک فراهم میکند، بدون اینکه وزن اضافی پنل را تحمیل کند؛ همچنین میتوانید با یک job restic که با cron تنظیم شده و خودتان از آن سر در میآورید، پشتیبانگیری کنید.
یک سرویس حداقلی با labelهای Traefik، جهت مقایسه
services:
whoami:
image: traefik/whoami
labels:
- traefik.enable=true
- traefik.http.routers.whoami.rule=Host(`whoami.example.com`)
- traefik.http.routers.whoami.tls.certresolver=le
networks: [web]
networks:
web:
external: trueTraefik این labelها را میخواند، hostname را مسیریابی میکند و گواهی (certificate) را دریافت میکند: دقیقاً همان کاری که یک پنل انجام میدهد، اما در چند خط کد که میتوانید آنها را بخوانید.
برای یک اپلیکیشن اصلی و واحد، موضوع حتی روشنتر است: یک نصب Nextcloud روی Docker با TLS و برنامه پشتیبانگیری اختصاصی شامل یک فایل Compose و یک certificate است. راهاندازی یک Appliance کامل برای اجرای آن، فقط هزینه دارد و هیچ سودی ندارد. اگر هنوز قبل از تصمیمگیری در مورد «چگونگی» اجرا، در حال تصمیمگیری در مورد «چه چیزی» برای اجرا هستید، راهنمای آنچه ارزش self-hosting در سال 2026 را دارد نقطه شروع بهتری است.
FAQ
آیا واقعاً به یک پنل self-hosting نیاز دارم؟
فقط در صورتی که برای چهار قابلیت خودکارسازی در چندین اپلیکیشن اهمیت قائل باشید: نصب با یک کلیک، TLS خودکار، بکآپهای زمانبندی شده و مدیریت کاربران. برای یک یا دو سرویس، استفاده از Docker Compose ساده در کنار Traefik همان وظیفه TLS را با سرب بار بسیار کمتر و بدون وابستگی به محصول (lock-in) انجام میدهد. استفاده از پنل زمانی صرفه اقتصادی دارد که اپلیکیشنهای زیادی را اجرا کنید و ارزش زمان شما بیشتر از هزینه RAM مصرفی آنها باشد.
بهترین پنل برای یک مبتدی کدام است؟
برای یک Home Lab که هیچ سرویسی در معرض اینترنت عمومی نیست، CasaOS سادهترین شروع است: یک دستور و یک رابط کاربری (UI) کاربرپسند، بدون نیاز به پرداخت هزینه. اما قبل از باز کردن دسترسی به هر چیزی، حتماً باید یک reverse proxy با قابلیت TLS-terminating در مقابل آن قرار دهید، زیرا این پنل فقط HTTP ساده ارائه میدهد. اگر میخواهید TLS و بکآپها توسط سیستم مدیریت شوند و حاضر به پرداخت هزینه هستید، Cloudron با محدودیت دو اپلیکیشن در نسخه رایگان، راحتترین گزینه است.
آیا Cloudron رایگان است؟
به صورت جزئی. نسخه رایگان اجازه نصب two apps را میدهد که برای امتحان کردن یا یک مجموعه بسیار کوچک مناسب است. فراتر از آن، Cloudron یک اشتراک پولی است که به صورت ماهانه یا سالانه صورتحساب میشود و در سطوح پولی، تعداد اپلیکیشنها نامحدود است. این یک محصول تجاری با یک طرح رایگان محدود است، نه یک نرمافزار رایگان (free software)؛ بنابراین اگر قرار است مجموعه اپلیکیشنهای شما بزرگ شود، بودجه لازم را در نظر بگیرید.
آیا میتوانم این پنلها را در کنار اپلیکیشنهای موجودم اجرا کنم؟
Cloudron: خیر. این پنل به یک سیستم Ubuntu کاملاً پاک (clean box) نیاز دارد و اگر nginx، Docker یا Node از قبل نصب شده باشند، فرآیند را متوقف میکند، زیرا کل سیستم را مدیریت میکند. CasaOS و Coolify انعطافپذیرتر هستند، زیرا Docker stack خود را نصب میکنند و در اصل میتوانند از یک سیستم مشترک استفاده کنند، اما هر دو به پورتهای 80 و 443 نیاز دارند، بنابراین با هر وبسرور یا پروکسی که از قبل اجرا کردهاید، تداخل ایجاد میکنند. در سیستمی که از قبل میزبان سرویسهایی است، استفاده از پنل معمولاً انتخاب اشتباهی است؛ در عوض از Traefik و Compose استفاده کنید.
چگونه میتوانم بعداً از یک پنل مهاجرت کنم؟
قبل از اینکه نیاز پیدا کنید، برای خروج برنامهریزی کنید. در CasaOS، پوشه docker-compose.yaml اپلیکیشن و volumeهای /DATA آن را به میزبان جدید کپی کرده و دوباره آنها را اجرا کنید. در Coolify، تنظیمات هر پروژه را export کنید و آنها را به همان مخازن (repos) در مقصد متصل کنید. در Cloudron، دادهها را از بکآپهای آن در اپلیکیشنهای تازه نصب شده در پلتفرم جدید بازیابی (restore) کنید، زیرا بستهبندیهای Cloudron منتقل نمیشوند و فقط دادهها منتقل میشوند. در هر حالت، قبل از حذف سیستم قدیمی، فرآیند بازیابی را روی یک سیستم آزمایشی تست کنید.