docs/agent-deploy.md. Just send the following sentence to Claude Code, Codex, Cursor, or Gemini CLI:
Deployment process
1
Ask everything up front
The AI assistant asks you the following questions all at once:
- Where to deploy?
- A. This Linux server, using Docker (recommended)
- B. Vercel
- C. Run locally only, for a trial
- DeepSeek API key. If you don’t have one, you can provide only a Gemini key.
- Optional items: Gemini API key, access password
CODE, and a domain (option A only).
2
Deploy
- Docker: Checks Docker and the port, downloads the Compose file, writes
.env.productionwith600permissions, and starts the container. If you provided a domain, it also sets up a reverse proxy and HTTPS. - Vercel: You log in to Vercel and authorize it yourself. The AI assistant guides you through importing the repository and adding environment variables.
- Local: Clones the repository, installs dependencies, builds, and starts the app.
3
Verify
The AI assistant checks the container status and logs, and uses
curl to confirm a 200 response.4
Hand off
The AI assistant tells you:
- The access URL (IP and port, or your domain)
- If you set
CODE, that you need to enter the password on first visit - If you only configured a Gemini key, that you need to switch the provider to Gemini in Settings
- The commands for updating and viewing logs
Rules the AI assistant follows
The guide requires the AI assistant to follow these rules to protect your server and keys:Protect keys
Asks only you for API keys. Never prints them, writes them to logs, or commits them to git.
Ask before acting
Asks for your consent, and backs up the configuration first, before it deletes containers or files, takes or changes a port, installs system software, or modifies an existing Nginx, Caddy, or firewall configuration.
Never kill processes
When a port is in use, tells you which process is using it and lets you decide whether to change the port or handle it yourself.
Stop on failure
When a step fails, reports the key error and its diagnosis instead of retrying blindly.
