# راهنمای استقرار Docker ## شروع سریع ```bash git clone https://github.com/katehonz/barabaDB.git cd barabaDB docker build -t baradb:latest . docker compose up -d docker compose ps docker compose logs -f ``` ## فایل‌ها | فایل | توضیح | |------|--------| | `Dockerfile` | ساخت multi-stage production | | `docker-compose.yml` | پیکربندی توسعه | | `docker-compose.prod.yml` | پیکربندی تولید | | `docker-compose.override.yml` | Override توسعه | | `docker-entrypoint.sh` | اسکریپت entrypoint | | `.dockerignore` | فایل‌های مستثنی از کپی | | `scripts/docker-build.sh` | اسکریپت کمکی ساخت | | `scripts/docker-run.sh` | اسکریپت کمکی اجرا | ## ساخت تصویر ```bash docker build -t baradb:latest . ./scripts/docker-build.sh ``` ## اجرا ### توسعه ```bash docker compose up -d docker compose down docker compose logs -f ``` ### تولید ```bash docker compose -f docker-compose.prod.yml up -d ``` ### دستی ```bash docker run -d \ --name baradb \ -p 9472:9472 \ -p 9470:9470 \ -p 9471:9471 \ -v baradb_data:/data \ baradb:latest ``` ## پورت‌ها | پورت | توضیح | |------|--------| | `9472` | پروتکل باینری | | `9470` | HTTP/REST API | | `9471` | WebSocket | ## متغیرهای محیطی | متغیر | پیش‌فرض | توضیح | |--------|---------|--------| | `BARADB_ADDRESS` | `0.0.0.0` | آدرس اتصال | | `BARADB_PORT` | `9472` | پورت پروتکل باینری | | `BARADB_HTTP_PORT` | `9470` | پورت HTTP | | `BARADB_DATA_DIR` | `/data` | پوشه داده | ## Volumeها | مسیر | توضیح | |------|--------| | `/data` | پوشه اصلی داده | | `/data/server/wal` | Write-ahead log | | `/data/server/sstables` | فایل‌های SSTable | ## چک‌لیست تولید - [ ] ایجاد گواهی‌های TLS - [ ] تنظیم `BARADB_JWT_SECRET` قوی - [ ] پیکربندی قوانین فایروال - [ ] تنظیم پشتیبان‌گیری منظم - [ ] بررسی محدودیت منابع - [ ] تنظیم مانیتورینگ ## TLS در Docker ```bash mkdir -p certs openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout certs/server.key -out certs/server.crt ``` ## پشتیبان‌گیری ```bash docker exec baradb /app/backup backup --data-dir=/data docker exec baradb /app/backup list docker exec baradb /app/backup restore --input=backup_xxx.tar.gz ```