refactor(docker): clean up Docker and environment configurations, remove unused proxy settings and files

This commit is contained in:
2026-06-06 21:08:46 +03:30
parent dee1c3ab16
commit ca44e5b0db
12 changed files with 21 additions and 433 deletions

View File

@@ -17,61 +17,12 @@ APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
سپس `APP_URL`، `HTTP_PORT`، `DB_PASSWORD`، `MARIADB_PASSWORD` و `MARIADB_ROOT_PASSWORD` را هم تغییر دهید. مقدار پیش‌فرض `HTTP_PORT=8080` است.
اگر قبلاً بدون `APP_KEY` کانتینرها را بالا آورده‌اید، بعد از پر کردن کلید این‌ها را اجرا کنید:
```bash
docker compose --env-file .env.production exec app php artisan config:clear
docker compose --env-file .env.production restart app queue scheduler
```
برای build کردن imageها:
```bash
docker compose --env-file .env.production build
```
### حالت fallback با VLESS/Xray
کانفیگ VLESS داخل `docker/xray/config.local.json` قرار دارد و این فایل در git ignore شده است. فایل نمونه‌ی بدون اطلاعات اتصال هم در `docker/xray/config.example.json` موجود است. اگر این فایل local را نداشتید، از نمونه کپی بگیرید و مقدارهای اتصال را پر کنید.
برای وقتی که اینترنت مستقیم یا mirrorها درست جواب نمی‌دهند، اول پروکسی را با profile جدا بالا بیاورید:
```bash
docker compose --env-file .env.production --profile proxy up -d vless-proxy
```
پروکسی HTTP روی سیستم میزبان از `127.0.0.1:2080` و SOCKS از `127.0.0.1:2081` در دسترس است. برای build stepهای داخل Dockerfile از این دستور استفاده کنید:
```bash
DOCKER_BUILD_HTTP_PROXY=http://host.docker.internal:2080 \
DOCKER_BUILD_HTTPS_PROXY=http://host.docker.internal:2080 \
docker compose --env-file .env.production build
```
اگر خود pull کردن imageهای Docker مشکل داشت، این پروکسی را در Docker Desktop هم تنظیم کنید:
```text
HTTP proxy: http://127.0.0.1:2080
HTTPS proxy: http://127.0.0.1:2080
```
برای Debian apt، پیش‌فرض روی repository رسمی Debian می‌ماند چون mirror آروان ممکن است با نسخه‌ی base image sync نباشد و dependency conflict بدهد. اگر عمداً خواستید apt را هم به mirror دیگری ببرید، این متغیرها را هنگام build تنظیم کنید:
```bash
DEBIAN_APT_MIRROR=http://mirror.example/debian \
DEBIAN_SECURITY_APT_MIRROR=http://mirror.example/debian-security \
DEBIAN_APT_DISABLE_UPDATES=true \
docker compose --env-file .env.production build
```
برای اینکه درخواست‌های خروجی خود اپلیکیشن هم از پروکسی رد شوند:
```bash
APP_HTTP_PROXY=http://vless-proxy:8080 \
APP_HTTPS_PROXY=http://vless-proxy:8080 \
docker compose --env-file .env.production --profile proxy up -d
```
اول دیتابیس را بالا بیاورید:
```bash
@@ -96,14 +47,10 @@ docker compose --env-file .env.production up -d
http://localhost:8080
```
برای تغییر پورت، مقدار زیر را در `.env.production` عوض کنید و سرویس `nginx` را دوباره بالا بیاورید:
Swagger:
```env
HTTP_PORT=8081
```
```bash
docker compose --env-file .env.production up -d --force-recreate nginx
```text
http://localhost:8080/api/documentation
```
برای دیدن وضعیت سرویس‌ها:
@@ -138,12 +85,11 @@ docker compose --env-file .env.production down -v
## خطای `No application encryption key has been specified`
یعنی `APP_KEY` در `.env.production` خالی است یا بعد از تغییر env، cache قدیمی مانده.
یعنی `APP_KEY` در `.env.production` خالی است.
1. مقدار `APP_KEY` را در `.env.production` تنظیم کنید.
2. cache را پاک و سرویس‌ها را restart کنید:
2. سرویس‌ها را restart کنید:
```bash
docker compose --env-file .env.production exec app php artisan config:clear
docker compose --env-file .env.production restart app queue scheduler
```