استفاده و خرید هاست شخصی معمولاً به معنای تنظیمات پیچیده و گیج‌کننده است که نیاز به مدیریت و تخصص بالایی دارد. اما این روند می‌تواند آسان‌تر باشد. در اینجا برنامۀ داکو (Dokku) وارد صحنه می‌شود.

داکو دقیقاً چیست؟ چطور کار می‌کند؟ چه ویژگی‌هایی دارد و چطور کارها را ساده‌تر می‌کند؟ در این مقاله این مسائل را با هم بررسی خواهیم کرد.

داکو dokku

داکو چیست؟

پلتفرم داکو یک از ابزارهای مهم در حوزۀ کانتینرها و استقرار برنامه‌ها است. این پلتفرم محیطی پایدار و سازگار را تضمین می‌کند.

Dokku روند کار را ساده و سریع‌تر می‌کند و جهان مدرن به‌خوبی هماهنگ می‌شود. این پلتفرم به شما امکان تبدیل ایده‌ها به پروژه را به کاربر می‌دهد.

مزایای Dokku

داکو و Git

  • اجرای روند استقرار به کمک Git
  • پیکربندی خودکار
  • کاربردی‌بودن و عملکرد بالا
  • به‌صرفه‌بودن

داکو در برابر دیگر نرم‌افزارهای استقرار

استقلال کامل در حوزۀ تنظیمات

Heroku

سیستم هیروکو روند استقرار پروژه‌ها را آسان‌تر می‌کند. اما امکان کنترل کامل بر این فرایند را به کاربر نمی‌دهد و آن‌ها را محدود می‌کند.

در مقابل پلتفرم داکو به شما کنترل کامل بر سرور را ارائه می‌دهد. با استفاده از این پلتفرم می‌توانید محیط را کاملاً بر اساس نیازهای خودتان تنظیم کنید.

داکو و هیروکو

هماهنگی با تنظیمات موردنظر

Docker

پلتفرم داکر به عنوان یک برنامۀ کانتینرسازی سبک و کاربردی شناخته می‌شود. اما تنظیم و هماهنگ‌سازی آن می‌تواند برای کاربرانی که با فرایند کانتینرسازی آشنایی کمی دارند، دشوار باشد.

در عوض Dokku که قدم‌های داکر را دنبال می‌کند، امکانات بیشتری برای تنظیم روند کانتینرسازی و مدیریت آن ارائه می‌دهد.

داکو و داکر

به‌صرفه‌بودن

Heroku

برای هر سرویس اضافی که در پلتفرم هیروکو، باید هزینۀ اضافی پرداخت کنید. اما برای استفاده از داکر هزینۀ کمتری پرداخت خواهید کرد بدون اینکه لازم باشد سرعت یا مقیاس‌پذیری را قربانی کنید.

راهنمای نصب

پیش‌نیازهای سیستم

  • ARMV8 (arm64)
  • Ubuntu 20.04/22.04
  • Debian 10+ x64
  • AMD64 (x86_64)
  • حداقل 1 گیگابایت حافظۀ داخلی

نصب آخرین نسخۀ داکو

نصب:

# To set up Dokku on Debian systems, you can utilize the apt-get package manager

for installation

wget -NP . https://dokku.com/install/v0.33.6/bootstrap.sh

sudo DOKKU_TAG=v0.33.6 bash bootstrap.sh

پیکربندی SSH

#Your SSH key is already stored in the current user’s ~/.ssh/authorized_keys file.

You can add it to Dokky by running the following command:

cat ~/.ssh/authorized_keys | dokku ssh-keys:add admin

#You can associate a domain with your Dokku server using the domains:set-global

command. For example, you can set a domain for example.com like:

#dokku domains:set-global example.com

Alternatively, if you prefer to use an IP address, you can set it directly with Dokku:

#dokku domains:set-global 10.0.0.2

#Additionally, you can use sslip.io to gain subdomain support for your server.

Here’s how you can set it up:

#By appending .sslip.io to your IP address, you can access your server with a subdomain. For example:

dokku domains:set-global 10.0.0.2.sslip.io

فرایند استقرار را آغاز کنید.

راهنمای فرایند استقرار در پلتفرم Dokku

پیکربندی

# from your local machine

git clone https://github.com/heroku/ruby-getting-started

داکو را تنظیم کنید.

# on the Dokku host

dokku apps:create ruby-getting-started

برنامۀ خود را تنظیم کنید

قبل از هر کاری از هماهنگی برنامه با سرور Dokku مطمئن شوید. برای این کار ممکن است نیاز باشد پیکربندی را تنظیم کنید.

 ایجاد کلید SSH

SSH

قبل از هر چیز، لازم است کلیدهای SSH را برای احراز هویت تنظیم کنید. اگر هنوز این ‌کار را نکرده‌اید، یک کپی از کلید SSH روی سیستم خود ایجاد کرده و سپس آن را به سرور عمومی داکو را اضافه کنید. این کار را با استفاده از آدرس .ssh/authorized_keys انجام دهید.

 کد را مشخص کنید.

ابتدا با استفاده از دستور git remote add کد اصلی را به سرور داکو اضافه کنید. سپس با استفاده از دستور git push می‌توانید کد خود را توزیع و مستقر کنید.

 فرایند استقرار را کنترل کنید.

پس راه‌اندازی برنامه، می‌توانید تنظیمات را از طریق داشبورد مدیریت کنید.

تداوم فرایند

امکان ادغام Dokku و CI/CD و در نتیجه استقرار خودکار تغییرات در مخزن Git وجود دارد.

سخن پایانی

در نهایت لازم به ذکر است که برای استفادۀ بهتر از داکو، باید متغیرهایی را پیکربندی کنید، برنامه‌های لازم را نصب کرده و دستورالعمل لازم را دنبال کنید. به این شکل می‌توانید از عملکرد بالا و امنیت برنامه‌ها مطمئن باشید.