ورکشاپ عملی · دیپلوی پروژه روی VPS با Docker و CI/CD
کدت روی لوکاله.
وقتشه دیپلوی شه روی سرور.
یک پروژه واقعی Laravel رو با Docker آماده میکنیم، روی VPS بالا میاریم و به دامنه و HTTPS وصل میکنیم. آخرش هم با GitHub Actions، دیپلوی با هر Push انجام میشه.

آخر این ورکشاپ به کجا میرسیم؟
از Local تا Production؛ یک بار کل مسیر دیپلوی رو واقعا انجام میدیم.
توی این ورکشاپ فقط درباره Deploy حرف نمیزنیم. یک پروژه واقعی Laravel رو برمیداریم و خودمون تا Production میبریم.
- پروژه واقعی Laravel رو برای Production آماده میکنیم.
- پروژه رو با Docker و Docker Compose کانتینرایز میکنیم.
- کد رو روی GitHub میبریم و سرور رو به Repository متصل میکنیم.
- یک VPS واقعی با Ubuntu راهاندازی و تنظیمات امنیتی اولیه اش رو انجام میدیم.
- پروژه رو روی سرور Deploy میکنیم و Containerها رو بالا میاریم.
- دامنه و DNS رو به سرور متصل میکنیم.
- HTTPS رو راهاندازی میکنیم و پروژه رو روی دامنه واقعی بالا میاریم.
- با Nginx اپلیکیشن رو در محیط Production سرو میکنیم.
- با GitHub Actions یک CI/CD Pipeline واقعی میسازیم.
- در نهایت به جایی میرسیم که کد رو Push میکنی و نسخه جدید پروژه روی سرور Deploy میشه.

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

داخل ورکشاپ چیکار میکنیم؟
یک پروژه رو تا آخر دنبال میکنیم.
بهجای عوضکردن مثال در هر درس، همون اپلیکیشن Laravel رو جلو میبریم. اینطوری معلومه هر تنظیم چه مشکلی رو حل میکنه.
۰۱ / آمادهسازی
محیط اجرا رو میسازیم
وابستگیها، Dockerfile و Compose را کنار هم میذاریم تا پروژه داخل کانتینر اجرا بشه.
۰۲ / دیپلوی
روی سرور واقعی اجرا میکنیم
SSH، تنظیمات پایه امنیت، Nginx، دامنه و Caddy را در مسیر همون پروژه تنظیم میکنیم.
۰۳ / خودکارسازی
نسخه بعدی رو با Push میفرستیم
دسترسیها و Secrets را آماده میکنیم و اجرای Workflow در GitHub Actions را میبینیم.
این ویدیو رو ببین
قبل از ثبت نام با پروژه آشنا شو.
تریلر ورکشاپ، معرفی پروژه و مسیر کاریه که با هم انجام میدیم.
محتوای ورکشاپ چیه؟
از اولین اجرا روی لوکال ماشین تا دیپلوی اتوماتیک.
هر فصل یک بخش از همین پروژه رو جلو میبره. بازش کن و ببین دقیقاً روی چه چیزی کار میکنیم.
۰۱شروع پروژه و آمادهسازی محیط
اول با پروژهای که قراره تا آخر ورکشاپ باهاش کار کنیم آشنا میشیم. بدون Docker روی Local اجراش میکنیم تا ساختار و وابستگیهاش دستمون بیاد، بعد Dockerizeاش میکنیم و با Docker Compose محیطی که لازم داره رو میسازیم. آخر این فصل کل پروژه بهصورت Containerized روی سیستم خودت بالا میاد.
- ۱اجرای پروژه روی Local بدون Docker۱۴:۳۲
- ۲Dockerize کردن اپلیکیشن۲۱:۵۸
- ۳ساخت Docker Compose۱۱:۱۴
- ۴اجرای کامل پروژه با Docker روی Local۹:۵۲
۰۲GitHub و آمادهسازی زیرساخت
حالا که پروژه با Docker بالا میاد، میبریمش روی GitHub و زیرساخت Production رو آماده میکنیم. توی این فصل یه VPS واقعی میگیریم و اولین اتصال امن به سرور رو انجام میدیم — همونجایی که از Local جدا میشیم. از این لینک میتونی به کد ها و فایل پروژه دسترسی داشته باشی: https://github.com/sepisoltani/nexashop
- ۵انتقال پروژه به GitHub۷:۲۳
- ۶خرید VPS و اتصال با SSH Key۱۱:۲۶
۰۳امنسازی و آمادهسازی سرور Ubuntu
قبل از اینکه چیزی رو Deploy کنیم، سرور باید آماده بشه. تنظیمات امنیتی SSH رو انجام میدیم، دسترسیهای اضافی رو میبندیم، Firewall رو تنظیم میکنیم و Docker رو روی VPS نصب میکنیم. اینجا بحث امنیت پیشرفتهی Linux نیست؛ همون کارهای پایهایه که قبل از میزبانی یه اپ واقعی لازمه.
- ۷غیرفعال کردن ورود SSH با Password۴:۵۶
- ۸غیرفعال کردن SSH برای کاربر Root۵:۵۹
- ۹تنظیم Firewall با UFW۵:۵۹
- ۱۰نصب Docker روی VPS۵:۲۳
۰۴Deploy واقعی پروژه روی VPS
اینجا میرسیم به بخش اصلی ورکشاپ. سرور رو به GitHub وصل میکنیم، سورس رو روی VPS میگیریم، تنظیمات مخصوص Production رو آماده میکنیم و برای اولین بار اپ خودمون رو با Docker روی سرور بالا میاریم. آخر این فصل، اپلیکیشن واقعاً روی VPS در حال اجراست.
- ۱۱اتصال VPS به GitHub و Clone کردن پروژه۷:۱۲
- ۱۲ساخت Docker Compose مخصوص Production۷:۰۷
- ۱۳اجرای Containerها روی سرور۸:۰۶
۰۵دامنه، DNS و HTTPS
اپ روی سرور بالاست، ولی هنوز باید از یه دامنهی واقعی و روی اتصال امن در دسترس باشه. دامنه رو به VPS وصل میکنیم، DNS رو تنظیم میکنیم و HTTPS رو برای Production راه میندازیم. مشکلهایی هم که معمولاً همینجا پیش میاد رو با هم رفع میکنیم.
- ۱۴اتصال دامنه و تنظیم DNS۵:۳۱
- ۱۵راهاندازی SSL و Troubleshooting محیط Production۱۴:۲۸
۰۶CI/CD و Deploy اتوماتیک
تا اینجا هر بار دستی Deploy کردیم. توی فصل آخر این کار رو اتوماتیک میکنیم: اول میبینیم CI/CD چه مشکلی رو حل میکنه و چرا Secrets لازم داریم، بعد Pipeline رو میسازیم تا با هر Push، پروژه خودش روی سرور بهروز بشه.
- ۱۶آمادهسازی CI/CD، Secrets و دسترسیها۷:۲۳
- ۱۷پیادهسازی CI/CD و Deploy اتوماتیک۲۹:۵۴
برای چه کسی؟
Docker رو یاد گرفتی. حالا قدم بعدی چیه؟
Docker رو بلدی؛ ولی حالا میخوای ازش استفاده کنی.
اگه آموزش رایگان Docker رو دیدی، اینجا میبینی چطور با همون مفاهیم یک پروژه واقعی دیپلوی میشه.
پروژه میسازی، ولی سرور و دیپلویمنت برات مبهمه.
از آمادهکردن VPS تا دامنه و HTTPS، مسیر را روی یک اپلیکیشن دنبال میکنی.
میخوای یه بار جریان کاری DevOps رو ببینی.
با Linux و Docker در حد پایه آشنایی داری و میخوای ارتباط ابزارها را در عمل ببینی.
محدودهاش مشخصه: یک دیپلوی کامل از اول تا آخر.
آشنایی پایه با Docker، Linux و ترمینال کمک میکنه. این ورکشاپ جای دوره جامع DevOps، آموزش مقدماتی برنامهنویسی یا Kubernetes رو نمیگیره.
بعد از ورکشاپ چه اتفاقی می افته؟
میفهمی DevOps توی یک پروژه واقعی یعنی چی.
میدونی تنظیمات Production کجاست، اتصال دامنه و HTTPS چطور کار میکنه و چطور تغییر کد را از GitHub به سرور برسونی.
- Codeتغییر کد
- git pushارسال تغییرات
- GitHub Actionsاجرای Workflow
- VPSدیپلوی روی سرور
- Productionنسخه جدید در دسترسه
ابزارهایی که توی این ورکشاپ استفاده میکنیم


کی قراره بهت یاد بده؟
سلام، من سپهرم.
اینجا درباره برنامهنویسی و DevOps آموزش میدم. توی این ورکشاپ میخوام ارتباط بین ابزارها رو روی یک پروژه نشون بدم؛ از کدی که روی لپتاپ اجرا میشه تا نسخهای که روی سروره.
برای آشنایی با شیوه آموزش من، میتونی اول ویدیوهای رایگان کانال رو ببینی. کامل رایگان
آشنایی با آموزشهای منقبل از خرید
سوالی مونده؟
چقدر Docker و Linux باید بلد باشم؟
آشنایی پایه با کانتینرها و ترمینال کمک میکنه. Dockerize کردن همین پروژه رو با هم انجام میدیم، ولی مفاهیم Docker و Linux رو از ابتدا و بهصورت جامع آموزش نمیدیم. اگه تازه شروع کردی، اول آموزش رایگان Docker رو ببین.
حتماً باید Laravel بلد باشم؟
پروژه ورکشاپ با Laravel ساخته شده و تمرکز ما روی اجرای پروژه و دیپلوی اونه. قرار نیست در این ورکشاپ برنامهنویسی Laravel رو از ابتدا یاد بگیریم.
برای تمرین به سرور و دامنه نیاز دارم؟
برای اجرای کامل تمرینها روی اینترنت، به VPS و دامنه نیاز داری. هزینه این دو جدا از هزینه ورکشاپه. میتونی اول ویدیوها رو ببینی و بعد محیط تمرینت رو آماده کنی.
CI/CD رو واقعاً پیاده میکنیم؟
بله. دسترسیها و Secrets را تنظیم میکنیم، Workflow مینویسیم و با یک Push، بهروزرسانی پروژه روی سرور رو بررسی میکنیم.
بعد از پرداخت از کجا ویدیوها رو ببینم؟
بعد از تأیید پرداخت، ورکشاپ در «دورههای من» حساب کاربریت در دسترسه. برای پرداخت کارت به کارت، اول باید رسید پرداخت تأیید بشه.
سورس پروژه چطور ارائه میشه؟
سورس پروژه رو روی گیتهاب بهتون میدم میتونید با من جلو برید
ورکشاپ پروژهمحور
دیپلوی پروژه روی VPS با Docker و CI/CD
یک اپلیکیشن Laravel، از اجرای محلی تا Production و انتشار خودکار.
ویدیوهای ورکشاپ و سرفصلهای بالا، در حساب کاربری خودت. هزینه سرور و دامنه جداست.

