Research-Stack/4-Infrastructure/storage/garage/garage.qfox-1.toml
Brandon Schneider d9a647cb4d chore(infra): bootstrap racknerd and configure multi-node garage cluster
- Bootstrapped microvm-racknerd node on its live Tailscale IP 100.80.39.40.
- Connected racknerd to the central QFox cluster.
- Assigned racknerd to its own vps zone with 1G capacity.
- Made garage-cluster-init.sh robust and idempotent.
- Updated comments and topology mappings.

Build: 3313 jobs, 0 errors (lake build)
2026-05-31 02:04:32 -05:00

39 lines
1.5 KiB
TOML

# Garage v2.3.0 — node config for qfox-1 (100.88.57.96)
# Primary node: largest disk (1.8 TB NVMe), exposes S3 API on all interfaces.
#
# Cluster topology (all nodes communicate over Tailscale mesh):
# qfox-1 100.88.57.96 this machine — primary S3 endpoint
# 361395-1 100.110.163.82 Debian 13 / Netcup VPS (old cupfox, reinstalled)
# nixos-laptop 100.102.173.61 NixOS / storage node
# microvm-racknerd 100.80.39.40 Debian VM / RackNerd VPS
# dracocomp 100.100.140.27 offline (last seen 2d ago)
metadata_dir = "/var/lib/garage/meta"
data_dir = "/var/lib/garage/data"
# SQLite is fine for <10 nodes; lmdb is faster for larger clusters
db_engine = "sqlite"
replication_factor = 1
consistency_mode = "consistent"
# Shared across all nodes — lives in /etc/garage/cluster-secret (chmod 600)
rpc_secret_file = "/etc/garage/cluster-secret"
# Tailscale IP — nodes find each other via bootstrap_peers, no mDNS needed
rpc_bind_addr = "100.88.57.96:3901"
rpc_public_addr = "100.88.57.96:3901"
# Other nodes join via this peer list (node_id@ip:port filled in after first boot)
# Run: garage node id → paste result here for each node after bootstrap
bootstrap_peers = []
[s3_api]
# Bind all interfaces: devcontainer reaches at localhost:3900,
# other nodes reach at 100.88.57.96:3900 for cross-node ops
api_bind_addr = "0.0.0.0:3900"
s3_region = "garage"
[admin]
api_bind_addr = "127.0.0.1:3903"
# GARAGE_ADMIN_TOKEN set via /etc/garage/garage.env (EnvironmentFile in systemd unit)