برنامه نویسی

استقرار برنامه Rails با MRSK در Hetzner: راهنمای مبتدی

سلام!

من در مورد Mrsk کنجکاو بودم و می خواستم آن را برای میزبانی یک برنامه ساده در یک VPS ارزان امتحان کنم. با این راهنما، مراحلی را که برای ایجاد و استقرار اولین برنامه Rails شما با MRSK در یک Hetzner VPS استفاده کردم، گام به گام راهنمایی می کنم.

برای این آموزش، ما همه چیز را تا حد امکان ساده نگه می داریم. ما برنامه ای را مستقر خواهیم کرد که از پایگاه داده SQLite استفاده می کند.

آنچه شما ابتدا نیاز خواهید داشت:

  • یک حساب Docker با یک کلید Api
  • یک حساب Hetzner

با فرض اینکه شما آن را آماده کرده اید، باید بتوانید اولین برنامه خود را با آن مستقر کنید Mrsk در کمتر از 10 دقیقه

داربست یک برنامه ریل

ابتدا اجازه دهید یک برنامه کاربردی را داربست کنیم. در زمان نوشتن این راهنما، استفاده از آن مهم است --main برای استفاده از نسخه آلفای Rails 7.1 پرچم گذاری کنید.

new rails_mrsk_hetzner -a propshaft --main -c tailwind -j esbuild
cd rails_mrsk_hetzner
bundle add tailwindcss-rails
bin/rails tailwindcss:install
git add .
git commit -m "rails new"
rails g scaffold post title:string content:text
rails db:create db:migrate
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در مرحله بعد، باید مسیرهای خود را به روز کنید.

# config/routes.rb
-  # root "articles#index"
+  root "posts#index"
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

یک VPS در Hetzner ایجاد کنید

اکنون که یک برنامه اولیه را راه اندازی کرده ایم، بیایید یک VPS در Hetzner ایجاد کنیم. باید مراحل ثبت نام و تأیید را طی کنید، پس از آن می توانید یک پروژه جدید از حساب خود ایجاد کنید.

یک پروژه Hetzner با VPS جدید ایجاد کنید

برای این آموزش، CAX11 را انتخاب می کنیم، یکی از مقرون به صرفه ترین گزینه های VPS با 2vCPU و 4 گیگابایت رم.

انتخاب VPS Hetzner برای Mrsk

لطفاً توجه داشته باشید که در زمان نگارش، MRSK از IPv6 پشتیبانی نمی کند، بنابراین باید IPv4 را حفظ کنید.

همچنین باید یک کلید SSH به سرور خود اضافه کنید. در اینجا نحوه کپی و چسباندن کلید آمده است:

pbcopy < ~/.ssh/id_rsa.pub
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سپس دسترسی SSH خود را به سرور با این دستور تست کنید:

ssh root@your_server_ip
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اگر با اعلان مواجه شدید، “آیا مطمئن هستید که می خواهید به اتصال ادامه دهید (بله/خیر/[fingerprint])؟”، پاسخ دهید “بله”.

اگر نمی توانید SSH را به سرور وارد کنید، قبل از ادامه باید این مشکل را حل کنید.

استقرار با MRSK

با آماده بودن برنامه و سرور ما، زمان آن رسیده است که MRSK را وارد عمل کنیم. ابتدا با دستور زیر آن را نصب کنید:

gem install mrsk
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سپس اجرا کنید mrsk init. این باعث ایجاد چندین فایل از جمله config/deploy.yml و .env.

در .env فایل، به روز رسانی کنید RAILS_MASTER_KEY ارزش و MRSK_REGISTRY_PASSWORD با یک کلید ایجاد شده در حساب Docker شما.

بعد، به روز رسانی کنید config/deploy.yml به صورت زیر فایل کنید:

service: rails_hetzner_mrsk

image: adrienpoly/rails_hetzner_mrsk

servers:
  - hetzner_ip_v4

registry:
  username: adrienpoly
  password:
    env: MRSK_REGISTRY_PASSWORD
env

:
  secret:
    - RAILS_MASTER_KEY
ssh:
  user: root # important to change it here as by default Mrsk use app and Hetzner root
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در حال حاضر می توانید سایر فایل ها را حذف کنید. تغییرات خود را انجام دهید و سپس دستور بوت استرپ سرورها را با curl و Docker اجرا کنید.

mrsk server bootstrap
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پس از موفقیت آمیز بودن این عملیات، می توانید اولین استقرار خود را با آن اجرا کنید mrsk deploy. اولین استقرار ممکن است چند دقیقه طول بکشد و باید با یک پیام بررسی سلامت موفقیت آمیز به پایان برسد.

در این مرحله، شما باید بتوانید آدرس IP را در یک مرورگر ببینید و برنامه Rails خود را ببینید! و voilà!

برنامه Mrsk به صورت زنده

تداوم داده ها

خوب خوب، هنوز واقعاً voilà نیست. اگر یک را ایجاد کنید Post و یک استقرار جدید انجام دهید، متوجه خواهید شد که داده ها از بین رفته اند. این اتفاق می افتد زیرا پایگاه داده SQLite به طور پیش فرض در داخل تصویر Docker اجرا می شود. هر بار که یک کانتینر جدید ساخته می شود، داده ها را پاک می کند.

برای حل این مشکل، باید یک حجم به ظرف Docker اضافه کنید. در config/deploy.yml فایل، این خط را اضافه کنید:

volumes:
  - "storage:/rails/storage"
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اکنون، داده‌ها در خارج از کانتینر نوشته می‌شوند و در سراسر استقرار باقی می‌مانند.

و بس! شما اولین برنامه Rails خود را با MRSK روی VPS Hetzner مستقر کرده اید.

اعزام مبارک!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا