selfapi-v2 / docs /deployment.md
akashyadav758
Harden monitor (gate all routes), swap ChatGPT backend to free-Chatgpt-api, clean repo
5c7f4b5
|
Raw
History Blame Contribute Delete
2.07 kB

Deployment

Hugging Face (this repo == the Space)

  1. Push to main β†’ HF auto-rebuilds:
    git push origin main
    
  2. Set secrets once (Settings β†’ Variables and secrets):
  3. After build β†’ log in to ChatGPT/Gemini/Flow in the monitor UI once.

HF git auth (important)

The origin remote embeds a token: https://<user>:<hf_token>@huggingface.co/spaces/<user>/<space>.

  • The token must belong to the Space owner (akash1313) with repo.write. A token from a different account β†’ pre-receive hook declined: You are not authorized to push.
  • Rotate/replace the token in the URL with: git remote set-url origin https://akash1313:<NEW_TOKEN>@huggingface.co/spaces/akash1313/selfapi-v2
  • Local token files (hf-token, neon-db, api-key) are gitignored β€” never commit them.

Watch the build

curl -s -H "Authorization: Bearer <hf_token>" \
  https://huggingface.co/api/spaces/akash1313/selfapi-v2/runtime
# stage: RUNNING_BUILDING β†’ RUNNING_APP_STARTING β†’ RUNNING   (errors: BUILD_ERROR / RUNTIME_ERROR)

Self-host Docker

echo "API_KEY=$(openssl rand -hex 24)" > .env     # gateway auth (DATABASE_URL not needed)
docker compose up --build -d

Only the chrome service exists β€” it bakes in all 3 servers. Open http://localhost:3001.

Dockerfile build stages (what gets built)

Stage Image Output
monitor-build golang:1.22 /monitor (UI + gateway)
profilesync-build golang:1.22 /profilesync
chatgpt-build golang:1.26 /agent (+ config.json)
gemini-build golang:1.26 /free-gemini-api
final (on akashyadav758/chrome) β€” copies binaries, pip install flow deps, installs Chrome-for-Testing, perms

If you bump a server's go.mod Go version, bump its build-stage image too, or the build pulls a toolchain at build time.