feat: add comprehensive management scripts for CodiMD
Add 9 management scripts to simplify CodiMD operations: - start.sh: Start services with automatic .env setup - stop.sh: Stop all services gracefully - restart.sh: Restart all services - logs.sh: View real-time logs for any service - status.sh: Check service status and resource usage - backup.sh: Backup database, uploads, and environment - restore.sh: Restore from backups with interactive selection - update.sh: Update Docker images with automatic backup - cleanup.sh: Clean unused Docker resources Add SCRIPTS.md with comprehensive usage documentation and examples. Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
This commit is contained in:
193
SCRIPTS.md
Normal file
193
SCRIPTS.md
Normal file
@@ -0,0 +1,193 @@
|
||||
# CodiMD 管理腳本使用說明
|
||||
|
||||
這個目錄包含一系列腳本來簡化 CodiMD 的管理。
|
||||
|
||||
## 🚀 快速開始
|
||||
|
||||
給所有腳本執行權限:
|
||||
|
||||
```bash
|
||||
chmod +x *.sh
|
||||
```
|
||||
|
||||
## 📜 可用腳本
|
||||
|
||||
| 腳本 | 功能 | 說明 |
|
||||
|------|------|------|
|
||||
| `start.sh` | 啟動服務 | 啟動 CodiMD 和資料庫 |
|
||||
| `stop.sh` | 停止服務 | 停止所有服務 |
|
||||
| `restart.sh` | 重啟服務 | 重啟所有服務 |
|
||||
| `logs.sh` | 查看日誌 | 顯示即時日誌 |
|
||||
| `status.sh` | 檢查狀態 | 顯示服務狀態和資源使用 |
|
||||
| `backup.sh` | 備份資料 | 備份資料庫和上傳檔案 |
|
||||
| `restore.sh` | 還原備份 | 從備份還原資料 |
|
||||
| `update.sh` | 更新服務 | 更新 Docker 映像 |
|
||||
| `cleanup.sh` | 清理資源 | 清理未使用的 Docker 資源 |
|
||||
|
||||
## 📖 詳細說明
|
||||
|
||||
### start.sh - 啟動服務
|
||||
|
||||
```bash
|
||||
./start.sh
|
||||
```
|
||||
|
||||
功能:
|
||||
- 檢查 `.env` 是否存在(不存在則複製 `.env.example`)
|
||||
- 啟動所有 Docker 服務
|
||||
- 顯示服務狀態和訪問地址
|
||||
|
||||
### stop.sh - 停止服務
|
||||
|
||||
```bash
|
||||
./stop.sh
|
||||
```
|
||||
|
||||
功能:
|
||||
- 優雅地停止所有服務
|
||||
- 保留資料和容器
|
||||
|
||||
### restart.sh - 重啟服務
|
||||
|
||||
```bash
|
||||
./restart.sh
|
||||
```
|
||||
|
||||
功能:
|
||||
- 重啟所有服務
|
||||
- 等待服務完全啟動
|
||||
- 顯示服務狀態
|
||||
|
||||
### logs.sh - 查看日誌
|
||||
|
||||
```bash
|
||||
# 查看 CodiMD 日誌(預設)
|
||||
./logs.sh
|
||||
|
||||
# 查看資料庫日誌
|
||||
./logs.sh database
|
||||
```
|
||||
|
||||
功能:
|
||||
- 即時顯示服務日誌
|
||||
- 按 `Ctrl+C` 離開
|
||||
|
||||
### status.sh - 檢查狀態
|
||||
|
||||
```bash
|
||||
./status.sh
|
||||
```
|
||||
|
||||
功能:
|
||||
- 顯示容器運行狀態
|
||||
- 顯示最近 20 行日誌
|
||||
- 顯示磁碟空間
|
||||
- 顯示 Docker 資源使用
|
||||
|
||||
### backup.sh - 備份資料
|
||||
|
||||
```bash
|
||||
./backup.sh
|
||||
```
|
||||
|
||||
功能:
|
||||
- 備份 PostgreSQL 資料庫
|
||||
- 備份上傳檔案
|
||||
- 備份環境設定(`.env`)
|
||||
- 自動清理超過 30 天的舊備份
|
||||
|
||||
備份位置:`./backups/`
|
||||
|
||||
### restore.sh - 還原備份
|
||||
|
||||
```bash
|
||||
./restore.sh
|
||||
```
|
||||
|
||||
功能:
|
||||
- 列出可用的備份
|
||||
- 選擇要還原的備份
|
||||
- 可選擇還原資料庫、上傳檔案、環境設定
|
||||
|
||||
### update.sh - 更新服務
|
||||
|
||||
```bash
|
||||
./update.sh
|
||||
```
|
||||
|
||||
功能:
|
||||
- 執行備份
|
||||
- 拉取最新的 Docker 映像
|
||||
- 可選擇立即重啟服務
|
||||
|
||||
### cleanup.sh - 清理資源
|
||||
|
||||
```bash
|
||||
./cleanup.sh
|
||||
```
|
||||
|
||||
功能:
|
||||
- 清理未使用的 Docker 映像
|
||||
- 清理停止的容器
|
||||
- 清理未使用的網路
|
||||
- 清理建置快取
|
||||
|
||||
## 🔧 設置 Crontab 自動備份
|
||||
|
||||
編輯 crontab:
|
||||
|
||||
```bash
|
||||
crontab -e
|
||||
```
|
||||
|
||||
添加以下內容(每天凌晨 2 點備份):
|
||||
|
||||
```cron
|
||||
0 2 * * * cd /path/to/codimd && ./backup.sh >> backups/cron.log 2>&1
|
||||
```
|
||||
|
||||
## 📊 備份範例
|
||||
|
||||
備份檔案命名格式:
|
||||
|
||||
```
|
||||
backups/
|
||||
├── database_20260317_020000.sql # 資料庫備份
|
||||
├── uploads_20260317_020000.tar.gz # 上傳檔案備份
|
||||
├── env_20260317_020000.env # 環境設定備份
|
||||
└── backup_20260317_020000.txt # 備份資訊
|
||||
```
|
||||
|
||||
## 🛠️ 故障排除
|
||||
|
||||
### 腳本無法執行
|
||||
|
||||
```bash
|
||||
chmod +x *.sh
|
||||
```
|
||||
|
||||
### Docker 未運行
|
||||
|
||||
```bash
|
||||
sudo systemctl start docker
|
||||
```
|
||||
|
||||
### 權限問題
|
||||
|
||||
```bash
|
||||
sudo usermod -aG docker $USER
|
||||
# 然後重新登入
|
||||
```
|
||||
|
||||
## 📝 注意事事項
|
||||
|
||||
1. **備份前先測試**:第一次使用建議先手動測試備份和還原
|
||||
2. **定期檢查備份**:確認備份檔案完整且可還原
|
||||
3. **監控磁碟空間**:定期清理舊備份以節省空間
|
||||
4. **保持腳本更新**:更新 CodiMD 時也要檢查腳本是否需要更新
|
||||
|
||||
## 🔗 相關文件
|
||||
|
||||
- [README.md](README.md) - 完整部署指南
|
||||
- [SSL-SETUP.md](SSL-SETUP.md) - SSL 設置指南
|
||||
- [TROUBLESHOOTING.md](TROUBLESHOOTING.md) - 故障排除指南
|
||||
Reference in New Issue
Block a user