دلدل (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 توی کامپوز و پیشوند سرویس ساخته می‌شن؛ اگه پروژه رو با نام دیگه‌ای بالا بیاری این نام‌ها عوض می‌شن.)

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

S
Description
No description provided
Readme 795 KiB
Languages
TypeScript 60.3%
Go 35.8%
CSS 2.3%
JavaScript 0.7%
Java 0.5%
Other 0.4%