Files
chat_room/README.md
T

2.0 KiB

دلدل (dating-app)

پوشه‌ی مادر پروژه؛ همه‌ی بخش‌ها به‌صورت ریپوی گیت جدا زیر همین پوشه‌ان:

dating-app/
├── backend/   بک‌اند Go (ریپوی گیت جدا)
├── admin/     پنل ادمین Next.js (ریپوی گیت جدا)
├── web/       وب‌اپ Next.js (ریپوی گیت جدا)
├── twa/       پروژه‌ی اندروید TWA (بدون گیت)
├── docker-compose.yml
└── .env.example

اجرا روی سرور

cp .env.example .env   # مقادیر رو با دامنه/رمزهای واقعی پر کن
docker compose up -d --build

این کار ۴ کانتینر بالا می‌آره: postgres, backend, web, admin. کامپوز هیچ وب‌سروری بالا نمی‌آره؛ ریورس‌پروکسی و ساب‌دامین‌ها با nginx خودت روی هاست ست می‌شن. چون کانتینر nginx روی همون شبکه‌ی داکری این کامپوز نشسته، می‌تونه مستقیم با نام کانتینر بهشون proxy_pass بده (به‌جای پورت هاست):

دامنه proxy_pass به
brainito.ir http://dating-app-backend-1:8080
app.brainito.ir http://dating-app-web-1:3000
panel.brainito.ir http://dating-app-admin-1:3000

(نام کانتینرها بر اساس name: dating-app توی کامپوز و پیشوند سرویس ساخته می‌شن؛ اگه پروژه رو با نام دیگه‌ای بالا بیاری این نام‌ها عوض می‌شن.)

سکرت‌های اختصاصی بک‌اند (JWT، DB و...) توی backend/.env می‌مونن و از اونجا با env_file به سرویس backend پاس داده می‌شن؛ .env ریشه فقط برای متغیرهای مشترک کامپوز (پورت‌ها، اطلاعات پستگرس، آدرس عمومی API) استفاده می‌شه.