概要
Backup APIは、Fess の設定データをバックアップ・リストアするためのAPIです。 クロール設定、ユーザー、ロール、辞書などの設定をエクスポート・インポートできます。
ベースURL
/api/admin/backup
エンドポイント一覧
| メソッド | パス | 説明 |
|---|---|---|
| GET | /export | 設定データエクスポート |
| POST | /import | 設定データインポート |
設定データエクスポート
リクエスト
GET /api/admin/backup/export
パラメーター
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
types | String | いいえ | エクスポート対象(カンマ区切り、デフォルト: all) |
エクスポート対象タイプ
| タイプ | 説明 |
|---|---|
webconfig | Webクロール設定 |
fileconfig | ファイルクロール設定 |
dataconfig | データストア設定 |
scheduler | スケジュール設定 |
user | ユーザー設定 |
role | ロール設定 |
group | グループ設定 |
labeltype | ラベルタイプ設定 |
keymatch | キーマッチ設定 |
dict | 辞書データ |
all | 全ての設定(デフォルト) |
レスポンス
バイナリデータ(ZIP形式)
Content-Type: application/zip Content-Disposition: attachment; filename="fess-backup-20250129-100000.zip"
ZIPファイル内容
fess-backup-20250129-100000.zip
├── webconfig.json
├── fileconfig.json
├── dataconfig.json
├── scheduler.json
├── user.json
├── role.json
├── group.json
├── labeltype.json
├── keymatch.json
├── dict/
│ ├── synonym.txt
│ ├── mapping.txt
│ └── protwords.txt
└── metadata.json
設定データインポート
リクエスト
POST /api/admin/backup/import
Content-Type: multipart/form-data
リクエストボディ
--boundary
Content-Disposition: form-data; name="file"; filename="fess-backup.zip"
Content-Type: application/zip
[バイナリデータ]
--boundary
Content-Disposition: form-data; name="overwrite"
true
--boundary--
フィールド説明
| フィールド | 必須 | 説明 |
|---|---|---|
file | はい | バックアップZIPファイル |
overwrite | いいえ | 既存設定を上書き(デフォルト: false) |
types | いいえ | インポート対象(カンマ区切り、デフォルト: all) |
レスポンス
{
"response": {
"status": 0,
"message": "Backup imported successfully",
"imported": {
"webconfig": 5,
"fileconfig": 3,
"dataconfig": 2,
"scheduler": 4,
"user": 10,
"role": 5,
"group": 3,
"labeltype": 8,
"keymatch": 12,
"dict": 3
}
}
}
使用例
全設定のエクスポート
curl -X GET "http://localhost:8080/api/admin/backup/export" \
-H "Authorization: Bearer YOUR_TOKEN" \
-o fess-backup.zip
特定設定のエクスポート
# Webクロール設定とユーザー設定のみエクスポート
curl -X GET "http://localhost:8080/api/admin/backup/export?types=webconfig,user" \
-H "Authorization: Bearer YOUR_TOKEN" \
-o fess-backup-partial.zip
設定のインポート
curl -X POST "http://localhost:8080/api/admin/backup/import" \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "file=@fess-backup.zip" \
-F "overwrite=false"
既存設定を上書きしてインポート
curl -X POST "http://localhost:8080/api/admin/backup/import" \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "file=@fess-backup.zip" \
-F "overwrite=true"
特定設定のみインポート
# ユーザーとロールのみインポート
curl -X POST "http://localhost:8080/api/admin/backup/import" \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "file=@fess-backup.zip" \
-F "types=user,role" \
-F "overwrite=false"
バックアップの自動化
#!/bin/bash
# 毎日午前2時にバックアップを取得するスクリプト例
DATE=$(date +%Y%m%d)
BACKUP_DIR="/backup/fess"
curl -X GET "http://localhost:8080/api/admin/backup/export" \
-H "Authorization: Bearer YOUR_TOKEN" \
-o "${BACKUP_DIR}/fess-backup-${DATE}.zip"
# 30日より古いバックアップを削除
find "${BACKUP_DIR}" -name "fess-backup-*.zip" -mtime +30 -delete
注意事項
バックアップにはパスワード情報も含まれるため、セキュアに保管してください
インポート時に
overwrite=trueを指定すると既存設定が上書きされます大規模な設定の場合、エクスポート/インポートに時間がかかる場合があります
バージョンが異なるFess間でのインポートは互換性の問題が発生する可能性があります
参考情報
Admin API 概要 - Admin API概要
バックアップ - バックアップ管理ガイド
メンテナンス - メンテナンスガイド