BackApp is a Go + React application that lets automatically schedule and inspect backups of remote servers via SSH.
It is a very lightweight server (under 50 MB) that runs locally (or on a dedicated machine) and provides a web interface to manage backup profiles.
⚠️ Warning: Commands, file paths and any variable you enter might not be escaped and will be injected in commands as is. Always check commands and file paths to not contain special characters such as',",\,/and so on.
⚠️ Warning: Any text you enter in the ui will be saved in plaintext. If you enter passwords or secrets, unlike with the github workflows, they will be displayed in the logs in plaintext.
- Add multiple remote servers via SSH using password or key authentication.
- Create storage locations and naming rules for backups.
- Storage locations are the place on your local machine where backups are stored.
- Naming rules define what the folder with the backups will be called.
- Create backup profiles using a flexible template engine or create one from scratch.
- Each profile can have pre- and post-backup commands that run on the remote server before and after the backup.
- You can define file rules to include/exclude specific paths in the backup.
- View detailed logs of each backup run, including success/failure status and output of commands.
- Schedule backups using cron expressions.
- Simple and intuitive web interface built with React and Material-UI.
BackApp supports the following command-line flags:
-port- Port to run the server on (default:8080)-db- SQLite database path (default:/data/app.db)
Examples:
# Run on a different port
./backapp -port=9090
# Use a custom database location
./backapp -db=/custom/path/app.db
# Combine multiple flags
./backapp -port=9090 -db=/custom/path/app.db-
Download the latest release for your platform.
-
Run the binary, then open your browser to
http://localhost:8080. In case 8080 is in use, set a different port with-port=9090.
- Pull the latest image from GitHub Container Registry:
docker pull ghcr.io/dennis960/backapp:latest
- Use the provided
docker-compose.ymlto run BackApp with Docker Compose:docker-compose up -d
- Install Go (1.24+) and Node.js.
- Clone this repository.
- After installing the npm dependencies, build the frontend:
cd web npm install npm run build - A static bundle will be created in
server/static. - Now build the backend:
cd ../server go build -o backapp - Run the server:
./backapp -port=8080
- See docs/template-engine.md for authoring template JSON files used by the Generic Template Wizard.
- Deleting backups
- Incremental backups
- Backup deduplication
- Restoring from backups


