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.

GitHub
shield logo

Self-host shield

v9.0.2

Backup and restore system for pluggable data stores

ReleaseOpen SourceMIT
Updated7 hours ago
LanguageGo
Setup difficultyAdvanced
Stars
402
Ports
8080 (API and web UI), 5444 (Agent communication)
Requires
HashiCorp Vault
Docker
quay.io/shieldproject/shield
Install with Docker Compose
shield screenshot 1

What is shield?

SHIELD is a standalone backup and restore system for operations teams to protect critical infrastructure data. It schedules automatic backups of PostgreSQL, MySQL, Consul, Redis, MongoDB, Cassandra, and etcd, with restore capabilities for disaster recovery. Backups are encrypted and stored in cloud providers including Amazon S3, Microsoft Azure Blobstore, Google Cloud Storage, OpenStack Swift, and WebDAV. The system uses a plugin architecture for backup targets and storage backends. SHIELD deploys via BOSH releases, Docker, or Docker Compose, and requires HashiCorp Vault for secrets. The web UI runs on port 8080 and the agent on port 5444.

Should you self-host shield?

shield scores 50/100 on selfhost.directory (how scoring works) and ranks #5 of 15 in Backup Management. It has 402 GitHub stars.

It shipped 2 stable releases in the past year. The latest, v9.0.2, came out on 11 August 2026. New versions land roughly every 3 months.

Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is MIT-licensed and written mostly in Go.

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

Features

  • Backup & Restore
  • CLI Tool
  • Encrypted backups
  • Filesystem backup
  • Multiple cloud storage backends
  • Multiple database support
  • Plugin Architecture
  • Scheduled Backups
  • Vault Integration
  • Web UI

shield README

How to install shield

Install shield with Docker Compose

HashiCorp Vault
Environment variables
SHIELD_VAULT_ADDRESS, SHIELD_API_BIND, SHIELD_API, SHIELD_AGENT_NAME

version: '3' services: vault: image: hashicorp/vault:1.14 ports: [8200] networks: [internal] environment: VAULT_API_ADDR: http://127.0.0.1:8200 VAULT_LOCAL_CONFIG: >- { "disable_mlock": 1, "backend": { "file": { "path": "/vault/file" } }, "listener": { "tcp": { "address": "0.0.0.0:8200", "tls_disable": 1 }, }, "default_lease_ttl": "168h", "max_lease_ttl": "720h" } cap_add: - IPC_LOCK volumes: - 'vault-data:/vault/file' command: - vault - server - "-config" - "/vault/config/local.json"

core: depends_on: - vault image: 'quay.io/shieldproject/shield:8' ports: ['9009:80'] networks: [internal] command: ['/shield/init/core'] environment: SHIELD_VAULT_ADDRESS: http://vault:8200 SHIELD_API_BIND: core:80 volumes: - 'shield-data:/var/shield' - 'shield-etc:/etc/shield'

agent: depends_on: - core image: 'quay.io/shieldproject/shield:8' ports: [5444] networks: [internal] command: ['/shield/init/agent'] environment: SHIELD_API: 'http://core:80' SHIELD_AGENT_NAME: 'demo-shield-agent' volumes: - 'shield-data:/var/shield' - 'shield-etc:/etc/shield'

networks: internal:

volumes: vault-data: shield-data: shield-etc:

Full stack with Vault, core, and agent

shield releases & version history

More in Backup Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…