selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

borgbackupserver logo

Self-host borgbackupserver

v2.99.7

Web UI for managing encrypted Borg backups across machines

ReleaseOpen SourceOther
Updated9 hours ago
LanguagePHP
Setup difficultyModerate
Stars
389
CPU
2 CPU cores
RAM
2 GB RAM
Storage
50-100 GB system disk + 2-3x total backup data size for local repositories
Ports
80 (HTTP web UI), 22 (SSH for borg agent connections)
Requires
ClickHouse, MariaDB/MySQL
Docker
marcpope/borgbackupserver
Install with Docker Compose
Dashboard showing clients, recovery points, job activity, storage and upcoming backups in light themeDashboard in dark themeSchedules page with weekly backup timeline and day viewMySQL and PostgreSQL plugin settings on a backup planRestore screen with archive file tree and files selected for restorePer-client access and permissions matrix for a userRunning Borg backup job with progress, transfer rate and files processedStorage locations including local, BorgBase and Hetzner with S3 sync

What is borgbackupserver?

Borg Backup Server (BBS) is a self-hosted web application that provides a graphical interface for managing BorgBackup across multiple endpoints. It uses an agent-based architecture where clients poll the server over HTTPS and push backup data over SSH into append-only repositories, eliminating the need for inbound connections to endpoints. The server handles scheduling, retention policies, database plugins (MySQL, PostgreSQL, MongoDB), S3 offsite sync, and file-level restores through a ClickHouse catalog. It supports multi-user access with role-based permissions, TOTP two-factor authentication, and OpenID Connect SSO. The server can be deployed via Docker Compose, bare metal on Ubuntu/Debian, or Unraid. A companion iOS app (BBS Manager) provides push notifications and mobile management. The project is MIT licensed with no paid edition for the server itself.

Should you self-host borgbackupserver?

borgbackupserver scores 52/100 on selfhost.directory (how scoring works) and ranks #28 of 46 in Backup. It has 389 GitHub stars.

It shipped 24 stable releases in the past year. The latest, v2.99.7, came out on 26 October 2026. New versions land roughly every 2 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is Other-licensed and written mostly in PHP.

Its closest alternative on selfhost.directory is Restic (82/100, 36 851 stars). It scores higher overall, so compare the two before you pick. See borgbackupserver vs Restic side by side.

Features

  • Agent-based architecture
  • Append-only SSH repositories
  • Backup templates
  • Database plugins
  • Download archives
  • Encryption at Rest
  • File-level restore
  • Flexible scheduling
  • Multi-user with Role-based Access
  • Real-time progress
  • Remote storage repositories
  • Retention Policies
  • S3 offsite sync
  • Setup Wizard
  • Two-factor authentication (TOTP)

borgbackupserver README

How to install borgbackupserver

Install borgbackupserver with Docker Compose

Environment variables
APP_URL, WEB_PORT, SSH_PORT, ADMIN_PASS, PUID, PGID, MYSQL_PUID, MYSQL_PGID, CH_PUID, CH_PGID, TRUSTED_PROXIES

curl -sO https://raw.githubusercontent.com/marcpope/borgbackupserver/main/docker-compose.yml curl -sO https://raw.githubusercontent.com/marcpope/borgbackupserver/main/.env.example cp .env.example .env

Edit .env with your server's IP or hostname

APP_URL=http://192.168.1.50:8080 WEB_PORT=8080 SSH_PORT=2222 docker compose up -d

Pre-built images on Docker Hub for every release. ARM64 and x86_64 supported.

How to configure borgbackupserver

  • ADMIN_PASSauto-generatedAdmin password — only used on first run. Omit to auto-generate (shown in logs)

    Admin password — only used on first run. Omit to auto-generate (shown in logs)

    values: Any string

  • APP_URLhttp://localhost:8080Public URL used by browsers and agents to reach BBS

    Public URL used by browsers and agents to reach BBS

    values: Any valid URL with hostname/IP and port

  • CH_PGID999Remap ClickHouse GID

    Remap ClickHouse GID

    values: Any valid GID

  • CH_PUID999Remap ClickHouse UID

    Remap ClickHouse UID

    values: Any valid UID

  • MYSQL_PGID100Remap MariaDB GID

    Remap MariaDB GID

    values: Any valid GID

  • MYSQL_PUID100Remap MariaDB UID

    Remap MariaDB UID

    values: Any valid UID

  • PGID33Map the app user (www-data) to your host user's GID

    Map the app user (www-data) to your host user's GID

    values: Any valid GID

  • PUID33Map the app user (www-data) to your host user's UID

    Map the app user (www-data) to your host user's UID

    values: Any valid UID

  • SSH_PORT2222Host port for SSH/borg connections (mapped to container port 22)

    Host port for SSH/borg connections (mapped to container port 22)

    values: Any available host port

  • TRUSTED_PROXIESUse the IP provided by a trusted proxy via the X-Forwarded-For header

    Use the IP provided by a trusted proxy via the X-Forwarded-For header

    values: CIDR notation (e.g., 172.18.0.0/16)

  • WEB_PORT8080Host port for the web UI (mapped to container port 80)

    Host port for the web UI (mapped to container port 80)

    values: Any available host port

borgbackupserver releases & version history

More in Backup Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…