{"id":31893803,"url":"https://github.com/mlapaglia/borgitory","last_synced_at":"2026-03-08T03:10:09.064Z","repository":{"id":312463146,"uuid":"1047479150","full_name":"mlapaglia/Borgitory","owner":"mlapaglia","description":"Web UI for managing BorgBackup repositories with scheduling, monitoring, and cloud sync","archived":false,"fork":false,"pushed_at":"2025-10-06T11:19:26.000Z","size":3689,"stargazers_count":125,"open_issues_count":10,"forks_count":2,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2025-10-06T11:36:42.225Z","etag":null,"topics":["backups","borgbackup","cloud-sync"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mlapaglia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"mlapaglia"}},"created_at":"2025-08-30T14:12:11.000Z","updated_at":"2025-10-06T10:04:51.000Z","dependencies_parsed_at":"2025-09-21T19:15:07.991Z","dependency_job_id":"1bd3ecb8-a869-45b5-9bc1-9597fd0537b3","html_url":"https://github.com/mlapaglia/Borgitory","commit_stats":null,"previous_names":["mlapaglia/borgitory"],"tags_count":70,"template":false,"template_full_name":null,"purl":"pkg:github/mlapaglia/Borgitory","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlapaglia%2FBorgitory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlapaglia%2FBorgitory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlapaglia%2FBorgitory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlapaglia%2FBorgitory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mlapaglia","download_url":"https://codeload.github.com/mlapaglia/Borgitory/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlapaglia%2FBorgitory/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279014518,"owners_count":26085535,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backups","borgbackup","cloud-sync"],"created_at":"2025-10-13T09:24:10.490Z","updated_at":"2026-02-28T07:11:33.102Z","avatar_url":"https://github.com/mlapaglia.png","language":"Python","readme":"\n# Borgitory\n[![OpenSSF Baseline](https://www.bestpractices.dev/projects/12059/baseline)](https://www.bestpractices.dev/projects/12059)\n[![codecov](https://codecov.io/gh/mlapaglia/Borgitory/graph/badge.svg?token=3XFFTWSKTB)](https://codecov.io/gh/mlapaglia/Borgitory)\n[![build](https://img.shields.io/github/actions/workflow/status/mlapaglia/borgitory/build.yml?logo=github)](https://github.com/mlapaglia/Borgitory/actions/workflows/release.yml)\n[![sponsors](https://img.shields.io/github/sponsors/mlapaglia?logo=githubsponsors)](https://github.com/sponsors/mlapaglia)\n[![docker pulls](https://img.shields.io/docker/pulls/mlapaglia/borgitory?logo=docker\u0026label=pulls)](https://hub.docker.com/r/mlapaglia/borgitory)\n[![pypi downloads](https://img.shields.io/pypi/dm/borgitory?style=flat\u0026logo=pypi\u0026logoColor=%23ffd343\u0026label=downloads\u0026labelColor=%23ffd343\u0026link=https%3A%2F%2Fpypi.org%2Fproject%2Fborgitory%2F)](https://pypi.org/project/borgitory/)\n[![Read the Docs](https://img.shields.io/readthedocs/borgitory?logo=readthedocs)](https://borgitory.com)\n\n[![borgbackup version](https://img.shields.io/badge/dynamic/regex?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmlapaglia%2FBorgitory%2Frefs%2Fheads%2Fmain%2FDockerfile\u0026search=ARG%20BORGBACKUP_VERSION%3D(.%2B)\u0026replace=%241\u0026logo=borgbackup\u0026label=BorgBackup)](https://borgbackup.readthedocs.io/)\n[![rclone version](https://img.shields.io/badge/dynamic/regex?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmlapaglia%2FBorgitory%2Frefs%2Fheads%2Fmain%2FDockerfile\u0026search=ARG%20RCLONE_VERSION%3D(.%2B)\u0026replace=%241\u0026logo=rclone\u0026label=Rclone)](https://rclone.org/)\n[![fuse3 version](https://img.shields.io/badge/dynamic/regex?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmlapaglia%2FBorgitory%2Frefs%2Fheads%2Fmain%2FDockerfile\u0026search=ARG%20FUSE3_VERSION%3D(.%2B)\u0026replace=%241\u0026logo=python\u0026label=pfuse3)](https://github.com/libfuse/libfuse)\n\n\u003cimg alt=\"borgitory logo\" src=\"./assets/logo.png\" width=\"400\"\u003e\n\nBorgitory is a comprehensive web-based management interface for BorgBackup repositories that provides real-time monitoring, automated scheduling, and cloud synchronization capabilities. It offers complete backup lifecycle management including on-demand backups, automated pruning policies, interactive archive browsing with file downloads, and cloud sync to S3-compatible storage via Rclone. The FastAPI powered system features a modern responsive web interface built with HTMX, and Tailwind CSS.\n\n## Quick Start\n\n- full documentation is available at \u003chttps://borgitory.com\u003e\n\n### Prerequisites\n\n- **Docker Installation (Recommended)**: Docker with Docker Compose for containerized deployment\n- **PyPI Installation**: Python 3.14+ for direct installation from PyPI\n\n### Installation\n\n#### Option 1: Docker Installation (Recommended)\n\n1. **Pull and run the Docker image**\n\n   ```bash\n   # Using Docker directly\n   docker run -d \\\n     -p 8000:8000 \\\n     -v ./data:/app/data \\\n     -v /path/to/backup/sources:/backup/sources:ro \\\n     -v /path/to/borg/repos:/repos \\\n     --cap-add SYS_ADMIN \\\n     --device /dev/fuse \\\n     --name borgitory \\\n     mlapaglia/borgitory:latest\n   ```\n\n   **Or using Docker Compose** (create a `docker-compose.yml`):\n\n   ```yaml\n   version: '3.8'\n   services:\n     borgitory:\n       image: mlapaglia/borgitory:latest\n       ports:\n         - \"8000:8000\"\n       volumes:\n         - ./data:/app/data # database and encryption key location\n         - /path/to/backup/sources:/sources:ro\n         - /path/to/any/backup/repos:/repos:ro\n       cap_add:\n         - SYS_ADMIN # optional, needed to mount borg archives and browse them\n       devices:\n         - /dev/fuse # borg uses FUSE to mount archives\n       restart: unless-stopped\n   ```\n\n   ```bash\n   docker-compose up -d\n   ```\n\n2. **Access the web interface**\n   - Open \u003chttp://localhost:8000\u003e in your browser\n   - Create your first admin account on initial setup\n\n\u003cimg width=\"1237\" height=\"729\" alt=\"image\" src=\"https://github.com/user-attachments/assets/078ce596-3ba2-4b6f-ba3f-c2d8b95e02db\" /\u003e\n\n#### Option 2: PyPI Installation\n\nInstall Borgitory directly from PyPI:\n\n```bash\n# Install stable release from PyPI\npip install borgitory\n\n# Start the server\nborgitory serve\n\n# Or run with custom settings\nborgitory serve --host 0.0.0.0 --port 8000\n```\n\n**PyPI Installation Requirements:**\n\n- Python 3.14 or higher\n- BorgBackup installed and available in PATH\n- Rclone (optional, for cloud sync features)\n- FUSE (optional, for browsing archives)\n\n**Windows Requirements:**\n\n- WSL2 (Windows Subsystem for Linux) must be installed and configured\n- Inside WSL2, you need:\n  - BorgBackup installed (`sudo apt install borgbackup` or similar)\n  - Python 3.14+ installed\n  - Rclone installed (optional, for cloud sync features)\n- BorgBackup does not have a native Windows executable, so WSL2 is required for all backup operations\n","funding_links":["https://github.com/sponsors/mlapaglia"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlapaglia%2Fborgitory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmlapaglia%2Fborgitory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlapaglia%2Fborgitory/lists"}