Files

34 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

# دلدل (dating-app)
پوشه‌ی مادر پروژه؛ همه‌ی بخش‌ها به‌صورت ریپوی گیت جدا زیر همین پوشه‌ان:
```
dating-app/
├── backend/ بک‌اند Go (ریپوی گیت جدا)
├── admin/ پنل ادمین Next.js (ریپوی گیت جدا)
├── web/ وب‌اپ Next.js (ریپوی گیت جدا)
├── twa/ پروژه‌ی اندروید TWA (بدون گیت)
├── docker-compose.yml
└── .env.example
```
## اجرا روی سرور
```bash
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 استفاده می‌شه.