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.
23 lines
848 B
Text
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=
|