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.

arkeep logo

Self-host arkeep

v0.9.1

Self-hosted backup management for Restic and Rclone

BetaOpen SourceApache-2.0
Updated10 hours ago
LanguageGo
Setup difficultyModerate
MobileResponsive
ThemeDark mode
Stars
188
Ports
8080 (HTTP REST API, web GUI, enrollment, health, metrics), 9090 (gRPC for agent communication)
Docker
ghcr.io/arkeep-io/arkeep-server
Install with Docker Compose
Arkeep dashboard on mobile, light themeArkeep dashboard on mobile, dark themePolicy destinations card showing NAS and offsite copyPolicy destinations card in dark themeSnapshot browser showing folders and files of a Postgres snapshotSnapshot browser in dark themeProfile setting to enable two-factor authenticationTwo-factor authentication setting in dark theme

What is arkeep?

Arkeep gives you a central web dashboard to configure and monitor backups across all your servers. It uses Restic for deduplicated, encrypted storage and Rclone for 40+ storage backends including S3-compatible, SFTP, Google Drive, and local disks. A lightweight agent runs on every machine you want to protect, connecting outbound to the server via gRPC with automatic mTLS — no inbound ports needed. Features include Docker volume discovery, database streaming (pg_dump, mysqldump), per-destination retention policies, snapshot browsing and restore, email and webhook notifications (Slack, Discord, n8n, Zapier), Healthchecks.io integration, local accounts with TOTP 2FA, and OIDC single sign-on with providers like Keycloak, Authentik, and Zitadel. The server stores state in SQLite by default or PostgreSQL for larger deployments. Repositories remain plain Restic, readable without Arkeep. Installation options include Docker Compose, standalone binaries for Linux/macOS/Windows, Kubernetes via Helm, and systemd for agents. The project is licensed under Apache-2.0 and actively developed with a roadmap toward inventory and update orchestration.

Should you self-host arkeep?

arkeep scores 47/100 on selfhost.directory (how scoring works) and ranks #7 of 15 in Backup Management. It has 188 GitHub stars.

It shipped 20 stable releases in the past year. The latest, v0.9.1, came out on 27 October 2026. New versions land roughly every 7 days.

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

Its closest alternative on selfhost.directory is fogproject (63/100, 1 690 stars). It scores higher overall, so compare the two before you pick. See arkeep vs fogproject side by side.

Features

  • Audit Log
  • Database streaming backup
  • Docker volume discovery
  • Email notifications
  • Healthchecks.io Integration
  • Kubernetes Helm deployment
  • Local accounts with TOTP 2FA
  • Multi-destination backup policies
  • No vendor lock-in
  • OIDC Single Sign-On
  • Read-only user roles
  • Retention and integrity checks
  • Snapshot browsing and restore
  • Webhook Notifications

arkeep README

How to install arkeep

Install arkeep with Docker Compose

Docker with Docker Compose
Environment variables
ARKEEP_SECRET_KEY, ARKEEP_AGENT_SECRET, ARKEEP_HTTP_PORT, ARKEEP_GRPC_PORT, ARKEEP_BASE_URL, ARKEEP_DB_DRIVER, ARKEEP_DB_DSN, POSTGRES_PASSWORD, ARKEEP_LOG_LEVEL, TZ, ARKEEP_TELEMETRY, ARKEEP_UPDATE_CHECK, ARKEEP_SECURE_COOKIES, ARKEEP_TRUSTED_PROXIES, ARKEEP_METRICS_TOKEN

curl -O https://raw.githubusercontent.com/arkeep-io/arkeep/main/deploy/docker/docker-compose.yml curl -O https://raw.githubusercontent.com/arkeep-io/arkeep/main/deploy/docker/.env.example cp .env.example .env

Edit .env — at minimum set ARKEEP_SECRET_KEY and ARKEEP_AGENT_SECRET

docker compose up -d

Server-only, agent-only, or all-in-one variants available

arkeep releases & version history

FAQ

What happens if the Arkeep server is lost?

Your backups are not affected: they live on the destinations. Restore the server from its own backup, or start fresh and import the existing repositories.

Can several policies write to the same destination?

Yes. They share the destination's restic repository (and so its password), deduplicate against each other, and share the destination's retention settings. Each policy's snapshots are tagged, so retention applies to each policy separately.

Is there a Kubernetes deployment?

Yes, a Helm chart is available. See Install on Kubernetes. For simpler setups, Docker Compose on a single node works too.

SQLite or PostgreSQL?

SQLite is the default and works well for most installations. Switch to PostgreSQL when many agents run jobs at the same time, or to use a managed database. Either way, run a single server instance.

Are hooks safe?

Hooks run on the agent with the agent's privileges; treat hook configuration like SSH access to the machine. Only admins can set them, and the server refuses command substitution, path traversal, and references to internal credential variables.

Does the agent need root?

No. The agent runs as an unprivileged user that can read what it backs up. The exception is Docker volumes: reading /var/lib/docker/volumes usually requires the docker group or root.

Why does the agent connect to the server, and not the other way around?

So agents work behind NAT, firewalls, and dynamic IPs without port forwarding or a VPN. The server never reaches out to agents; each agent keeps a persistent gRPC connection open and receives its jobs through it.

Can I access my backups without Arkeep?

Yes. Every repository is a plain restic repository. Use the restic command line with the repository password at any time. Your data is never locked in.

Why restic under the hood?

Restic is battle-tested, content-addressable, and deduplicates very well. It handles encryption, chunking, and repository integrity natively. Arkeep adds the management layer on top without reinventing the storage engine.

More in Backup Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…