apps.header.allAppsCount
airvault
apps.detail.types.app from Wizier's Repository
apps.detail.sections.overview
Readme
View on GitHubAirVault - Self-hosted, wireless iPhone backups
Quick start
docker compose up -d
Volumes
| Container path | Holds | Put it on |
|---|---|---|
/config |
settings, database, pairing records | app-data storage |
/backups |
the backups | a share with room to grow |
Nothing else needs to persist.
Configuration
| Variable | Default | Purpose |
|---|---|---|
AIRVAULT_PORT |
8080 |
Web UI port |
AIRVAULT_AUTH_TOKEN |
(generated) | Web UI password; when unset, the stored one is printed in the log |
AIRVAULT_LOG_LEVEL |
info |
debug / info / warn / error |
TZ |
Etc/UTC |
Timezone for log timestamps |
PUID / PGID |
(unset — run as root) | Backups and settings are written as this uid:gid (99/100 on Unraid; id shows yours) |
UMASK |
(unset) | Permission mask for files the container creates |
Paths can be overridden with AIRVAULT_CONFIG_DIR, AIRVAULT_BACKUP_DIR and
AIRVAULT_LOCKDOWN_DIR.
Turning PUID on for an install that already ran as root needs a one-time
chown -R <uid>:<gid> of the backups folder; new files are owned correctly
from then on.
Building from source
make build # production binary
make test # Go and Rust tests
make lint # Go, Rust and Svelte static analysis
make check # complete local/CI gate
make dev # live-reload daemon and UI
make docker-build # local container image
Builds need Go, Rust (pinned in rust-toolchain.toml) and Node. The complete
check also needs golangci-lint and cbindgen 0.29.4.
License
GNU General Public License v3.0 or later — see LICENSE.
apps.marketingCta.appInstallTitle
apps.marketingCta.appInstallDescription
apps.detail.sections.categories
apps.detail.sections.related
apps.detail.related.exploreCategories
apps.detail.related.exploreAllapps.detail.sections.links
apps.detail.sections.details
ghcr.io/wizier/airvaultapps.detail.sections.runtime
- apps.detail.details.webui
http://[IP]:[PORT:32298]- apps.detail.details.network
host- apps.detail.details.shell
sh- apps.detail.details.extraParams
--device-cgroup-rule='c 189:* rmw'
apps.detail.sections.configuration
Folder the backups are written to — pick one on the array
- apps.detail.config.target
- /backups
Port used by the AirVault web interface
- apps.detail.config.target
- AIRVAULT_PORT
- apps.detail.config.default
- 32298
- apps.detail.config.value
- 32298
Password for the airvault user; Leave blank to generate one
- apps.detail.config.target
- AIRVAULT_AUTH_TOKEN
Settings, database and iPhone pairing records
- apps.detail.config.target
- /config
- apps.detail.config.default
- /mnt/user/appdata/airvault
- apps.detail.config.value
- /mnt/user/appdata/airvault
Timezone used for log timestamps
- apps.detail.config.target
- TZ
- apps.detail.config.default
- Etc/UTC
- apps.detail.config.value
- Etc/UTC
AirVault log detail: debug, info, warn, or error
- apps.detail.config.target
- AIRVAULT_LOG_LEVEL
- apps.detail.config.default
- info
- apps.detail.config.value
- info
iPhone connection-service log detail: trace, debug, info, warn, or error
- apps.detail.config.target
- AIRVAULT_MUX_LOG_LEVEL
- apps.detail.config.default
- warn
- apps.detail.config.value
- warn
Passes USB-connected iPhones through to the container for pairing
- apps.detail.config.target
- /dev/bus/usb
- apps.detail.config.default
- /dev/bus/usb
- apps.detail.config.value
- /dev/bus/usb
Read-only access to host USB events, allowing AirVault to detect an iPhone connected
- apps.detail.config.target
- /run/udev
- apps.detail.config.default
- /run/udev
- apps.detail.config.value
- /run/udev
Backups and settings are written as this user ID; 99 = nobody
- apps.detail.config.default
- 99
- apps.detail.config.value
- 99
Group ID for written files; 100 = users
- apps.detail.config.default
- 100
- apps.detail.config.value
- 100
Permission mask for newly created files
- apps.detail.config.default
- 022
- apps.detail.config.value
- 022