feat: person excludes for auto-organize rules, backup & restore system

Add person exclude criteria to Immich auto-organize — assets containing
excluded persons are filtered out after candidate gathering. Also adds
full backup/restore system with export, import, scheduled backups, and
retention management.
This commit is contained in:
2026-04-02 14:13:42 +03:00
parent 6e51164f8e
commit 6b2211353d
13 changed files with 2191 additions and 2 deletions
+65
View File
@@ -16,6 +16,7 @@
"cmdTemplateConfigs": "Cmd Templates",
"users": "Users",
"settings": "Settings",
"backup": "Backup",
"logout": "Logout",
"notification": "Notification",
"commands": "Commands",
@@ -1025,6 +1026,8 @@
"criteria": "Criteria",
"persons": "Persons",
"addPerson": "Add person...",
"excludePersons": "Exclude persons",
"addExcludePerson": "Add person to exclude...",
"searchQuery": "Smart Search Query",
"searchQueryPlaceholder": "e.g. sunset, beach, birthday...",
"assetType": "Asset type",
@@ -1053,5 +1056,67 @@
"triggerManual": "manual",
"triggerDryRun": "dry-run",
"triggerScheduled": "scheduled"
},
"backup": {
"title": "Backup & Restore",
"description": "Export and import your configuration, or set up automatic backups",
"export": "Export Configuration",
"exportDescription": "Download your configuration as a JSON file. Select which categories to include.",
"import": "Import Configuration",
"importDescription": "Upload a previously exported backup file to restore configuration.",
"categories": "Categories",
"selectAll": "Select all",
"deselectAll": "Deselect all",
"catProviders": "Providers",
"catTelegramBots": "Telegram Bots",
"catMatrixBots": "Matrix Bots",
"catEmailBots": "Email Bots",
"catTargets": "Targets",
"catTrackingConfigs": "Tracking Configs",
"catTemplateConfigs": "Template Configs",
"catCommandConfigs": "Command Configs",
"catCommandTemplateConfigs": "Cmd Template Configs",
"catNotificationTrackers": "Notif. Trackers",
"catCommandTrackers": "Cmd Trackers",
"catActions": "Actions",
"catAppSettings": "App Settings",
"secretsMode": "Secrets",
"secretsExclude": "Exclude secrets (safe)",
"secretsMasked": "Mask secrets (for review)",
"secretsInclude": "Include secrets (plaintext)",
"secretsWarningExport": "Warning: The export file will contain sensitive data (API keys, tokens, passwords) in plaintext.",
"exportBtn": "Export",
"exportSuccess": "Configuration exported",
"validateBtn": "Validate",
"validating": "Validating...",
"validationPassed": "Validation passed",
"validationFailed": "Validation failed",
"entities": "Entities",
"conflictMode": "Conflict resolution",
"conflictSkip": "Skip existing (keep current)",
"conflictRename": "Rename duplicates (add suffix)",
"conflictOverwrite": "Overwrite existing (replace)",
"importBtn": "Import",
"importing": "Importing...",
"importSuccess": "Configuration imported",
"importResults": "Import Results",
"resultCreated": "Created",
"resultSkipped": "Skipped",
"resultOverwritten": "Overwritten",
"resultErrors": "Errors",
"confirmExportTitle": "Export with secrets?",
"confirmExportMessage": "The exported file will contain all secrets (API keys, bot tokens, passwords) in plaintext. Only use this for secure transfers or trusted storage.",
"confirmImportTitle": "Import configuration?",
"confirmImportMessage": "This will create new entities in your database. Make sure you have validated the backup file first.",
"scheduled": "Scheduled Backups",
"enableScheduled": "Enable automatic backups",
"interval": "Interval",
"hours": "hours",
"retention": "Keep last",
"scheduleSaved": "Backup schedule saved",
"savedFiles": "Saved Backups",
"noFiles": "No backup files yet.",
"download": "Download",
"fileDeleted": "Backup file deleted"
}
}
+65
View File
@@ -16,6 +16,7 @@
"cmdTemplateConfigs": "Шаблоны команд",
"users": "Пользователи",
"settings": "Настройки",
"backup": "Бэкап",
"logout": "Выход",
"notification": "Уведомления",
"commands": "Команды",
@@ -1025,6 +1026,8 @@
"criteria": "Критерии",
"persons": "Люди",
"addPerson": "Добавить человека...",
"excludePersons": "Исключить людей",
"addExcludePerson": "Добавить человека для исключения...",
"searchQuery": "Умный поиск",
"searchQueryPlaceholder": "напр. закат, пляж, день рождения...",
"assetType": "Тип файла",
@@ -1053,5 +1056,67 @@
"triggerManual": "вручную",
"triggerDryRun": "пробный",
"triggerScheduled": "по расписанию"
},
"backup": {
"title": "Резервное копирование",
"description": "Экспорт и импорт конфигурации, настройка автоматических бэкапов",
"export": "Экспорт конфигурации",
"exportDescription": "Скачать конфигурацию в формате JSON. Выберите категории для включения.",
"import": "Импорт конфигурации",
"importDescription": "Загрузить ранее экспортированный файл бэкапа для восстановления.",
"categories": "Категории",
"selectAll": "Выбрать все",
"deselectAll": "Снять все",
"catProviders": "Провайдеры",
"catTelegramBots": "Telegram боты",
"catMatrixBots": "Matrix боты",
"catEmailBots": "Email боты",
"catTargets": "Цели",
"catTrackingConfigs": "Конфиги отслеживания",
"catTemplateConfigs": "Конфиги шаблонов",
"catCommandConfigs": "Конфиги команд",
"catCommandTemplateConfigs": "Шаблоны команд",
"catNotificationTrackers": "Трекеры уведомлений",
"catCommandTrackers": "Трекеры команд",
"catActions": "Действия",
"catAppSettings": "Настройки приложения",
"secretsMode": "Секреты",
"secretsExclude": "Исключить секреты (безопасно)",
"secretsMasked": "Маскировать секреты (для проверки)",
"secretsInclude": "Включить секреты (открытый текст)",
"secretsWarningExport": "Внимание: файл экспорта будет содержать конфиденциальные данные (API-ключи, токены, пароли) в открытом виде.",
"exportBtn": "Экспорт",
"exportSuccess": "Конфигурация экспортирована",
"validateBtn": "Проверить",
"validating": "Проверка...",
"validationPassed": "Проверка пройдена",
"validationFailed": "Проверка не пройдена",
"entities": "Сущности",
"conflictMode": "Разрешение конфликтов",
"conflictSkip": "Пропустить существующие (оставить текущие)",
"conflictRename": "Переименовать дубликаты (добавить суффикс)",
"conflictOverwrite": "Перезаписать существующие (заменить)",
"importBtn": "Импорт",
"importing": "Импорт...",
"importSuccess": "Конфигурация импортирована",
"importResults": "Результаты импорта",
"resultCreated": "Создано",
"resultSkipped": "Пропущено",
"resultOverwritten": "Перезаписано",
"resultErrors": "Ошибки",
"confirmExportTitle": "Экспорт с секретами?",
"confirmExportMessage": "Экспортированный файл будет содержать все секреты (API-ключи, токены ботов, пароли) в открытом виде. Используйте только для безопасной передачи.",
"confirmImportTitle": "Импортировать конфигурацию?",
"confirmImportMessage": "Это создаст новые сущности в базе данных. Убедитесь, что файл бэкапа прошёл проверку.",
"scheduled": "Автоматические бэкапы",
"enableScheduled": "Включить автоматическое резервное копирование",
"interval": "Интервал",
"hours": "часов",
"retention": "Хранить последних",
"scheduleSaved": "Расписание бэкапов сохранено",
"savedFiles": "Сохранённые бэкапы",
"noFiles": "Файлов бэкапа пока нет.",
"download": "Скачать",
"fileDeleted": "Файл бэкапа удалён"
}
}