chore: stop tracking storage/, moved out as standalone garage deployment

Garage storage is now managed independently at ../dochub-storage,
decoupled from this repo to avoid confusion with the app stack.
This commit is contained in:
Tianyang 2026-08-01 14:25:18 +08:00
parent 360e9e5a14
commit d2d046802b
4 changed files with 0 additions and 107 deletions

View File

@ -1,36 +0,0 @@
# DocHub Storage (Garage)
S3-compatible object storage for DocHub, deployed independently from the
app stack in `docker-compose.yml` at the repo root, using
[Garage](https://garagehq.deuxfleurs.fr/) — a fully open source (AGPL)
object store purpose-built for self-hosting. `backend/app/garage_client.py`
talks to it over the standard S3 API via `boto3`.
Single-node setup, matching this project's learning/small-team scope
(`replication_factor = 1` in `garage.toml` — no data redundancy across
nodes, since there's only one node).
## First-time setup
```bash
cd storage
docker compose up -d
./init-garage.sh
docker compose exec garage /garage key info dochub-backend
```
The last command prints an access key ID and secret key. Set those as
`GARAGE_ACCESS_KEY` / `GARAGE_SECRET_KEY` for the DocHub backend.
## Connecting the backend
From the repo root, when running `docker compose up` there:
```bash
GARAGE_ENDPOINT=<this-server-ip>:3900 \
GARAGE_ACCESS_KEY=<from init-garage.sh> \
GARAGE_SECRET_KEY=<from init-garage.sh> \
docker compose up -d
```
Garage's S3 API listens on port `3900`.

View File

@ -1,13 +0,0 @@
services:
garage:
image: dxflrs/garage:v1.0.1
network_mode: host
volumes:
- ./garage.toml:/etc/garage.toml:ro
- garage-meta:/var/lib/garage/meta
- garage-data:/var/lib/garage/data
restart: unless-stopped
volumes:
garage-meta:
garage-data:

View File

@ -1,23 +0,0 @@
metadata_dir = "/var/lib/garage/meta"
data_dir = "/var/lib/garage/data"
db_engine = "sqlite"
replication_factor = 1
rpc_bind_addr = "[::]:3901"
rpc_public_addr = "127.0.0.1:3901"
rpc_secret = "62b86336239b3fd482f05e0caed739198a9601917cb1f80a7d8d429775be9e5c"
[s3_api]
s3_region = "garage"
api_bind_addr = "[::]:3900"
root_domain = ".s3.garage.localhost"
[s3_web]
bind_addr = "[::]:3902"
root_domain = ".web.garage.localhost"
index = "index.html"
[admin]
api_bind_addr = "[::]:3903"
admin_token = "fad952cc1c31f6e53b63b24d9dbbae75809906cfa61a933a91545e6130e32a31"

View File

@ -1,35 +0,0 @@
#!/usr/bin/env bash
# One-time Garage initialization: assigns this single node to the cluster
# layout, then creates the DocHub bucket and an access key for the backend.
#
# Run this once after `docker compose up -d` in this directory.
set -euo pipefail
GARAGE="docker compose exec garage /garage"
echo "Waiting for garage to be ready..."
until $GARAGE status >/dev/null 2>&1; do
sleep 1
done
NODE_ID=$($GARAGE status | awk '/NODE ID/{found=1; next} found && NF {print $1; exit}')
if [ -z "$NODE_ID" ]; then
echo "Could not determine node ID from 'garage status' output." >&2
exit 1
fi
echo "Assigning layout to node $NODE_ID (single node, capacity 10G)..."
$GARAGE layout assign -z dochub -c 10G "$NODE_ID"
$GARAGE layout apply --version 1
echo "Creating bucket 'dochub'..."
$GARAGE bucket create dochub
echo "Creating access key 'dochub-backend'..."
$GARAGE key create dochub-backend
$GARAGE bucket allow --read --write --owner dochub --key dochub-backend
echo
echo "Done. Run 'docker compose exec garage /garage key info dochub-backend'"
echo "to retrieve the access key ID and secret key, then set them as"
echo "MINIO_ACCESS_KEY / MINIO_SECRET_KEY for the DocHub backend."