Add one-click backup and restore functionality for system configuration and jobs #527
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements a comprehensive backup and restore feature that allows users to export and import their entire DDNS Updater configuration with a single click from the web interface.
Features Added
UI Components
Backend Implementation
pkg/backup/service.go
): Handles complete data serialization and deserializationGET /api/backup/export
- Downloads backup as timestamped JSON filePOST /api/backup/import
- Uploads and restores from backup fileKey Capabilities
Example Backup Format
Testing
The implementation has been thoroughly tested including:
This provides true "one-click" functionality as requested, enabling users to completely backup and restore their DDNS configuration through the web interface without any command-line interaction.
Fixes #380.
Warning
Firewall rules blocked me from connecting to one or more addresses
I tried to connect to the following addresses, but was blocked by firewall rules:
api.ipify.org
./main
(dns block)api.ipy.ch
./main
(dns block)api.my-ip.io
./main
(dns block)httpbin.org
./main
(dns block)icanhazip.com
./main
(dns block)ident.me
./main
(dns block)ifconfig.me
./main
(dns block)nms.intellitrend.de
./main
(dns block)If you need me to access, download, or install something from one of these locations, you can either:
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.