Files
codimd/SCRIPTS.md
Timmy 9ea9eb4b61 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>
2026-03-17 17:41:10 +08:00

3.5 KiB
Raw Permalink Blame History

CodiMD 管理腳本使用說明

這個目錄包含一系列腳本來簡化 CodiMD 的管理。

🚀 快速開始

給所有腳本執行權限:

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 - 啟動服務

./start.sh

功能:

  • 檢查 .env 是否存在(不存在則複製 .env.example
  • 啟動所有 Docker 服務
  • 顯示服務狀態和訪問地址

stop.sh - 停止服務

./stop.sh

功能:

  • 優雅地停止所有服務
  • 保留資料和容器

restart.sh - 重啟服務

./restart.sh

功能:

  • 重啟所有服務
  • 等待服務完全啟動
  • 顯示服務狀態

logs.sh - 查看日誌

# 查看 CodiMD 日誌(預設)
./logs.sh

# 查看資料庫日誌
./logs.sh database

功能:

  • 即時顯示服務日誌
  • Ctrl+C 離開

status.sh - 檢查狀態

./status.sh

功能:

  • 顯示容器運行狀態
  • 顯示最近 20 行日誌
  • 顯示磁碟空間
  • 顯示 Docker 資源使用

backup.sh - 備份資料

./backup.sh

功能:

  • 備份 PostgreSQL 資料庫
  • 備份上傳檔案
  • 備份環境設定(.env
  • 自動清理超過 30 天的舊備份

備份位置:./backups/

restore.sh - 還原備份

./restore.sh

功能:

  • 列出可用的備份
  • 選擇要還原的備份
  • 可選擇還原資料庫、上傳檔案、環境設定

update.sh - 更新服務

./update.sh

功能:

  • 執行備份
  • 拉取最新的 Docker 映像
  • 可選擇立即重啟服務

cleanup.sh - 清理資源

./cleanup.sh

功能:

  • 清理未使用的 Docker 映像
  • 清理停止的容器
  • 清理未使用的網路
  • 清理建置快取

🔧 設置 Crontab 自動備份

編輯 crontab

crontab -e

添加以下內容(每天凌晨 2 點備份):

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        # 備份資訊

🛠️ 故障排除

腳本無法執行

chmod +x *.sh

Docker 未運行

sudo systemctl start docker

權限問題

sudo usermod -aG docker $USER
# 然後重新登入

📝 注意事事項

  1. 備份前先測試:第一次使用建議先手動測試備份和還原
  2. 定期檢查備份:確認備份檔案完整且可還原
  3. 監控磁碟空間:定期清理舊備份以節省空間
  4. 保持腳本更新:更新 CodiMD 時也要檢查腳本是否需要更新

🔗 相關文件