Files
coe-mirror/notes.md
T
Cobra 1bcb3b185c coe-mirror: mirror Nightmare_Eclipse Forgejo repos to pCloud
Standalone Python tool. Hits git.churchofmalware.org public API every
12h (00:00/12:00), downloads any repo HEAD whose SHA hasn't already
been snapshotted to pCloud, with local-staging fallback when the FUSE
mount is unavailable. Matrix notification stub for when the home
server is back.

Devil's-advocate findings folded into the design:
  - shutil.copy2 + size verify + unlink, not os.rename, for FUSE safety
  - no pCloud daemon auto-start (no user unit; DISPLAY=:0 unreliable);
    relies on Persistent timer + pending flush for recovery
  - two-call API path retained because the repo list response does not
    include commit.sha

Audit-driven security fixes:
  - repo names whitelist-validated (^[a-zA-Z0-9._-]+$)
  - urllib.parse.quote on all interpolated URL segments
  - same-file no-op guard in place_into_pcloud
  - existence check moved to main() so cached files don't generate
    spurious notify entries

13 pytest tests passing.
2026-06-11 09:34:55 -04:00

1.2 KiB

coe-mirror notes

  • Created: 2026-06-11. Purpose: autonomous mirroring of Nightmare_Eclipse repos from Church of Malware to local pCloud storage.
  • Source API: Forgejo public REST at git.churchofmalware.org, no auth needed.
  • Owner being mirrored: Nightmare_Eclipse (8 active repos as of creation).
  • Destination: ~/pCloudDrive/Hacking/Nightmare_Eclipse/.
  • Schedule: 00:00 + 12:00 daily, catch-up on boot via Persistent timer + OnBootSec.
  • Design rationale:
    • FUSE-safe placement uses shutil.copy2 + size verify + unlink, not os.rename, to handle pCloud FUSE semantics.
    • pCloud daemon auto-start was rejected — no user unit exists; DISPLAY=:0 spawning is unreliable. Tool relies on Persistent timer + pending-flush for recovery.
    • commit.sha is NOT in the repo-list API response — two-call approach (list, then per-repo branch) is retained.
  • DevTrack: Not created at creation time (oraculo offline, Tailscale last seen 2d ago, carbon roaming off home LAN). Add a coe-mirror project + item retroactively when oraculo returns.
  • Matrix notification: Stub-only at creation time, Matrix server down. Real implementation deferred until home Matrix server is back.