> ## Documentation Index
> Fetch the complete documentation index at: https://snapr.seshuk.im/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> snapr is a self-hosted backup service that schedules, compresses, encrypts, and uploads backups of files and databases, with a web UI and REST API.

snapr is a self-hosted backup service for files and databases. Each job reads from one or more sources, packs the data into an archive (optionally encrypted), and uploads it to one or more storages — all on a cron schedule. The web UI and REST API let you see job status, follow live logs, trigger runs, and download archives.

## Key features

* **Cron-scheduled jobs** — with manual trigger from the UI or API.
* **Multiple sources per job** — local files, PostgreSQL, MySQL, MariaDB, MongoDB, Redis, SQLite, S3, and bunny.net Storage.
* **Multiple storages per job** — local disk, S3-compatible, SFTP, WebDAV, and bunny.net.
* **Compression** — `tar`, `tar.gz`, `tar.zst`, `tar.xz`, and `zip`, with optional splitting of large archives into parts.
* **Encryption** — optional OpenSSL symmetric encryption (AES-256-CBC and similar ciphers).
* **Retention** — keep the last N runs, configured per storage.
* **Notifications** — webhook, Telegram, or email, on success, failure, or both.
* **Hook scripts** — run a shell script before or after a job (`beforeScript` / `afterScript`).
* **Env-var references** — keep secrets out of the config file with `env:` references.
* **One Go binary** — no runtime dependencies; web UI and REST API built in, with an OpenAPI spec at `/api/v1/openapi`.

## Requirements

snapr ships as a single binary with no runtime. You only need extra tools for what you use:

* **Building from source**: Go 1.25+.
* **Database dumps**: the dump tool for each database you back up must be on the `PATH` — `pg_dump` (PostgreSQL), `mysqldump` (MySQL; MariaDB uses `mariadb-dump` when available and falls back to `mysqldump`), `mongodump` (MongoDB), `redis-cli` (Redis), and `sqlite3` (SQLite).

## Where to go next

<Columns cols={2}>
  <Card title="Quick start" icon="rocket" href="/quick-start">
    Install snapr, write a minimal config, and run your first backup.
  </Card>

  <Card title="Docker" icon="docker" href="/deployment/docker">
    Run snapr in a container with docker run or Docker Compose.
  </Card>

  <Card title="Configuration" icon="sliders" href="/configuration/overview">
    The full YAML reference — server, jobs, sources, storages, and more.
  </Card>

  <Card title="Jobs" icon="list" href="/configuration/jobs">
    Schedules, retention, compression, and hook scripts.
  </Card>

  <Card title="Sources" icon="database" href="/configuration/sources/overview">
    Everything snapr can back up, from local files to databases.
  </Card>

  <Card title="Storages" icon="hard-drive" href="/configuration/storages/overview">
    Where your archives go — local, S3, SFTP, WebDAV, and bunny.net.
  </Card>

  <Card title="Notifiers" icon="bell" href="/configuration/notifiers/overview">
    Get notified about job results via webhook, Telegram, or email.
  </Card>

  <Card title="API reference" icon="code" href="/api-reference/overview">
    The JSON HTTP API for scripting and integrations.
  </Card>
</Columns>
