- Python 70.9%
- HTML 29.1%
| src/iphone_backup_service | ||
| .gitignore | ||
| index.html | ||
| LICENSE.md | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
iPhone Backup Service
A convenient web wrapper around idevicebackup2 to allow users to backup their iPhone over USB / network and have live feedback through command line streaming.
Installation
You will need stdbuf on your system (usually provided by GNU coreutils package). You will also need to install libimobiledevice on your system, which provides the useful tools to talk to your iPhone (including idevicebackup2).
If you intend to use this tool over the network (default configuration), then follow this guide to install the specific version of libimobiledevice with network support.
Ensure you have uv on your system. Then,
git clone … # Clone the repository
cd iphone-backup-service
uv sync # Install dependencies, use --all-extras flag if you want the development tools as well
Running
To run the tool, you can use the built-in uvicorn webserver:
uv run uvicorn iphone_backup_service.main:app
Use the following environment variables to customize the tool:
BACKUP_ROOT_PATH=/path/to/folderto define the root folder in which backups should be stored.NO_NETWORK_SWITCH=1to useidevicebackup2over USB and not network.HC_ENDPOINT = "https://hc-ping.com/<ping-key>/"to ping a HealthChecks instance on backup finishing/failing. You should create a task in advance in your HealthChecks instance with a slug matching the slug of your device name (displayed at the beginning of the backup task). Relevant doc: https://blog.healthchecks.io/2021/09/new-feature-slug-urls/.
License
The content of this repository is licensed under an MIT license, unless explicitly mentionned otherwise.