Version 2 introduces multi-destination support for devices. Each device can now have multiple transfer rules, allowing you to send different types of files to different locations from a single SD card or USB drive.
- Multiple Transfer Rules per Device: Configure separate destinations for photos, videos, panoramas, etc.
- Advanced Filtering: Filter files by:
- File types (
.jpg,.raw,.mp4, etc.) - Source path patterns (
**/DCIM/**,**/PANO/**) - Filename patterns (
IMG_*,*_PANO_*)
- File types (
- Rule-Specific Settings: Each rule has its own:
- Drop location
- Naming pattern
- Preserve structure setting
- Delete after setting
Camera SD Card with one device profile but three transfer rules:
- RAW Photos →
/mnt/nas/photos/camera/raw(only.dng,.cr2files) - JPEG Photos →
/mnt/nas/photos/camera/jpeg(only.jpgfiles) - Videos →
/mnt/nas/videos/camera(only.mp4,.movfiles)
The migration happens automatically on first launch after upgrading:
- Backup Created: Your existing
devices.yamlis backed up toconfig/backups/devices.yaml.v1.backup.TIMESTAMP - Migration Applied: Each device is converted to v2 format:
- Old device-level settings become a single transfer rule named "Default Transfer" or the device name
- All existing settings are preserved
- Version Tagged: Config files are marked as version 2
devices:
- id: device_123
name: "Camera SD"
drop_location: /mnt/nas/photos
file_types: [.jpg, .raw]
naming_pattern: "{original}"
# ...version: 2
devices:
- id: device_123
name: "Camera SD"
transfer_rules:
- id: rule_abc123
name: "Camera SD" # Uses device name
drop_location: /mnt/nas/photos
file_types: [.jpg, .raw]
source_path_patterns: []
filename_patterns: []
naming_pattern: "{original}"
preserve_structure: true
delete_after: false- Open Devices Page: Navigate to the Devices section
- Edit a Device: Click "Edit" on any device
- Tabbed Interface: You'll see:
- Basic Info tab: Device name, identifiers, auto-ingest settings
- Rule 1, Rule 2, etc. tabs: One tab per transfer rule
- Add Rules: Click "+ Add Transfer Rule" to create additional rules
- Configure Each Rule:
- Give it a descriptive name
- Set the drop location
- Add file types (press Enter after each)
- Optionally add path patterns and filename patterns
- Configure naming and deletion settings
- Delete Rules: Use the "Delete This Rule" button (must keep at least one)
Separate panoramas from regular photos:
- name: "Panoramas"
source_path_patterns: ["**/PANO/**", "**/Panorama/**"]
- name: "Regular Photos"
source_path_patterns: ["**/DCIM/**"]
filename_patterns: ["DJI_*"] # Only drone files starting with DJI_Different destinations by file type:
- name: "RAW Photos"
file_types: [".raw", ".dng", ".cr2"]
drop_location: "/mnt/nas/photos/raw"
- name: "JPEGs"
file_types: [".jpg", ".jpeg"]
drop_location: "/mnt/nas/photos/jpeg"None. This is a breaking change that requires migration. The old v1 format is no longer supported after migration.
However:
- Migration is automatic and safe (creates backups)
- Existing devices continue to work with their settings converted to a single rule
- You can add more rules to migrated devices at any time
If you need to rollback:
-
Stop the service:
sudo systemctl stop media-ingest
-
Restore the backup:
cp config/backups/devices.yaml.v1.backup.TIMESTAMP config/devices.yaml cp config/backups/settings.yaml.v1.backup.TIMESTAMP config/settings.yaml
-
Checkout the previous version of the code
-
Restart the service
- Check
config/devices.example.yamlfor complete examples - Review the logs for migration status
- Open an issue on GitHub if you encounter problems