airvault

airvault

apps.detail.types.app from Wizier's Repository

apps.detail.sections.overview

Self-hosted iPhone backups for your Unraid server. Pair an iPhone once over USB, then back it up over Wi-Fi or USB to a local share. AirVault provides incremental, versioned backups, selectable restore points, optional backup encryption, and a web UI for backup and restore. Authorization: set a Web UI token below or read the generated token from the container log, then sign in

AirVault - 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.installHelp.stepOpen apps.installHelp.stepSearchApp apps.installHelp.stepReview apps.installHelp.stepInstall

apps.detail.sections.categories

apps.detail.sections.related

apps.detail.related.exploreCategories

apps.detail.related.exploreAll

apps.detail.sections.details

apps.detail.details.repository
ghcr.io/wizier/airvault
apps.detail.details.lastUpdated2026-08-11
apps.detail.details.firstSeen2026-08-03

apps.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

Backups directoryPathrw

Folder the backups are written to — pick one on the array

apps.detail.config.target
/backups
Web UI PortVariable

Port used by the AirVault web interface

apps.detail.config.target
AIRVAULT_PORT
apps.detail.config.default
32298
apps.detail.config.value
32298
Web UI TokenVariable

Password for the airvault user; Leave blank to generate one

apps.detail.config.target
AIRVAULT_AUTH_TOKEN
Application DataPathrw

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
TimezoneVariable

Timezone used for log timestamps

apps.detail.config.target
TZ
apps.detail.config.default
Etc/UTC
apps.detail.config.value
Etc/UTC
Application Log LevelVariable

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
Connection Log LevelVariable

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
USB DevicesPathrw

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
USB Hotplug EventsPathro

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
PUIDVariable

Backups and settings are written as this user ID; 99 = nobody

apps.detail.config.default
99
apps.detail.config.value
99
PGIDVariable

Group ID for written files; 100 = users

apps.detail.config.default
100
apps.detail.config.value
100
UMASKVariable

Permission mask for newly created files

apps.detail.config.default
022
apps.detail.config.value
022