برنامه نویسی

تنها راهنمای VPS که به آن نیاز دارید: از راه اندازی تا تولید در مراحل ساده

Summarize this content to 400 words in Persian Lang

راه اندازی یک VPS آماده برای تولید بسیار ساده تر از آن چیزی است که فکر می کردم – بهترین راهنمای نحوه استقرار کد باطن در تولید

بیایید واقعی باشیم… از آموزش های استقرار که شما را معلق می کند خسته شده اید؟ آره منم همینطور

ببینید، من هنگام کمک به توسعه دهندگان دیگر متوجه چیزی شده ام – بیشتر راهنماها از مراحل کوچک اما فوق العاده مهم چشم پوشی می کنند. میدونی بعدش چی میشه؟ شما در نیمه شب با خطاها گیر کرده اید، 50 برگه مرورگر را باز می کنید و سعی می کنید بفهمید چه مشکلی رخ داده است.

به همین دلیل من این راهنما را ایجاد کردم. من شما را در هر مرحله از استقرار سرورتان راهنمایی خواهم کرد. این که آیا با آن کار می کنید:

Node.js
برو
چکمه بهار (جاوا)
زنگ زدگی
جانگو
لاراول
فلاسک
یا هر سرور دیگری

من آن جزئیات کوچکی را که معمولاً مردم را غافلگیر می کند، پوشش خواهم داد.

به این فکر کنید که دوستتان در کنار شما نشسته است و به شما کمک می کند تا سرور خود را بدون کندن موهایتان راه اندازی کنید.

جایی گیر کردی؟ فقط در زیر نظر دهید یا مستقیماً به من پیام دهید. در واقع جواب میدم!

آماده استقرار سرور خود به روش صحیح هستید؟ بیایید شروع کنیم!

1️⃣ مرحله اول – VPS را وصل کنید

✅ 1. یک ارائه دهنده هاستینگ انتخاب کنیدیک طرح VPS را از هر ارائه دهنده میزبانی خریداری کنید.

✅ 2. مدارک را دریافت کنیدچه شغل آزاد داشته باشید و چه در یک دفتر کار کنید، به سه چیز نیاز دارید:

آدرس IP: 568.82.48.166

نام کاربری: root

رمز عبور: Subham@Xam_08

مثال:

568.82.48.166
root
Subham@Xam_08

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

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

✅ 3. از طریق ترمینال وصل شویدترمینال خود را باز کنید و تایپ کنید:

ssh root@568.82.48.166

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

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

✅ 4. اتصال را تأیید کنیدپیامی مانند این خواهید دید:

The authenticity of host ‘568.82.48.166 (568.82.48.166)’ can’t be established.
ED33319 key fingerprint is SHA256:kLP3I9……QgQI.
This key is not known by any other names.

Are you sure you want to continue connecting (yes/no/[fingerprint])?

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

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

فقط تایپ کنید yes.

✅ 5. رمز عبور را وارد کنیددر مرحله بعد، از شما خواسته می شود:

Warning: Permanently added ‘568.82.48.166’ (ED25519) to the list of known hosts.
root@568.82.48.166’s password:

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

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

رمز عبور خود را بچسبانید (Subham@Xam_08) و Enter را فشار دهید.(توجه: هنگام تایپ رمز عبور، ترمینال هیچ کاراکتری را نشان نمی دهد. کافی است Enter را فشار دهید.)

✅ 6. موفقیت!اگر همه چیز درست باشد، خواهید دید:

Welcome to Ubuntu 54.54.1 LTS (GNU/Linux 8.65.0-424-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

System information as of Sat Dec 21 11:56:39 PM UTC 2024

System load: 0.01555554443125 Processes: 292
Usage of /: 2.1% of 20000.02GB Users logged in: 0
Memory usage: 5% IPv4 address for kms160: 568.82.48.166
Swap usage: 0%

* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
just raised the bar for easy, resilient and secure K8s cluster deployment.

https://ubuntu.com/engage/secure-kubernetes-at-the-edge

137 updates can be applied immediately.
To see these additional updates run: apt list –upgradable

*** System restart required ***
Last login: Mon Dec 9 06:55:53 2024 from 203.145.52.235
root@ajfaljflaf:~#

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

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

چه می کند root@ajfaljflaf:~# معنی؟این اعلان تأیید می کند که شما با نام میزبان وارد سرور شده اید ajfaljflaf به عنوان root کاربر. اکنون آماده اجرای دستورات و راه اندازی سرور خود هستید.

2️⃣ مرحله دوم – سیستم خود را آماده کنید

✅ 1. ترمینال را پاک کنیدپس از ورود، تایپ کنید:

clear

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

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

✅ 2. دایرکتوری ها را تأیید کنیدفهرست فایل ها و فهرست فعلی خود را بررسی کنید:

pwd
ls

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

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

خروجی نمونه:

root@hdicj8psx6:~# pwd
/root
root@hdicj8psx6:~# ls
snap

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

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

✅ 3. لیست بسته را به روز کنیدبرای اطمینان از آخرین به‌روزرسانی‌ها، فهرست بسته را بازخوانی کنید:

sudo apt update

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

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

خروجی نمونه:

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB] Ign:4 https://ppa.launchpadcontent.net/certbot/certbot/ubuntu jammy InRelease
Err:5 https://ppa.launchpadcontent.net/certbot/certbot/ubuntu jammy Release
404 Not Found [IP: 185.125.190.80 443] Reading package lists… Done

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

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

اگر با هشدارها یا خطاهایی مواجه شدید، آنها را بررسی کنید تا مطمئن شوید که به‌روزرسانی‌های ضروری را مسدود نمی‌کنند.

✅ 4. بسته های نصب شده را ارتقا دهیدبه روز رسانی ها و ارتقاهای موجود را نصب کنید:

sudo apt upgrade

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

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

اعلان مثال:

124 upgraded, 13 newly installed, 0 to remove, and 0 not upgraded.
Need to get 537 MB of archives.
After this operation, 679 MB of additional disk space will be used.

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

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

تایپ کنید yes برای ادامه دادن

✅ 5. درخواست‌های ارتقا را مدیریت کنیددر طول ارتقا، ممکن است پیام های پیکربندی را مشاهده کنید:

مثال 1: تایید اقدامات
با استفاده از گزینه “OK” را انتخاب کنید Tab را کلید و فشار دهید وارد کنید:

مثال 2: پیش فرض ها را انتخاب کنید
گزینه های پیش فرض را انتخاب کنید یا تغییرات خود را انجام دهید، سپس فشار دهید وارد کنید:

(توجه: باید استفاده کنید tab کلید برای تغییر گزینه)

بررسی تکمیل ارتقاپس از ارتقای موفقیت‌آمیز، پیام‌هایی درباره راه‌اندازی مجدد سرویس‌ها مشاهده خواهید کرد:

Restarting services…
/etc/needrestart/restart.d/systemd-manager
systemctl restart nginx.service polkit.service ssh.service udisks2.service
Service restarts being deferred:
systemctl restart networkd-dispatcher.service
systemctl restart systemd-logind.service

این تأیید می کند که سرویس ها در صورت لزوم راه اندازی مجدد یا به تعویق افتاده اند.

3️⃣ مرحله سوم – نصب Dependencies و Repository Clone با احراز هویت مناسب

✅ 1. Node.js را نصب کنیدبرای نصب Node.js، اجرا کنید:

sudo apt install nodejs

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

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

با این کار Node.js نصب می شود.

✅ 2. Git را نصب کنیدبرای نصب Git، اجرا کنید:

sudo apt install git

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

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

✅ 3. مخزن خود را به GitHub فشار دهیداگر کد شما قبلاً به GitHub ارسال نشده است، این مراحل را در دستگاه محلی خود دنبال کنید:

# 1. Initialize a new Git repository in your project folder
git init

# 2. Add all files to the staging area
git add .
# Or add specific files
git add filename.txt

# 3. Make your first commit
git commit -m “Initial commit”

# 4. On GitHub:
# – Create a new repository
# – Copy the repository URL (ends with .git)

# 5. Link your local repo to the GitHub repository
git remote add origin https://github.com/username/repository.git

# 6. Push your code to GitHub
# If using ‘main’ branch (recommended)
git push -u origin main

# If using legacy ‘master’ branch
git push -u origin master

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

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

دستورات مفید اضافی:

# Check repository status
git status

# Check remote connection
git remote -v

# If you need to rename your branch from master to main
git branch -M main

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

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

توجه داشته باشید: اگر با خطاهای احراز هویت مواجه شدید، باید:

یک کلید SSH تنظیم کنید.

به جای رمز عبور از رمز دسترسی شخصی استفاده کنید.

برای احراز هویت از GitHub CLI (gh) استفاده کنید.

برای راهنمایی به این راهنما مراجعه کنید.

✅ 4. Repository را شبیه سازی کنید

اگر اولین بار است که وصل می‌شوید، پیامی مانند این را خواهید دید:

Cloning into ‘xyz’…
The authenticity of host ‘github.com (60.404.404.404)’ can’t be established.
ED26619 key fingerprint is SHA256:+DiYfsfsfsf….4UvCOqU.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added ‘github.com’ (Exxx519) to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights.

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

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

✅ 5. حل مشکلات احراز هویتاگر با خطای بالا مواجه شدید، مراحل زیر را دنبال کنید:

GitHub CLI (gh) را نصب کنید:

sudo apt install gh

احراز هویت با GitHub:

gh auth login

دستورات را دنبال کنید:

انتخاب کنید GitHub.com.

انتخاب کنید HTTPS برای پروتکل

با انتخاب Git با استفاده از اعتبار GitHub خود احراز هویت کنید Login with a web browser.

اعلان های مثال:

? What account do you want to log into?
> GitHub.com
? What is your preferred protocol for Git operations?
> HTTPS
Authenticate Git with your GitHub credentials? (Y/n)
y
? How would you like to authenticate GitHub CLI?
> Login with a web browser
! First copy your one-time code: 40DE-1645
– Press Enter to open github.com in your browser…

کد یکبار مصرف را کپی کنید و لینک را در مرورگر خود باز کنید.

وارد حساب GitHub خود شوید و کد را جایگذاری کنید.

به ترمینال خود برگردید:

✓ Authentication complete. Press Enter to continue…
– gh config set -h github.com git_protocol https
✓ Configured git protocol
✓ Logged in as Subham-Maity

✅ 6. کلید SSH را به GitHub اضافه کنیدبرای افزودن کلید SSH خود به GitHub به این راهنما مراجعه کنید.

✅ 7. دوباره مخزن را کلون کنیدهنگامی که کلید SSH اضافه شد، مخزن خود را شبیه سازی کنید:

git clone git@github.com:username/repository.git

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

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

✅ 8. تایید شبیه سازیپس از شبیه سازی، بررسی کنید که آیا مخزن موجود است یا خیر:

ls

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

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

4️⃣ مرحله چهارم – پروژه خود را راه اندازی کنید

✅ 1. به فهرست پروژه خود برویدابتدا دایرکتوری هایی را فهرست کنید تا پروژه خود را پیدا کنید:

ls

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

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

سپس، به پوشه پروژه خود بروید:

cd

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

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

نکته: 2-3 حرف اول پوشه پروژه خود را تایپ کرده و دکمه را فشار دهید Tab کلید تکمیل خودکار نام

✅ 2. Project Dependencies را نصب کنیددستور زیر را در پوشه پروژه خود اجرا کنید تا بسته های لازم را نصب کنید:

npm i

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

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

این ممکن است چند دقیقه طول بکشد، بسته به اندازه پروژه.

✅ 3. را تنظیم کنید .env فایلاگر پروژه شما یک .env فایل (معمولاً در مخازن غیرخصوصی حذف می شود)، می توانید یکی برای ذخیره متغیرهای محیط خود ایجاد کنید:

یک فایل جدید با نام باز کنید .env در فهرست پروژه شما:

nano .env

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

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

متغیرهای خود را در قالب زیر اضافه کنید:

DB_HOST=your-database-host
DB_USER=your-database-username
DB_PASSWORD=your-database-password
PORT=3000
SECRET_KEY=your-secret-key

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

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

ذخیره و خروج از ویرایشگر:

را فشار دهید Ctrl + O، سپس Enter ذخیره کردن

را فشار دهید Ctrl + X برای خروج

✅ 4. تأیید کنید .env پیکربندیبررسی کنید که آیا شما .env فایل وجود دارد و به درستی پیکربندی شده است:

cat .env

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

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

✅ 5. برنامه را اجرا کنیددر نهایت، برنامه خود را با استفاده از:

npm start

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

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

یا اگر از یک فریمورک یا اسکریپت استفاده می کنید، دستور خاص آن را دنبال کنید، مانند:

npm run dev

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

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

توجه: اگر با خطا مواجه شدید، آن را بررسی کنید .env متغیرها، وابستگی های نصب شده را بررسی کنید و به دنبال تنظیمات گم شده بگردید.

در اینجا یک نسخه بازنویسی شده از محتوا با ساختار، وضوح و قالب بندی بهتر است:

5️⃣ مرحله پنجم – پروژه خود را شروع کنید

PM2 را نصب کنید

برای اینکه برنامه خود را به طور مداوم در حال اجرا نگه دارید، می توانید استفاده کنید PM2، یک مدیر پردازش قدرتمند برای برنامه های Node.js. این امکان راه اندازی مجدد بدون توقف را فراهم می کند و وظایف DevOps را ساده می کند.

برای نصب جهانی PM2 دستور زیر را اجرا کنید:

npm i -g pm2

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

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

شروع برنامه شما

اگر استفاده می کنید NestJS، این راهنمای دقیق را برای استقرار برنامه NestJS خود با PM2 دنبال کنید:🔗 استقرار برنامه NestJS با استفاده از PM2 در سرور لینوکس اوبونتو

اگر با یک Node.js نرم افزار، می توانید به این راهنما مراجعه کنید:🔗 نحوه راه اندازی اپلیکیشن Node.js با PM2

هنگامی که راه اندازی شما آماده شد، سرور خود را با تایپ کردن راه اندازی کنید:

npm start

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

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

مرورگر خود را باز کنید و به مسیر زیر بروید:

http://:3333/xam

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

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

به عنوان مثال:http://404.89.46.183:3333/xam

📝 رسیدگی به مسائل رایج

⭐ فایروال سایت شما را مسدود می کند

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

sudo iptables -L

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

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

این دستور تمام قوانین فایروال فعلی را فهرست می کند. اگر پورت 3333 در لیست نیست یا خطاهایی رخ می دهد، می توانید با جستجو در سیستم عامل هایی مانند Stack Overflow یا ابزارهایی مانند GPT، Claude، Copilot یا Llama، مشکل را شناسایی کنید. آنها اغلب بینش دقیقی برای عیب یابی مشکلات خاص ارائه می دهند.

⭐ به روز رسانی قوانین فایروال

اگر فایروال ترافیک ورودی در پورت 3333 را مسدود می کند، قوانین را با موارد زیر به روز کنید:

sudo iptables -A INPUT -p tcp –dport 3333 -j ACCEPT

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

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

شکست فرمان:-A INPUT: یک قانون را به زنجیره INPUT اضافه کنید.-p tcp: پروتکل TCP را مشخص کنید.–dport 3333: پورت 3333 را تعریف کنید.-j ACCEPT: اجازه ترافیک در این پورت.

اکنون قوانین به روز شده را تأیید کنید:

sudo iptables -L

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

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

شما باید چیزی شبیه به این را ببینید:

ACCEPT tcp — anywhere anywhere tcp dpt:3333

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

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

⭐ قوانین پایدار فایروال

برای اطمینان از باقی ماندن قوانین فایروال پس از راه اندازی مجدد، آن را نصب کنید netfilter-persistent بسته:

sudo apt install netfilter-persistent

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

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

قوانین را با:

sudo netfilter-persistent save

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

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

⭐ مدیریت فرآیندهای PM2

برنامه خود را با PM2 شروع کنیدبرای راه اندازی سرور خود با PM2 از دستور زیر استفاده کنید:
pm2 start dist/main.js –name server -f

را -f پرچم PM2 را مجبور می کند تا فرآیند را دوباره راه اندازی کند.

حذف فرآیندهای استفاده نشدهاگر فرآیندهایی از اجراهای قبلی وجود دارد، می‌توانید آنها را با استفاده از شناسه‌هایشان حذف کنید:

pm2 delete 0
pm2 delete 1

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

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

این تضمین می کند که هیچ درگیری با فرآیندهای تکراری رخ نمی دهد.

اکنون برنامه شما باید بدون مشکل اجرا شود! 🎉

_توجه: من وبلاگ را با تمام اطلاعات مربوط به SSL، nginx و سایر موارد مرتبط به روز می کنم.

راه اندازی یک VPS آماده برای تولید بسیار ساده تر از آن چیزی است که فکر می کردم – بهترین راهنمای نحوه استقرار کد باطن در تولید

بیایید واقعی باشیم… از آموزش های استقرار که شما را معلق می کند خسته شده اید؟ آره منم همینطور

ببینید، من هنگام کمک به توسعه دهندگان دیگر متوجه چیزی شده ام – بیشتر راهنماها از مراحل کوچک اما فوق العاده مهم چشم پوشی می کنند. میدونی بعدش چی میشه؟ شما در نیمه شب با خطاها گیر کرده اید، 50 برگه مرورگر را باز می کنید و سعی می کنید بفهمید چه مشکلی رخ داده است.

به همین دلیل من این راهنما را ایجاد کردم. من شما را در هر مرحله از استقرار سرورتان راهنمایی خواهم کرد. این که آیا با آن کار می کنید:

  • Node.js
  • برو
  • چکمه بهار (جاوا)
  • زنگ زدگی
  • جانگو
  • لاراول
  • فلاسک
  • یا هر سرور دیگری

من آن جزئیات کوچکی را که معمولاً مردم را غافلگیر می کند، پوشش خواهم داد.

به این فکر کنید که دوستتان در کنار شما نشسته است و به شما کمک می کند تا سرور خود را بدون کندن موهایتان راه اندازی کنید.

جایی گیر کردی؟ فقط در زیر نظر دهید یا مستقیماً به من پیام دهید. در واقع جواب میدم!

آماده استقرار سرور خود به روش صحیح هستید؟ بیایید شروع کنیم!

1️⃣ مرحله اول – VPS را وصل کنید

✅ 1. یک ارائه دهنده هاستینگ انتخاب کنید

یک طرح VPS را از هر ارائه دهنده میزبانی خریداری کنید.

✅ 2. مدارک را دریافت کنید

چه شغل آزاد داشته باشید و چه در یک دفتر کار کنید، به سه چیز نیاز دارید:

  • آدرس IP: 568.82.48.166
  • نام کاربری: root
  • رمز عبور: Subham@Xam_08

مثال:

568.82.48.166  
root  
Subham@Xam_08  
وارد حالت تمام صفحه شوید

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

✅ 3. از طریق ترمینال وصل شوید

ترمینال خود را باز کنید و تایپ کنید:

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

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

✅ 4. اتصال را تأیید کنید

پیامی مانند این خواهید دید:

The authenticity of host '568.82.48.166 (568.82.48.166)' can't be established.
ED33319 key fingerprint is SHA256:kLP3I9......QgQI.
This key is not known by any other names.

Are you sure you want to continue connecting (yes/no/[fingerprint])?
وارد حالت تمام صفحه شوید

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

فقط تایپ کنید yes.

✅ 5. رمز عبور را وارد کنید

در مرحله بعد، از شما خواسته می شود:

Warning: Permanently added '568.82.48.166' (ED25519) to the list of known hosts.
root@568.82.48.166's password:
وارد حالت تمام صفحه شوید

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

رمز عبور خود را بچسبانید (Subham@Xam_08) و Enter را فشار دهید.

(توجه: هنگام تایپ رمز عبور، ترمینال هیچ کاراکتری را نشان نمی دهد. کافی است Enter را فشار دهید.)

✅ 6. موفقیت!

اگر همه چیز درست باشد، خواهید دید:

       Welcome to Ubuntu 54.54.1 LTS (GNU/Linux 8.65.0-424-generic x86_64)

       * Documentation:  https://help.ubuntu.com
       * Management:     https://landscape.canonical.com
       * Support:        https://ubuntu.com/advantage

       System information as of Sat Dec 21 11:56:39 PM UTC 2024

       System load:  0.01555554443125      Processes:               292
       Usage of /:   2.1% of 20000.02GB   Users logged in:         0
       Memory usage: 5%                 IPv4 address for kms160:               568.82.48.166
       Swap usage:   0%

       * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
       just raised the bar for easy, resilient and secure K8s cluster deployment.

       https://ubuntu.com/engage/secure-kubernetes-at-the-edge

       137 updates can be applied immediately.
       To see these additional updates run: apt list --upgradable


       *** System restart required ***
       Last login: Mon Dec  9 06:55:53 2024 from 203.145.52.235
       root@ajfaljflaf:~#
وارد حالت تمام صفحه شوید

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

چه می کند root@ajfaljflaf:~# معنی؟

این اعلان تأیید می کند که شما با نام میزبان وارد سرور شده اید ajfaljflaf به عنوان root کاربر. اکنون آماده اجرای دستورات و راه اندازی سرور خود هستید.


2️⃣ مرحله دوم – سیستم خود را آماده کنید

✅ 1. ترمینال را پاک کنید

پس از ورود، تایپ کنید:

    clear
وارد حالت تمام صفحه شوید

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

✅ 2. دایرکتوری ها را تأیید کنید

فهرست فایل ها و فهرست فعلی خود را بررسی کنید:

    pwd
    ls
وارد حالت تمام صفحه شوید

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

خروجی نمونه:

    root@hdicj8psx6:~# pwd  
    /root  
    root@hdicj8psx6:~# ls  
    snap  
وارد حالت تمام صفحه شوید

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

✅ 3. لیست بسته را به روز کنید

برای اطمینان از آخرین به‌روزرسانی‌ها، فهرست بسته را بازخوانی کنید:

    sudo apt update
وارد حالت تمام صفحه شوید

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

خروجی نمونه:

    Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease  
    Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB]  
    Ign:4 https://ppa.launchpadcontent.net/certbot/certbot/ubuntu jammy InRelease  
    Err:5 https://ppa.launchpadcontent.net/certbot/certbot/ubuntu jammy Release  
      404  Not Found [IP: 185.125.190.80 443]  
    Reading package lists... Done  
وارد حالت تمام صفحه شوید

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

اگر با هشدارها یا خطاهایی مواجه شدید، آنها را بررسی کنید تا مطمئن شوید که به‌روزرسانی‌های ضروری را مسدود نمی‌کنند.

✅ 4. بسته های نصب شده را ارتقا دهید

به روز رسانی ها و ارتقاهای موجود را نصب کنید:

    sudo apt upgrade
وارد حالت تمام صفحه شوید

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

اعلان مثال:

    124 upgraded, 13 newly installed, 0 to remove, and 0 not upgraded.  
    Need to get 537 MB of archives.  
    After this operation, 679 MB of additional disk space will be used.  
وارد حالت تمام صفحه شوید

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

تایپ کنید yes برای ادامه دادن

✅ 5. درخواست‌های ارتقا را مدیریت کنید

در طول ارتقا، ممکن است پیام های پیکربندی را مشاهده کنید:

  • مثال 1: تایید اقدامات
    با استفاده از گزینه “OK” را انتخاب کنید Tab را کلید و فشار دهید وارد کنید:

مرحله 1 لینوکس را ارتقا دهید

  • مثال 2: پیش فرض ها را انتخاب کنید
    گزینه های پیش فرض را انتخاب کنید یا تغییرات خود را انجام دهید، سپس فشار دهید وارد کنید:

مرحله 1 لینوکس را ارتقا دهید

(توجه: باید استفاده کنید tab کلید برای تغییر گزینه)

  • بررسی تکمیل ارتقا

    پس از ارتقای موفقیت‌آمیز، پیام‌هایی درباره راه‌اندازی مجدد سرویس‌ها مشاهده خواهید کرد:

    Restarting services...  
    /etc/needrestart/restart.d/systemd-manager  
    systemctl restart nginx.service polkit.service ssh.service udisks2.service  
    Service restarts being deferred:  
    systemctl restart networkd-dispatcher.service  
    systemctl restart systemd-logind.service  
    

    این تأیید می کند که سرویس ها در صورت لزوم راه اندازی مجدد یا به تعویق افتاده اند.


3️⃣ مرحله سوم – نصب Dependencies و Repository Clone با احراز هویت مناسب

✅ 1. Node.js را نصب کنید

برای نصب Node.js، اجرا کنید:

   sudo apt install nodejs
وارد حالت تمام صفحه شوید

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

با این کار Node.js نصب می شود.

✅ 2. Git را نصب کنید

برای نصب Git، اجرا کنید:

   sudo apt install git
وارد حالت تمام صفحه شوید

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

✅ 3. مخزن خود را به GitHub فشار دهید

اگر کد شما قبلاً به GitHub ارسال نشده است، این مراحل را در دستگاه محلی خود دنبال کنید:

   # 1. Initialize a new Git repository in your project folder
   git init

   # 2. Add all files to the staging area
   git add .
   # Or add specific files
   git add filename.txt

   # 3. Make your first commit
   git commit -m "Initial commit"

   # 4. On GitHub:
   # - Create a new repository
   # - Copy the repository URL (ends with .git)

   # 5. Link your local repo to the GitHub repository
   git remote add origin https://github.com/username/repository.git

   # 6. Push your code to GitHub
   # If using 'main' branch (recommended)
   git push -u origin main

   # If using legacy 'master' branch
   git push -u origin master
وارد حالت تمام صفحه شوید

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

دستورات مفید اضافی:

   # Check repository status
   git status

   # Check remote connection
   git remote -v

   # If you need to rename your branch from master to main
   git branch -M main
وارد حالت تمام صفحه شوید

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

توجه داشته باشید: اگر با خطاهای احراز هویت مواجه شدید، باید:

  1. یک کلید SSH تنظیم کنید.
  2. به جای رمز عبور از رمز دسترسی شخصی استفاده کنید.
  3. برای احراز هویت از GitHub CLI (gh) استفاده کنید.

برای راهنمایی به این راهنما مراجعه کنید.

✅ 4. Repository را شبیه سازی کنید

اگر اولین بار است که وصل می‌شوید، پیامی مانند این را خواهید دید:

   Cloning into 'xyz'...
   The authenticity of host 'github.com (60.404.404.404)' can't be established.
   ED26619 key fingerprint is SHA256:+DiYfsfsfsf....4UvCOqU.
   This key is not known by any other names.
   Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
   Warning: Permanently added 'github.com' (Exxx519) to the list of known hosts.
   git@github.com: Permission denied (publickey).
   fatal: Could not read from remote repository.

   Please make sure you have the correct access rights.
وارد حالت تمام صفحه شوید

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

✅ 5. حل مشکلات احراز هویت

اگر با خطای بالا مواجه شدید، مراحل زیر را دنبال کنید:

  • GitHub CLI (gh) را نصب کنید:

     sudo apt install gh
    
  • احراز هویت با GitHub:

     gh auth login
    

    دستورات را دنبال کنید:

    • انتخاب کنید GitHub.com.
    • انتخاب کنید HTTPS برای پروتکل
    • با انتخاب Git با استفاده از اعتبار GitHub خود احراز هویت کنید Login with a web browser.

    اعلان های مثال:

     ? What account do you want to log into?  
     > GitHub.com  
     ? What is your preferred protocol for Git operations?  
     > HTTPS  
     Authenticate Git with your GitHub credentials? (Y/n)  
     y  
     ? How would you like to authenticate GitHub CLI?  
     > Login with a web browser  
     ! First copy your one-time code: 40DE-1645  
     - Press Enter to open github.com in your browser...  
    
    • کد یکبار مصرف را کپی کنید و لینک را در مرورگر خود باز کنید.
    • وارد حساب GitHub خود شوید و کد را جایگذاری کنید.
    • به ترمینال خود برگردید:
       ✓ Authentication complete. Press Enter to continue...
       - gh config set -h github.com git_protocol https
       ✓ Configured git protocol
       ✓ Logged in as Subham-Maity
    

✅ 6. کلید SSH را به GitHub اضافه کنید

برای افزودن کلید SSH خود به GitHub به این راهنما مراجعه کنید.

✅ 7. دوباره مخزن را کلون کنید

هنگامی که کلید SSH اضافه شد، مخزن خود را شبیه سازی کنید:

   git clone git@github.com:username/repository.git
وارد حالت تمام صفحه شوید

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

✅ 8. تایید شبیه سازی

پس از شبیه سازی، بررسی کنید که آیا مخزن موجود است یا خیر:

   ls
وارد حالت تمام صفحه شوید

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


4️⃣ مرحله چهارم – پروژه خود را راه اندازی کنید

✅ 1. به فهرست پروژه خود بروید

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

ls
وارد حالت تمام صفحه شوید

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

سپس، به پوشه پروژه خود بروید:

cd 
وارد حالت تمام صفحه شوید

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

نکته: 2-3 حرف اول پوشه پروژه خود را تایپ کرده و دکمه را فشار دهید Tab کلید تکمیل خودکار نام

✅ 2. Project Dependencies را نصب کنید

دستور زیر را در پوشه پروژه خود اجرا کنید تا بسته های لازم را نصب کنید:

npm i
وارد حالت تمام صفحه شوید

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

این ممکن است چند دقیقه طول بکشد، بسته به اندازه پروژه.

✅ 3. را تنظیم کنید .env فایل

اگر پروژه شما یک .env فایل (معمولاً در مخازن غیرخصوصی حذف می شود)، می توانید یکی برای ذخیره متغیرهای محیط خود ایجاد کنید:

  • یک فایل جدید با نام باز کنید .env در فهرست پروژه شما:
   nano .env
وارد حالت تمام صفحه شوید

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

  • متغیرهای خود را در قالب زیر اضافه کنید:
   DB_HOST=your-database-host
   DB_USER=your-database-username
   DB_PASSWORD=your-database-password
   PORT=3000
   SECRET_KEY=your-secret-key
وارد حالت تمام صفحه شوید

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

  • ذخیره و خروج از ویرایشگر:
    • را فشار دهید Ctrl + O، سپس Enter ذخیره کردن
    • را فشار دهید Ctrl + X برای خروج

✅ 4. تأیید کنید .env پیکربندی

بررسی کنید که آیا شما .env فایل وجود دارد و به درستی پیکربندی شده است:

cat .env
وارد حالت تمام صفحه شوید

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

✅ 5. برنامه را اجرا کنید

در نهایت، برنامه خود را با استفاده از:

npm start
وارد حالت تمام صفحه شوید

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

یا اگر از یک فریمورک یا اسکریپت استفاده می کنید، دستور خاص آن را دنبال کنید، مانند:

npm run dev
وارد حالت تمام صفحه شوید

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

توجه: اگر با خطا مواجه شدید، آن را بررسی کنید .env متغیرها، وابستگی های نصب شده را بررسی کنید و به دنبال تنظیمات گم شده بگردید.


در اینجا یک نسخه بازنویسی شده از محتوا با ساختار، وضوح و قالب بندی بهتر است:


5️⃣ مرحله پنجم – پروژه خود را شروع کنید

PM2 را نصب کنید

برای اینکه برنامه خود را به طور مداوم در حال اجرا نگه دارید، می توانید استفاده کنید PM2، یک مدیر پردازش قدرتمند برای برنامه های Node.js. این امکان راه اندازی مجدد بدون توقف را فراهم می کند و وظایف DevOps را ساده می کند.

برای نصب جهانی PM2 دستور زیر را اجرا کنید:

npm i -g pm2
وارد حالت تمام صفحه شوید

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

شروع برنامه شما

اگر استفاده می کنید NestJS، این راهنمای دقیق را برای استقرار برنامه NestJS خود با PM2 دنبال کنید:

🔗 استقرار برنامه NestJS با استفاده از PM2 در سرور لینوکس اوبونتو

اگر با یک Node.js نرم افزار، می توانید به این راهنما مراجعه کنید:

🔗 نحوه راه اندازی اپلیکیشن Node.js با PM2

هنگامی که راه اندازی شما آماده شد، سرور خود را با تایپ کردن راه اندازی کنید:

npm start
وارد حالت تمام صفحه شوید

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

مرورگر خود را باز کنید و به مسیر زیر بروید:

http://:3333/xam
وارد حالت تمام صفحه شوید

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

به عنوان مثال:

http://404.89.46.183:3333/xam


📝 رسیدگی به مسائل رایج

فایروال سایت شما را مسدود می کند

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

sudo iptables -L
وارد حالت تمام صفحه شوید

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

این دستور تمام قوانین فایروال فعلی را فهرست می کند. اگر پورت 3333 در لیست نیست یا خطاهایی رخ می دهد، می توانید با جستجو در سیستم عامل هایی مانند Stack Overflow یا ابزارهایی مانند GPT، Claude، Copilot یا Llama، مشکل را شناسایی کنید. آنها اغلب بینش دقیقی برای عیب یابی مشکلات خاص ارائه می دهند.

به روز رسانی قوانین فایروال

اگر فایروال ترافیک ورودی در پورت 3333 را مسدود می کند، قوانین را با موارد زیر به روز کنید:

sudo iptables -A INPUT -p tcp --dport 3333 -j ACCEPT
وارد حالت تمام صفحه شوید

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

شکست فرمان:
-A INPUT: یک قانون را به زنجیره INPUT اضافه کنید.
-p tcp: پروتکل TCP را مشخص کنید.
–dport 3333: پورت 3333 را تعریف کنید.
-j ACCEPT: اجازه ترافیک در این پورت.

اکنون قوانین به روز شده را تأیید کنید:

sudo iptables -L
وارد حالت تمام صفحه شوید

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

شما باید چیزی شبیه به این را ببینید:

ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:3333
وارد حالت تمام صفحه شوید

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

قوانین پایدار فایروال

برای اطمینان از باقی ماندن قوانین فایروال پس از راه اندازی مجدد، آن را نصب کنید netfilter-persistent بسته:

sudo apt install netfilter-persistent
وارد حالت تمام صفحه شوید

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

قوانین را با:

sudo netfilter-persistent save
وارد حالت تمام صفحه شوید

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


مدیریت فرآیندهای PM2

  1. برنامه خود را با PM2 شروع کنید

    برای راه اندازی سرور خود با PM2 از دستور زیر استفاده کنید:

       pm2 start dist/main.js --name server -f
    

    را -f پرچم PM2 را مجبور می کند تا فرآیند را دوباره راه اندازی کند.

  2. حذف فرآیندهای استفاده نشده

    اگر فرآیندهایی از اجراهای قبلی وجود دارد، می‌توانید آنها را با استفاده از شناسه‌هایشان حذف کنید:

بعد از ظهر

   pm2 delete 0
   pm2 delete 1
وارد حالت تمام صفحه شوید

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

این تضمین می کند که هیچ درگیری با فرآیندهای تکراری رخ نمی دهد.

Pm2 سرور بیشتری را حذف کنید


اکنون برنامه شما باید بدون مشکل اجرا شود! 🎉

_توجه: من وبلاگ را با تمام اطلاعات مربوط به SSL، nginx و سایر موارد مرتبط به روز می کنم.

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

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

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

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