> ## 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.

# Quick start

> Install snapr, write a minimal config, and run your first backup in a few minutes.

Install snapr, write a minimal config, and run your first backup. For a containerized setup, see [Docker](/deployment/docker).

<Steps>
  <Step title="Install snapr">
    Three ways to get a `snapr` binary on your machine.

    <CodeGroup>
      ```bash GitHub Releases theme={null}
      # Pre-built binaries for Linux and macOS.
      # Pick the right asset for your OS/architecture from the releases page,
      # then extract it into a directory on your PATH.
      curl -L -o snapr.tar.gz \
        https://github.com/maximseshuk/snapr/releases/latest/download/snapr_linux_amd64.tar.gz
      tar -xzf snapr.tar.gz
      sudo mv snapr /usr/local/bin/

      snapr --help
      ```

      ```bash go install theme={null}
      # Requires Go 1.25+. The binary lands in $(go env GOPATH)/bin —
      # make sure that directory is on your PATH.
      go install github.com/maximseshuk/snapr/cmd/snapr@latest

      # Or pin a specific version:
      go install github.com/maximseshuk/snapr/cmd/snapr@v1.0.0
      ```

      ```bash Build from source theme={null}
      # Requires Go 1.25+ and pnpm (used to build the embedded web UI).
      git clone https://github.com/maximseshuk/snapr.git
      cd snapr
      pnpm install
      pnpm run build
      ./bin/snapr --help
      ```
    </CodeGroup>

    Available release archives:

    * `snapr_linux_amd64.tar.gz`
    * `snapr_linux_arm64.tar.gz`
    * `snapr_darwin_amd64.tar.gz`
    * `snapr_darwin_arm64.tar.gz`
  </Step>

  <Step title="Create a minimal config">
    Save the following as `snapr.yaml` in the current directory.

    ```yaml snapr.yaml theme={null}
    server:
      address: '0.0.0.0:8080'
      auth:
        enabled: true
        username: admin
        password: env:SNAPR_ADMIN_PASSWORD

    jobs:
      - name: nightly-files
        schedule: '0 2 * * *'
        compression: tar.gz
        sources:
          - type: local
            path: /var/data
        storages:
          - name: local-disk
            type: local
            path: /var/backups
        retention:
          last: 7
    ```

    This backs up `/var/data` to `/var/backups` every day at 02:00 and keeps the last 7 archives.
  </Step>

  <Step title="Start snapr">
    ```bash theme={null}
    SNAPR_ADMIN_PASSWORD=changeme snapr -config ./snapr.yaml
    ```

    snapr will:

    * start the HTTP server on `:8080`
    * load the config and validate it
    * register the `nightly-files` cron entry
  </Step>

  <Step title="Open the UI">
    Browse to [http://localhost:8080](http://localhost:8080) and log in with `admin` / `changeme`.

    From the dashboard you can:

    * see job state and history
    * trigger a job manually with **Run now**
    * stream live logs
    * download archived backups
  </Step>

  <Step title="Trigger a manual run">
    Click **Run now** on `nightly-files`. The first run also confirms that paths and permissions are correct without waiting until 02:00.
  </Step>
</Steps>

## Where to go next

<Columns cols={2}>
  <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.
  </Card>

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

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