---
name: vps-git-workflow
description: "/root/ultron on the VPS is now a real git repo tracking GitHub directly, with its own deploy key"
metadata: 
  node_type: memory
  type: project
  originSessionId: e44a47d2-ef9c-4c03-9995-d56770ba2ff7
---

As of 2026-07-03, `/root/ultron` on the VPS is a proper git repo (`git init` done in-session) tracking
`git@github.com:AhmadKhalidSA/ultron.git` directly — not just an rsync target from the Mac anymore.

- Push auth: dedicated deploy key (write access) at `/root/.ssh/ultron_deploy`, set as the repo's
  `core.sshCommand`. Not Ahmed's personal key — generated specifically for this so no private key
  needed to travel over Telegram.
- Workflow Ahmed wants: he describes a change → edit directly on the VPS → `git commit` → `git push`
  → Railway auto-deploys (he confirmed Railway auto-deploy-on-push is already configured on his end).
- Before wiring this up, found the VPS copy of CLAUDE.md was stale vs GitHub (GitHub had newer docs
  for features already live in code — Phase 0 orchestrator, Phase 3 web enricher, WhatsApp column —
  that never got copied down). Synced it. Worth double-checking CLAUDE.md is current before trusting
  it fully in future sessions, since the Mac/VPS/GitHub docs can drift independently.
- 5 stray untracked leftover files sit in /root/ultron outside the repo (top-level `run-grid.js`,
  `cities.json`, `src/cities.json`, `package-lock.json`, `todo.txt`) — old duplicates, not used by
  anything running, not yet cleaned up (asked Ahmed, awaiting answer).

**Why:** Ahmed wants me to make dashboard/scraper code changes directly from Telegram requests without
a Mac round-trip — this is the plumbing that makes that possible.
**How to apply:** When Ahmed asks for a code change, edit in `/root/ultron`, commit, and push directly —
no need to route through the Mac or ask him to pull/deploy manually. Still confirm before pushing
anything non-trivial per normal risk-communication practice. See [[ultron-credentials]] if that memory
exists, otherwise credentials are all documented in `/root/ultron/CLAUDE.md`.
