Initial Backupper Unraid plugin

This commit is contained in:
Mikei386
2026-06-13 22:07:31 +02:00
commit 5352a9da22
39 changed files with 3167 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
# Backupper for Unraid
Backupper is a native Unraid 7 plugin that manages encrypted, deduplicated and versioned backups through Restic. The MVP supports shares, appdata, Docker metadata and data, VM definitions and disks, and the Unraid flash drive. Destinations can be local, SFTP, SMB or NFS.
## Architecture
- `backupperd` is a static Go daemon with a single global task queue and an HTTP API on `/run/backupper/backupper.sock`.
- The Unraid PHP page proxies authenticated WebGUI requests to that Unix socket.
- Persistent configuration and AES-256-GCM encrypted secrets live in `/boot/config/plugins/backupper`.
- Runtime secrets and transient metadata live below `/run/backupper` and are deleted after each operation.
- Restic 0.19.0 is pinned and checksum-verified by the package build.
## Development
Requirements: Go 1.23+, Node.js, `curl`, `bzip2`, `tar`, and `sha256sum`.
```bash
./scripts/check.sh
./packaging/build-package.sh
```
The package is written to `dist/`. Replace `REPLACE_DURING_RELEASE` in the copied PLG manifest with the generated package checksum before publishing a release.
## Unraid installation
Install the generated manifest URL through Unraid's Plugins page:
```text
https://git.casaderoll.de/michael/BackUpper/raw/branch/main/dist/backupper.plg
```
Configuration is retained when uninstalling so repositories remain recoverable.
## Security model
The daemon has no TCP listener. Restic passwords are passed through root-only temporary files, never command-line arguments. Automatic boot unlock protects against accidental disclosure but does not protect against root compromise or theft of the complete flash drive. In-place restores require explicit confirmation and protected system roots are rejected.
## Current scope
The code implements the MVP control plane and adapters. Docker and VM operations require the standard Unraid `docker` and `virsh` commands. Managed SMB/NFS mounts require the corresponding Unraid mount helpers. Hardware and end-to-end compatibility must be validated on supported Unraid 7 releases before a stable publication.