2025-02-28 20:54:38 -05:00
# garage
2025-03-01 20:08:28 -05:00
> An open-source distributed object storage service tailored for selfhosting at a small-to-medium scale.
2025-02-28 20:54:38 -05:00
<!-- metadata -->
* **Category**: Apps
2025-03-01 17:34:54 -05:00
* **Status**: wip
2025-03-01 18:16:42 -05:00
* **Image**: [`garage` ](https://hub.docker.com/r/dxflrs/garage ), 4, upstream
2025-02-28 20:54:38 -05:00
* **Healthcheck**: No
* **Backups**: No
* **Email**: No
* **Tests**: No
* **SSO**: No
<!-- endmetadata -->
## Quick start
2025-03-01 17:32:21 -05:00
* `abra app new garage`
2025-10-23 00:11:52 -04:00
* If you don't already have an RPC secret for your Garage cluster, generate one: `abra app secret generate --all`
* Note: In older versions of abra you must generate the secret locally with `openssl rand -hex 32` then insert the result as described below
* If this Garage node is joining a cluster with an existing RPC secret, insert it: `abra app secret insert <app-domain> rpc_secret v1 <rpc-secret>`
2025-03-01 17:32:21 -05:00
> Note: all nodes must share the same rpc secret, do not lose this value if you plan to cluster garage!
* `abra app config <app-domain>`
* `abra app deploy <app-domain>`
2025-02-28 20:54:38 -05:00
2025-10-23 00:11:52 -04:00
## Configuration
2025-03-01 17:32:21 -05:00
2025-10-23 00:11:52 -04:00
### Allow RPC Connections
* Your ingress controller must be set up to allow connections on port 3901. We assume you're using Traefik
* `abra app configure <traefik-app-name>`
* Uncomment the block that starts with `## Garage`
* Re-deploy Traefik: `abra app undeploy -n <traefik-app-name> && sleep 5 && abra app deploy -n <traefik-app-name>`
### Prepare the Garage Client
2025-03-01 17:32:21 -05:00
Start by creating an alias for the abra run command
```
2025-10-22 16:57:06 -04:00
alias garage="abra app run < app domain > -- app /garage"
2025-03-01 17:32:21 -05:00
```
Run `garage status` to verify everything is working
2025-10-23 00:11:52 -04:00
### Garage Quick Start Guide
Once `garage status` works, you can follow the guide here: https://garagehq.deuxfleurs.fr/documentation/quick-start/#checking -that-garage-runs-correctly
2025-03-01 17:32:21 -05:00
## Backups
2025-10-23 00:11:52 -04:00
> In development, not currently reliable
By default, backups will only capture a snapshot of the metadata directory, which includes bucket names, hashed secrets, and other related information.
By default, the actual data will not be backed up!
If you're running Garage in a cluster, when you restore the metadata, other nodes will send the new node any missing data.
2025-03-01 17:32:21 -05:00
2025-10-23 00:11:52 -04:00
### To enable full data backups
* `abra app config <app domain>`
* Uncomment the block that starts with `## Enable Full Data Backups`
* Re-deploy Garaga: `abra app undeploy -n <app domain> && sleep 5 && abra app deploy -n <app domain>`
2025-03-01 17:32:21 -05:00
For more, see [`garagehq.deuxfleurs.fr` ](https://garagehq.deuxfleurs.fr/documentation/cookbook/real-world/ ).