SkateSpots/scripts/restic.env.example
SkateSpots c01521ea3f feat(backup): scoped weekly archive of the community relay dataset
scripts/archive-relay.mjs snapshots the app's own content off
goskatespots.nostr1.com to gzipped JSONL of the raw signed events, so a
restore can republish them verbatim to any relay. scripts/restore-relay.mjs
re-verifies signatures and publishes to an explicit --to (no default, to
avoid replaying a snapshot onto the live relay). scripts/backup-relay.sh
wraps it and pushes with restic when a repo is configured; a weekly systemd
user timer runs it.

Scoped on purpose: that relay is PUBLIC and carries general traffic (15.7k
kind-0 profiles, 2k kind-30078 app-data from other clients, 408 foreign
NIP-99 listings), so the archive keeps only the app's own kinds/tags plus
contributor profiles, SkateSpots labels, and reports that reference archived
content. ~114 events / 63 KiB.

Not configured yet: offsite (restic.env) and a full restore drill.
2026-09-28 12:41:50 +07:00

23 lines
848 B
Text

# Template for the offsite backup target used by scripts/backup-relay.sh.
# Copy to ~/.config/skatespots/restic.env and fill in — that file is outside the
# repo and must never be committed.
#
# Any restic backend works. Examples:
# Backblaze B2: RESTIC_REPOSITORY=b2:my-bucket:skatespots/relay
# S3 / R2: RESTIC_REPOSITORY=s3:https://<account>.r2.cloudflarestorage.com/<bucket>
# SFTP (host you already run): RESTIC_REPOSITORY=sftp:user@host:/srv/skatespots-backups
#
# One-time init, from this machine:
# set -a; . ~/.config/skatespots/restic.env; set +a
# restic init
#
# Then the weekly timer will keep it in sync (restic backup + forget --prune).
RESTIC_REPOSITORY=
RESTIC_PASSWORD=
# Backend credentials (only the ones your backend needs):
# AWS_ACCESS_KEY_ID=
# AWS_SECRET_ACCESS_KEY=
# B2_ACCOUNT_ID=
# B2_ACCOUNT_KEY=