kelola-deploylisted
Install: claude install-skill ongkipro/dotfiles
# Kelola — Production Deploy & Recovery Runbook
Kelola HRIS (repo `kelola`) is a private Next.js web and Hono backend deployment on one VPS. There is no public canonical upstream for this runbook. It was distilled from internal incidents in June-July 2026; incident explanations are historical operational evidence, not permanent platform facts.
At the start of every deploy or recovery, inspect the current `kelola` repository's `.github/workflows/deploy.yml`, `deploy.sh`, `ecosystem.config.cjs`, and package scripts, then compare them with live PM2/nginx state. Current repository configuration and observed host output override this file. Keep point-in-time backup tables, disk figures, credentials, and account data in approved private operational storage, not here.
## Architecture
- Server `irwansyah10@103.93.161.104`, dir `~/kelola`. Nginx in front.
- PM2: `kelola-web` (Next.js :3100), `kelola-backend` (Hono :3101).
The server ALSO runs `simantep` + `tatacuan-bot` — **never `pm2 stop all`**
(they are outside kelola's `ecosystem.config.cjs`, deploy.sh won't restart them).
- Domain: **`https://kelolatim.com`** (old `kelola.simantep.id` 301-redirects — never
use it for health checks). Backend env: `~/kelola/backend/.env` (not in git);
`BETTER_AUTH_URL` must equal the live domain or Google OAuth login breaks.
- Uploads live on a separate volume mounted at `/data`, symlinked from
`backend/uploads` (video uploads are large and grow fast).
## Golden rule: push = deploy