diff --git a/README.md b/README.md index 0a77754..7c24c5e 100644 --- a/README.md +++ b/README.md @@ -40,18 +40,28 @@ Traefik (پورت ۵۱۷۳ — تنها نقطه ورود) ## اجرا با Docker (ساده‌ترین راه) +پیش‌نیاز: Docker Desktop. بیلد فرانت‌اند روی هاست انجام می‌شود (کانتینر فقط فایل‌های +`dist/` را سرو می‌کند)، پس اولین بار باید یک‌بار `npm run build` بزنید: + ```bash -cp .env.example .env # مقادیر change-me را عوض کنید — بدون .env استک بالا نمی‌آید -docker compose up --build +cp .env.example .env # مقادیر change-me را عوض کنید — بدون .env استک بالا نمی‌آید +cd frontend && npm install && npm run build && cd .. +docker compose up -d --build ``` -- سایت: http://localhost:5173 (از طریق Traefik) +سایت: http://localhost:5173 — ورود مدیریت: `/admin/login` (کاربر/رمز از `ADMIN_*` در `.env`) + - مستندات API: http://localhost:8001/docs (با `docker-compose.override.yml` محلی) -- کنسول MinIO: http://localhost:9001 — کاربر/رمز از متغیرهای `MINIO_ROOT_*` در compose +- کنسول MinIO: http://localhost:9001 — کاربر/رمز از متغیرهای `MINIO_ROOT_*` در `.env` - دیتابیس PostgreSQL و آبجکت‌استور MinIO هر دو در کانتینر جدا با volume دائمی - بک‌اند هنگام شروع، خودش جداول را می‌سازد و **فقط جدول‌های خالی** را seed می‌کند — ارتقای نسخه داده‌های فعلی را از بین نمی‌برد -- در اولین اجرا، سرویس `minio-setup` باکت `aramesh-media` را می‌سازد و خواندن عمومی را فعال می‌کند +- در اولین اجرا، سرویس `minio-setup` باکت `aramesh-media` را می‌سازد، خواندن عمومی را + فعال می‌کند و تصاویر داخل `seed-media/` را در باکت می‌ریزد — پس یک کلون تازه هم + همان تصاویر سایت را دارد + +> نکته برای تازه‌واردها: هیچ فایل رمزدار در گیت نیست. فقط `.env.example` را کپی کنید؛ +> فایل‌های `.env`/`env` در `.gitignore` هستند و هرگز commit نشوند. ## انتشار واقعی (TLS)