From 6bf23fc8d38601f69d54b5de1970038bc4f12007 Mon Sep 17 00:00:00 2001 From: hailin Date: Sun, 7 Dec 2025 21:14:30 -0800 Subject: [PATCH] docs(minio): add setup guide documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ๐Ÿค– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../infrastructure/minio/docs/setup-guide.md | 201 ++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 backend/infrastructure/minio/docs/setup-guide.md diff --git a/backend/infrastructure/minio/docs/setup-guide.md b/backend/infrastructure/minio/docs/setup-guide.md new file mode 100644 index 00000000..51ab7114 --- /dev/null +++ b/backend/infrastructure/minio/docs/setup-guide.md @@ -0,0 +1,201 @@ +# MinIO ๅฏน่ฑกๅญ˜ๅ‚จ้…็ฝฎๆŒ‡ๅ— + +## ๆ–‡ไปถ็ป“ๆž„ + +``` +backend/infrastructure/minio/ +โ”œโ”€โ”€ docker-compose.yml # MinIO Docker ้…็ฝฎ +โ”œโ”€โ”€ deploy.sh # ้ƒจ็ฝฒ็ฎก็†่„šๆœฌ +โ”œโ”€โ”€ .env.example # ็Žฏๅขƒๅ˜้‡็คบไพ‹ +โ”œโ”€โ”€ README.md # ไฝฟ็”จๆ–‡ๆกฃ +โ”œโ”€โ”€ docs/ +โ”‚ โ””โ”€โ”€ setup-guide.md # ๆœฌๆ–‡ๆกฃ +โ””โ”€โ”€ nginx/ + โ”œโ”€โ”€ minio.szaiai.com.conf # Nginx ๅๅ‘ไปฃ็†้…็ฝฎ + โ””โ”€โ”€ install.sh # Nginx ้…็ฝฎๅฎ‰่ฃ…่„šๆœฌ +``` + +## ๅŠŸ่ƒฝ็‰นๆ€ง + +### 1. MinIO ๆœๅŠก + +| ็ซฏๅฃ | ็”จ้€” | +|------|------| +| 9000 | S3 API | +| 9001 | Web Console | + +่‡ชๅŠจๅˆๅง‹ๅŒ–้ป˜่ฎคๅญ˜ๅ‚จๆกถ๏ผš +- `avatars` - ็”จๆˆทๅคดๅƒ (ๅ…ฌๅผ€่ฏปๅ–) +- `documents` - ็”จๆˆทๆ–‡ๆกฃ (็งๆœ‰) +- `resources` - ๅบ”็”จ่ต„ๆบ (ๅ…ฌๅผ€่ฏปๅ–) +- `backups` - ๅค‡ไปฝๆ–‡ไปถ (็งๆœ‰) + +### 2. deploy.sh ๅ‘ฝไปค + +| ๅ‘ฝไปค | ่ฏดๆ˜Ž | +|------|------| +| `./deploy.sh up` | ๅฏๅŠจๆœๅŠก | +| `./deploy.sh down` | ๅœๆญขๆœๅŠก | +| `./deploy.sh restart` | ้‡ๅฏๆœๅŠก | +| `./deploy.sh status` | ๆŸฅ็œ‹็Šถๆ€ | +| `./deploy.sh health` | ๅฅๅบทๆฃ€ๆŸฅ | +| `./deploy.sh logs` | ๆŸฅ็œ‹ๆ—ฅๅฟ— | +| `./deploy.sh logs -f` | ๅฎžๆ—ถๆ—ฅๅฟ— | +| `./deploy.sh create-bucket ` | ๅˆ›ๅปบๅญ˜ๅ‚จๆกถ | +| `./deploy.sh list-buckets` | ๅˆ—ๅ‡บๅญ˜ๅ‚จๆกถ | +| `./deploy.sh info` | ๆœๅŠกๅ™จไฟกๆฏ | +| `./deploy.sh backup` | ๅค‡ไปฝ้…็ฝฎ | + +### 3. Nginx ้…็ฝฎ + +็”จไบŽไธŽ Kong ้ƒจ็ฝฒๅœจๅŒไธ€ๆœๅŠกๅ™จ (Server A: 192.168.1.100) + +| ๅŸŸๅ | ็”จ้€” | +|------|------| +| `minio.szaiai.com` | S3 API ็ซฏ็‚น | +| `console.minio.szaiai.com` | ็ฎก็†ๆŽงๅˆถๅฐ | +| `cdn.szaiai.com` | ้™ๆ€่ต„ๆบ CDN (ๅธฆ็ผ“ๅญ˜) | + +## ้ƒจ็ฝฒๆญฅ้ชค + +### ๆญฅ้ชค 1: ้…็ฝฎ็Žฏๅขƒๅ˜้‡ + +```bash +cd backend/infrastructure/minio + +# ๅคๅˆถ็Žฏๅขƒๅ˜้‡ๆจกๆฟ +cp .env.example .env + +# ็ผ–่พ‘้…็ฝฎๆ–‡ไปถ๏ผŒไฟฎๆ”น MINIO_ROOT_PASSWORD +vim .env +``` + +**ๅฟ…้กปไฟฎๆ”น็š„้…็ฝฎ๏ผš** +```env +MINIO_ROOT_PASSWORD=your_secure_password_here +``` + +### ๆญฅ้ชค 2: ๅˆ›ๅปบๆ•ฐๆฎ็›ฎๅฝ• + +```bash +# ๅˆ›ๅปบๆ•ฐๆฎๅญ˜ๅ‚จ็›ฎๅฝ• +sudo mkdir -p /data/minio + +# ่ฎพ็ฝฎๆƒ้™ (MinIO ๅฎนๅ™จไฝฟ็”จ UID 1000) +sudo chown -R 1000:1000 /data/minio +``` + +### ๆญฅ้ชค 3: ๅฏๅŠจๆœๅŠก + +```bash +./deploy.sh up +``` + +### ๆญฅ้ชค 4: ้ชŒ่ฏๆœๅŠก + +```bash +# ๆŸฅ็œ‹่ฟ่กŒ็Šถๆ€ +./deploy.sh status + +# ๅฅๅบทๆฃ€ๆŸฅ +./deploy.sh health + +# ๅˆ—ๅ‡บๅญ˜ๅ‚จๆกถ +./deploy.sh list-buckets +``` + +### ๆญฅ้ชค 5: ๅฎ‰่ฃ… Nginx ้…็ฝฎ (ๅฏ้€‰) + +```bash +cd nginx + +# ๅฎ‰่ฃ… Nginx ้…็ฝฎ +sudo ./install.sh + +# ้…็ฝฎ SSL ่ฏไนฆ +sudo ./install.sh --ssl +``` + +## ็ฝ‘็ปœๆ‹“ๆ‰‘ + +``` +โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” +โ”‚ Server A (192.168.1.100) - Gateway & Storage โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ โ”‚ +โ”‚ Internet โ”‚ +โ”‚ โ”‚ โ”‚ +โ”‚ โ–ผ โ”‚ +โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ +โ”‚ โ”‚ Nginx โ”‚ :80/:443 โ”‚ +โ”‚ โ”‚ (SSL็ปˆๆญข) โ”‚ โ”‚ +โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ +โ”‚ โ”‚ โ”‚ +โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ +โ”‚ โ–ผ โ–ผ โ–ผ โ”‚ +โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ +โ”‚ โ”‚ Kong โ”‚ โ”‚MinIO โ”‚ โ”‚ MinIO โ”‚ โ”‚ +โ”‚ โ”‚:8000 โ”‚ โ”‚:9000 โ”‚ โ”‚ Console โ”‚ โ”‚ +โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚(API) โ”‚ โ”‚ :9001 โ”‚ โ”‚ +โ”‚ โ””โ”€โ”€โ”ฌโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ +โ”‚ โ”‚ โ”‚ +โ”‚ โ–ผ โ”‚ +โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ +โ”‚ โ”‚ /data/minio โ”‚ โ”‚ +โ”‚ โ”‚ (Volume) โ”‚ โ”‚ +โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ +โ”‚ โ”‚ +โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ +``` + +## ๅŽ็ซฏๆœๅŠก้›†ๆˆ + +ๅœจๅŽ็ซฏๆœๅŠก็š„ `.env` ไธญๆทปๅŠ ไปฅไธ‹้…็ฝฎ๏ผš + +```env +# MinIO Configuration +MINIO_ENDPOINT=192.168.1.100 +MINIO_PORT=9000 +MINIO_USE_SSL=false +MINIO_ACCESS_KEY=admin +MINIO_SECRET_KEY=your_minio_password +MINIO_BUCKET_AVATARS=avatars +MINIO_BUCKET_DOCUMENTS=documents +MINIO_PUBLIC_URL=https://cdn.szaiai.com +``` + +## ๅธธ่ง้—ฎ้ข˜ + +### Q: MinIO ๆ— ๆณ•ๅฏๅŠจ๏ผŸ + +```bash +# ๆฃ€ๆŸฅๆ—ฅๅฟ— +./deploy.sh logs + +# ๆฃ€ๆŸฅๆ•ฐๆฎ็›ฎๅฝ•ๆƒ้™ +ls -la /data/minio +sudo chown -R 1000:1000 /data/minio +``` + +### Q: ๆ— ๆณ•่ฟžๆŽฅๅˆฐ MinIO๏ผŸ + +```bash +# ๆฃ€ๆŸฅ็ซฏๅฃๆ˜ฏๅฆ็›‘ๅฌ +netstat -tlnp | grep 9000 + +# ๆฃ€ๆŸฅ้˜ฒ็ซๅข™ +sudo ufw status +sudo ufw allow 9000 +sudo ufw allow 9001 +``` + +### Q: ไธŠไผ ๆ–‡ไปถๅคฑ่ดฅ๏ผŸ + +```bash +# ๆฃ€ๆŸฅ็ฃ็›˜็ฉบ้—ด +df -h /data/minio + +# ๆฃ€ๆŸฅๅญ˜ๅ‚จๆกถๆ˜ฏๅฆๅญ˜ๅœจ +./deploy.sh list-buckets +```