sc-convexlisted
Install: claude install-skill rahmanef63/si-coder-agent
# /sc-convex — Convex on Dokploy
Use this skill when the user wants to deploy, debug, or maintain a **self-hosted Convex backend** running on Dokploy. The repo lives at `https://github.com/rahmanef63/si-coder-agent`.
## Pre-requisites
- `DOKPLOY_API_URL`, `DOKPLOY_API_KEY` — Dokploy admin
- `CONVEX_ADMIN_KEY` (or generated on the fly from the running container)
- Optional `HOSTINGER_API_TOKEN` for DNS A-record automation
If anything is missing, route the user to `/sc-onboarding`.
## CORE MANDATES (LEARNED LESSONS)
1. **Self-Hosted Convex by default**: never silently swap to Clerk. ALWAYS use `@convex-dev/auth` for new projects unless the user explicitly asks for Clerk.
2. **`convex/_generated` is checked in**: never run `npx convex codegen` inside `Dockerfile`. Generate locally with `npx convex dev --once` and commit the folder.
3. **Admin Key Sync Rule**: when generating or rotating the admin key, update BOTH the Dokploy Compose env (`CONVEX_ADMIN_KEY`) and the repo's local env file in a single pass. Never leave them out-of-sync.
4. **PEM via REST, not CLI**: `npx convex env set JWT_PRIVATE_KEY "-----BEGIN..."` breaks because `--` is parsed as a flag. Use `scripts/set-auth-env.js` (admin REST `/api/update_environment_variables`) instead.
5. **`NEXT_PUBLIC_CONVEX_URL` at build time**: `NEXT_PUBLIC_*` is inlined at `next build`. If the Dockerfile uses a dummy URL, the deployed JS connects to the wrong server — see `## Dockerfile pattern` below.
6. **No Scrypt/bcrypt passw