refactor(ai): remove crawl4ai service, add backrest config to repo
- Remove crawl4ai service from ai/compose.yaml (will use local MCP instead) - Remove crawl4ai backup volume from core/compose.yaml - Add core/backrest/config.json (infrastructure as code) - Change backrest from volume to bind-mounted config - Update CLAUDE.md and README.md documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
368
core/backrest/config.json
Normal file
368
core/backrest/config.json
Normal file
@@ -0,0 +1,368 @@
|
||||
{
|
||||
"modno": 1,
|
||||
"version": 4,
|
||||
"instance": "falcon",
|
||||
"repos": [
|
||||
{
|
||||
"id": "hidrive-backup",
|
||||
"uri": "/repos",
|
||||
"guid": "df03886ea215b0a3ff9730190d906d7034032bf0f1906ed4ad00f2c4f1748215",
|
||||
"password": "falcon-backup-2025",
|
||||
"prunePolicy": {
|
||||
"schedule": {
|
||||
"cron": "0 2 * * 0"
|
||||
}
|
||||
},
|
||||
"checkPolicy": {
|
||||
"schedule": {
|
||||
"cron": "0 3 * * 0"
|
||||
}
|
||||
},
|
||||
"autoUnlock": true
|
||||
}
|
||||
],
|
||||
"plans": [
|
||||
{
|
||||
"id": "ai-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/ai_postgres_data",
|
||||
"/volumes/ai_webui_data"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 3 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 6,
|
||||
"yearly": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "asciinema-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/asciinema_data"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 11 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 6,
|
||||
"yearly": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "coolify-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/dev_coolify_data"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 0 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 6,
|
||||
"yearly": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "directus-bundle-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/directus_bundle"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 4 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "directus-uploads-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/directus_uploads"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 4 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 6,
|
||||
"yearly": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "filestash-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/filestash_data"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 7 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "gitea-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/dev_gitea_config",
|
||||
"/volumes/dev_gitea_data",
|
||||
"/volumes/dev_gitea_runner_data"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 11 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 6,
|
||||
"yearly": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "jellyfin-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/jelly_config"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 9 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 6,
|
||||
"yearly": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "joplin-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/joplin_data"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 2 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 6,
|
||||
"yearly": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "letsencrypt-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/letsencrypt_data"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 8 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 12,
|
||||
"yearly": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "linkwarden-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/linkwarden_data",
|
||||
"/volumes/linkwarden_meili_data"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 7 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 6
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "mattermost-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/mattermost_config",
|
||||
"/volumes/mattermost_data",
|
||||
"/volumes/mattermost_plugins"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 5 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 6,
|
||||
"yearly": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "n8n-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/n8n_data"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 6 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 6
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "netdata-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/netdata_config"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 10 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "postgres-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/core_postgres_data"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 2 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 6,
|
||||
"yearly": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "redis-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/core_redis_data"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 3 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "scrapy-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/scrapy_code",
|
||||
"/volumes/scrapyd_data"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 6 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "tandoor-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/tandoor_mediafiles",
|
||||
"/volumes/tandoor_staticfiles"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 5 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 6
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "vaultwarden-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/vaultwarden_data"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 8 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 12,
|
||||
"yearly": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -56,7 +56,7 @@ services:
|
||||
volumes:
|
||||
# Backrest application data
|
||||
- backrest_data:/data
|
||||
- backrest_config:/config
|
||||
- ./backrest/config.json:/config/config.json
|
||||
- backrest_cache:/cache
|
||||
- backrest_tmp:/tmp
|
||||
|
||||
@@ -84,7 +84,6 @@ services:
|
||||
- backup_netdata_config:/volumes/netdata_config:ro
|
||||
- backup_ai_postgres_data:/volumes/ai_postgres_data:ro
|
||||
- backup_ai_webui_data:/volumes/ai_webui_data:ro
|
||||
- backup_ai_crawl4ai_data:/volumes/ai_crawl4ai_data:ro
|
||||
- backup_asciinema_data:/volumes/asciinema_data:ro
|
||||
- backup_dev_gitea_data:/volumes/dev_gitea_data:ro
|
||||
- backup_dev_gitea_config:/volumes/dev_gitea_config:ro
|
||||
@@ -124,8 +123,6 @@ volumes:
|
||||
name: ${CORE_COMPOSE_PROJECT_NAME}_redis_data
|
||||
backrest_data:
|
||||
name: ${CORE_COMPOSE_PROJECT_NAME}_backrest_data
|
||||
backrest_config:
|
||||
name: ${CORE_COMPOSE_PROJECT_NAME}_backrest_config
|
||||
backrest_cache:
|
||||
name: ${CORE_COMPOSE_PROJECT_NAME}_backrest_cache
|
||||
backrest_tmp:
|
||||
@@ -192,9 +189,6 @@ volumes:
|
||||
backup_ai_webui_data:
|
||||
name: ai_webui_data
|
||||
external: true
|
||||
backup_ai_crawl4ai_data:
|
||||
name: ai_crawl4ai_data
|
||||
external: true
|
||||
backup_asciinema_data:
|
||||
name: dev_asciinema_data
|
||||
external: true
|
||||
|
||||
Reference in New Issue
Block a user