2.0 KiB
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) استفاده میشه.