# دلدل (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` توی کامپوز و پیشوند سرویس ساخته می‌شن؛ اگه پروژه رو با نام دیگه‌ای بالا بیاری این نام‌ها عوض می‌شن.) سکرت‌های اختصاصی بک‌اند (JWT، DB و...) توی `backend/.env` می‌مونن و از اونجا با `env_file` به سرویس `backend` پاس داده می‌شن؛ `.env` ریشه فقط برای متغیرهای مشترک کامپوز (پورت‌ها، اطلاعات پستگرس، آدرس عمومی API) استفاده می‌شه.