diff --git a/.env.example b/.env.example index 482da21..019831a 100644 --- a/.env.example +++ b/.env.example @@ -4,10 +4,10 @@ DB_PASSWORD=postgres DB_NAME=dating_app DB_PORT=5432 -# پورت‌هایی که روی هاست منتشر می‌شن؛ نگینکس خودت رو به این پورت‌ها proxy_pass کن -APP_PORT=8080 # -> api.brainito.ir -WEB_PORT=3000 # -> brainito.ir -ADMIN_PORT=3001 # -> admin.brainito.ir +# پورت‌های داخلی کانتینرها (nginx خودت با نام کانتینر بهشون proxy_pass می‌ده، نه از این پورت‌ها روی هاست) +APP_PORT=8080 # -> brainito.ir +WEB_PORT=3000 # -> app.brainito.ir +ADMIN_PORT=3001 # -> panel.brainito.ir # آدرس API که موقع build توی باندل کلاینت web/admin جاسازی می‌شه (باید از مرورگر کاربر قابل‌دسترس باشه) -PUBLIC_API_URL=https://api.brainito.ir/api/v1 +PUBLIC_API_URL=https://brainito.ir/api/v1 diff --git a/README.md b/README.md index b08f173..d80b217 100644 --- a/README.md +++ b/README.md @@ -19,13 +19,15 @@ cp .env.example .env # مقادیر رو با دامنه/رمزهای واقع docker compose up -d --build ``` -این کار ۴ کانتینر بالا می‌آره: `postgres`, `backend` (پورت `APP_PORT`), `web` (پورت `WEB_PORT`), `admin` (پورت `ADMIN_PORT`). -کامپوز هیچ وب‌سروری بالا نمی‌آره؛ ریورس‌پروکسی و ساب‌دامین‌ها با nginx خودت روی هاست ست می‌شن، مثلاً: +این کار ۴ کانتینر بالا می‌آره: `postgres`, `backend`, `web`, `admin`. +کامپوز هیچ وب‌سروری بالا نمی‌آره؛ ریورس‌پروکسی و ساب‌دامین‌ها با nginx خودت روی هاست ست می‌شن. چون کانتینر nginx روی همون شبکه‌ی داکری این کامپوز نشسته، می‌تونه مستقیم با نام کانتینر بهشون proxy_pass بده (به‌جای پورت هاست): -| ساب‌دامین | proxy_pass به | +| دامنه | proxy_pass به | |---|---| -| `brainito.ir` | `127.0.0.1:${WEB_PORT}` | -| `admin.brainito.ir` | `127.0.0.1:${ADMIN_PORT}` | -| `api.brainito.ir` | `127.0.0.1:${APP_PORT}` | +| `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) استفاده می‌شه. diff --git a/web/public/sw.js b/web/public/sw.js index 29fe007..cc4820b 100644 --- a/web/public/sw.js +++ b/web/public/sw.js @@ -24,13 +24,14 @@ self.addEventListener("fetch", (event) => { const url = new URL(event.request.url); if (event.request.method !== "GET") return; + if (!url.protocol.startsWith("http")) return; if (url.pathname.startsWith("/api")) return; event.respondWith( fetch(event.request) .then((res) => { const resClone = res.clone(); - caches.open(CACHE_NAME).then((cache) => cache.put(event.request, resClone)); + caches.open(CACHE_NAME).then((cache) => cache.put(event.request, resClone).catch(() => {})); return res; }) .catch(() => caches.match(event.request))