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

> ## Agent Instructions
> FalkorDB is a graph database that speaks the Redis protocol. Queries are issued as OpenCypher through the GRAPH.QUERY and GRAPH.RO_QUERY commands, not over Bolt or a SQL connection.
> FalkorDB implements a subset of OpenCypher with proprietary extensions. Do not assume Neo4j-only syntax or procedures are available — check /cypher/cypher-support and /cypher/known-limitations before using a clause.
> FalkorDB is the successor to RedisGraph, but they are separate products. Do not present RedisGraph commands, versions, or limitations as current FalkorDB behavior.
> Use the official clients listed in /getting-started/clients rather than generic Redis or Neo4j drivers, and prefer the language the user is already working in.
> Configuration parameters are set with GRAPH.CONFIG SET or at startup; cite the exact parameter name from /getting-started/configuration rather than inventing one.
> This site covers four products: FalkorDB (core), FalkorDB Cloud, FalkorDB Enterprise, and the GraphRAG SDK. Name which one an answer applies to, since setup and operations differ.

# Backups and schedules

> Configure backup repositories, run on-demand backups, and create recurring schedules.

## Create a backup repository

1. Open **Backup Repositories**.
2. Select **New Backup Repository**.
3. Enter a repository name.
4. Choose a storage provider.
5. Fill the required provider fields.
6. Add credentials if the repository cannot use ambient credentials such as IAM role or workload identity.
7. Optionally mark the repository as the default repository.
8. Select **Create Repository**.

Supported repository provider types in the UI are:

* `s3`
* `s3-compatible`
* `gcs-s3comp`
* `azureblob`
* `minio`
* `nfs`
* `pvc`
* `cos`
* `obs`
* `oss`
* `ftp`

Credentials are stored as Kubernetes Secrets by the backend repository implementation.

## Create an on-demand backup

1. Open **Deployments**.
2. Open the target deployment.
3. Go to **Backups**.
4. Select **Create Backup**.
5. Choose a backup type allowed by the selected backup policy.
6. Choose a backup policy.
7. Select **Start Backup**.

The UI creates backup names using this pattern:

```text theme={null}
<deployment-name>-manual-<timestamp>
```

The backend checks that the cluster exists, that the cluster is `Running`, that the backup policy exists, and that the requested backup method is supported by the selected policy.

## Create a backup schedule

1. Open the target deployment.
2. Go to **Schedules**.
3. Select **New Schedule**.
4. Enter schedule name, cron frequency, retention, backup policy, and backup method.
5. Select **Create Schedule**.

The schedule dialog defaults to:

| Field          | Default     |
| -------------- | ----------- |
| Cron frequency | `0 3 * * *` |
| Retention      | `30d`       |
| Backup method  | `datafile`  |

The backend validates that the cluster exists, the cluster is `Running`, the cron expression has five fields, the backup policy exists, and the backup method is supported by the policy.

## Supported backup methods

The UI exposes these methods depending on the selected policy:

* `datafile`
* `aof`
* `volume-snapshot`

On-demand backups currently allow `datafile` and `volume-snapshot` in the dialog. Schedules allow `datafile`, `aof`, and `volume-snapshot` when the selected backup policy supports them.

## Validate

```bash theme={null}
kubectl get backuprepos.dataprotection.kubeblocks.io
kubectl get backups.dataprotection.kubeblocks.io -n <namespace>
kubectl get backupschedules.dataprotection.kubeblocks.io -n <namespace>
```

In the Admin UI, review **Backups**, **Schedules**, **Operations**, and **Events**.
