k-life/
├── server.js # API backend (Node.js/Express, port 3042)
├── deploy.sh # Deploy script: git pull + dapp rsync + service restart
├── package.json
├── dapp/ # Static front-end (Nginx root: /home/debian/dapp/)
│ ├── index.html # Landing page
│ ├── app.html # Agent dashboard
│ ├── app-hashkey.html # HashKey variant
│ ├── admin.html # Admin panel
│ ├── proof.html # Proof/verification page
│ └── report.html # Public rescue form → POST /api/rescue/report
├── skill/
│ └── k-life/ # Client scripts and agent skill
│ └── scripts/ # See skill/k-life/scripts/README.md
├── deploy/
│ └── nginx/ # Nginx config (klife.supercharged.works)
└── contracts/ # Solidity contracts
/home/debian/klife-api/deploy.shWhat it does:
git pull origin main --ff-onlynpm install --omit=devrsync -a --delete ./dapp/ /home/debian/dapp/— repo is source of truth for front-endnode --check server.js— syntax gatesystemctl restart klife-api.service— with auto-rollback if service fails/healthcheck
Files in dapp/ are served by Nginx at https://klife.supercharged.works.
Manual uploads to /home/debian/dapp/ will be overwritten on next deploy.
All front-end changes must go through pull requests on this repo.
Backend: https://klife.supercharged.works/api/
Docs: deploy/nginx/README.md and skill/k-life/scripts/README.md