مرکزی مواد پر جائیں

Deploy to Production

What You Will Learn

In this lesson, you will deploy your AI Employee from your laptop to a VPS so it runs when you sleep.


James opened his laptop in the morning and found three unanswered WhatsApp messages from the night. His agent had stopped checking leads at 11:47 PM, the exact minute he closed his laptop lid.

He looked at the gateway log. Thirteen lessons of building, customizing, securing. His agent had a personality, skills, plugins, voice, multi-agent routing, and a custom approval gate. But it stopped working every time he closed his laptop lid.

"I want this running when I sleep," he said.

Emma pulled up a Hetzner pricing page. "Five dollars a month. Two vCPUs, four gigs of RAM, forty gigs of SSD." She turned the screen toward him. "Your agent runs on less hardware than your coffee maker."

"How long to set it up?"

"Budget forty-five minutes. Fifteen for the VPS. Fifteen for OpenClaw and onboarding. Fifteen for the paper cuts you will definitely hit." She paused. "After that? Your agent never sleeps."


You are doing exactly what James is doing: taking an agent that works on your laptop and moving it to infrastructure that never sleeps.

Your AI Employee runs on your laptop, which sleeps, loses Wi-Fi, and shuts down for updates. This lesson moves it to a server that runs 24/7. By the end, your agent responds from a datacenter, and you access its Control UI through an encrypted tunnel.

Not Ready to Deploy? Read Along

If you do not want to deploy right now, read through the steps and understand the process. You can deploy later when you are ready. The exercises at the end work either way.

Choose Your Deployment Path

Three paths, same endpoint: an agent that runs when you sleep. Pick by the learner you are right now, not by which sounds most "production."

Your situationPickWhy
New to servers, want the free path with the fewest gotchasManagedPre-installed image, pre-wired Model Studio, no SSH, no firewall
Finished Lesson 2, comfortable with SSH, want to practice the CLI on a server you controlVPS NativeSame wizard as Lesson 2, matches Ch 57/Ch 58 commands exactly
Already run Docker Compose for other services and want OpenClaw to fit that fleetVPS DockerSame isolation model as your existing containers

For beginners and the zero-cost path, pick Managed. Alibaba Cloud's Simple Application Server ships with OpenClaw pre-installed, pre-wired to Model Studio's Singapore region (1 million free tokens per model), and skips every place beginners get stuck: security groups, SSH keys, systemd, Telegram bot tokens. You get the same agent running 24/7 without touching the command line. The free trial costs $0.99/month for the VPS and can cost $0 for the LLM.

Pick VPS Native if you finished Lesson 2 and want the hands-on learning experience of running the same openclaw CLI on a server. It is not harder than Managed in theory, but in practice it has six places beginners get stuck (Alibaba console dropdowns, security groups, public-IP allocation, SSH auth, Model Studio region selection, Telegram bot creation). The upside is that the commands you learn here are the exact commands you will type in Chapter 57 and Chapter 58 when you extend your agent with MCP servers and build TutorClaw.

Pick VPS Docker only if you already run Docker Compose. It works, but it adds docker compose exec openclaw-gateway to every command for the rest of Part 5.

One-Click Managed Server

Alibaba Cloud's Simple Application Server comes with OpenClaw pre-installed. No Docker, no SSH, no manual configuration. Your agent is running 24/7 within minutes.

Pricing: Starting at $0.99/month (promotional). Regular price ~$8/month for a 2 GB instance. With the free token tier (see Step 6), your LLM cost can be $0.

Steps:

  1. Go to the OpenClaw on Alibaba Cloud setup page
  2. Select a Simple Application Server with the OpenClaw image (2 GB+ memory)
  3. Choose your region and subscription duration
  4. Complete payment
  5. In the SAS Console, open your instance and run the firewall configuration command
  6. Set up your API key through Model Studio:
    • Open Model Studio and select the Singapore region from the region dropdown
    • Generate your API key in the Singapore region
    • Select a model from the Singapore region's model list (avoid Qwen Max, it is expensive)
    • Enable the free quota limit option to restrict usage to the 1 million free tokens per model
  7. Access the dashboard URL shown in your instance details

For the complete server setup walkthrough, see the Alibaba Cloud OpenClaw guide.

Select Singapore Region in Model Studio

Every model listed in Model Studio's Singapore region includes 1 million free tokens. If you skip this and use the default region, Alibaba charges for all token usage immediately. Default models like Qwen Max are expensive. With a zero-credit account, Alibaba sends an overdue notice and suspends your account within 24 hours, blocking all Model Studio access.

Enable the free quota limit option to cap usage at the free tier. With this setting, your only cost is the server instance ($0.99-$8/month).

Your OpenClaw gateway is now running in the cloud. The dashboard is your Control UI.

Verify your model. In the Control UI dashboard, confirm that the active model is one of the free-tier models available in the Singapore region. The default model may be different and expensive. In the instance UI, select Model Studio as your provider and pick a model from the Singapore region dropdown.

After provisioning, connect a messaging channel. For WhatsApp integration on the managed server, follow the Alibaba Cloud WhatsApp integration guide. For Telegram or Discord, SSH into your instance and configure the channel using the same flow from Lesson 2.

Send a test message. If the agent responds, you are deployed.

Want the free ECS path instead?

Alibaba also offers a 1-year free trial on ECS (Elastic Compute Service). If you want zero-cost self-managed setup instead of the one-click managed server, switch to the VPS Native tab. Alibaba ECS is fully supported there, with a dedicated provisioning walkthrough.

Access the Control UI

The gateway binds to 127.0.0.1. It is not accessible from the public internet. To reach the Control UI from your laptop, open an SSH tunnel:

ssh -N -L 18789:127.0.0.1:18789 root@YOUR_VPS_IP

Open http://127.0.0.1:18789/ in your browser and paste the gateway token.

If your local gateway is already using port 18789, use a different local port:

ssh -N -L 19000:127.0.0.1:18789 root@YOUR_VPS_IP

Then open http://localhost:19000. If the page loads but shows no data, fix the allowed origins:

# Managed and VPS Native:
openclaw config set gateway.controlUi.allowedOrigins \
'["http://localhost:18789","http://127.0.0.1:18789","http://localhost:19000","http://127.0.0.1:19000"]' \
--strict-json

# VPS Docker:
docker compose exec openclaw-gateway openclaw config set \
gateway.controlUi.allowedOrigins \
'["http://localhost:18789","http://127.0.0.1:18789","http://localhost:19000","http://127.0.0.1:19000"]' \
--strict-json

The Security Model

No reverse proxy. No TLS certificates. No WAF.

ComponentRole
Loopback bindGateway only on 127.0.0.1, nothing external can reach it
SSH tunnelEncrypted point-to-point from your laptop to the VPS
Gateway tokenAuthentication for the Control UI once tunnel is open

The SSH key IS the authentication. The tunnel IS the encryption. The loopback binding IS the access control. For a single-operator deployment, this is the correct security posture.

Production Security Hardening

Before any customer touches your agent, run the security audit:

# Managed and VPS Native:
openclaw security audit

# VPS Docker:
docker compose exec openclaw-gateway openclaw security audit

On a default installation, expect critical findings from groupPolicy set to open and warn findings for credential directory permissions.

DM Access Policies

Lesson 2 used pairing mode to onboard you: your number was auto-approved, and your first self-test worked immediately. For production, you need to make a deliberate choice about who can DM your agent. WhatsApp offers four modes, set via channels.whatsapp.dmPolicy:

ModeBehavior when a stranger DMsUse case
pairingBot replies with a one-time code; operator approves via CLIPersonal use, small team onboarding
allowlistSilently blocked. Only numbers in allowFrom can DM.Production with a known contact list
openAnyone can DM (requires allowFrom: ["*"])Public support or community bots
disabledAll DMs ignored. Group-only bots.Announcement channels, group utilities

Your own linked number is auto-allowed in every mode. That is why your Lesson 2 self-test worked without configuration.

To change modes, the easiest path is the same configure command you learned in Lesson 2:

openclaw configure --section channels

Pick WhatsApp, choose Modify settings, and select the new policy. The allowFrom list accepts E.164 numbers (for example, ["+15551234567", "+442071838750"]).

For production, pick allowlist. It is the only mode that blocks unknown senders without generating pairing codes that expire, hit caps, or require human approval. If you need to add people later, run openclaw configure --section channels again, or if you kept pairing mode for onboarding, use openclaw pairing approve whatsapp <CODE> to add them one at a time.

Open Mode Is an Attack Surface

dmPolicy: "open" combined with tool access is how, in the installer's own words, "a bad prompt tricks the agent into doing unsafe things." Only use open for bots with no tool access, or with a minimal tool profile.

Two Commands to Zero Criticals

# Managed and VPS Native:
openclaw config set groupPolicy allowlist
chmod 700 ~/.openclaw/credentials/

# VPS Docker:
docker compose exec openclaw-gateway openclaw config set groupPolicy allowlist
chmod 700 /root/.openclaw/credentials/

Run the audit again. Zero criticals.

The Hardening Checklist

  1. dmPolicy = allowlist with explicit allowFrom numbers (not pairing or open for production)
  2. groupPolicy = allowlist (not open)
  3. Credentials directory = 700 permissions
  4. Tool profile = messaging or minimal (not coding)
  5. Log redaction enabled: openclaw config set logRedaction tools
  6. Backup verified: openclaw backup creates a portable backup; test the restore
  7. /commands awareness: all OpenClaw slash commands (/think off, /forget, /sessions) are accessible to every approved user with no role gating. Awareness mitigation only: add a note in the system prompt that these commands are operator-only

Cost Analysis

ItemMonthly Cost
Hetzner VPS (CX21)$5
Model provider (paid)$50-100
Telnyx voice (optional)$11
Domain + DNS~$1
Total~$67-117
Managed Server: Near-Zero Cost

If you chose the Alibaba Cloud managed server with the Singapore region free tier, your monthly cost can be as low as $0.99. The 1 million free tokens per model covers learning and light production with no LLM charges.

For heavier usage beyond the free tier, the model provider becomes the dominant cost. The real optimization is not cheaper hardware; it is fewer tokens per interaction. That is why Lesson 4 spent time on workspace file optimization and Lesson 9 covered heartbeat cost management.

Try With AI

Exercise 1: Deploy or Trace

If you have a VPS, follow Steps 1-7 and deploy. If you do not, trace the deployment by reading each step and predicting what goes wrong if you skip it.

For each of the 7 deployment steps, write one sentence
describing what it does and what breaks if you skip it.

What you are learning: Production deployment is sequential. Skipping onboarding (Step 5) leaves a running gateway that never responds. Skipping channel setup (Step 6) means the VPS gateway has no way to receive messages.

Exercise 2: Map the Security Model

Draw a diagram showing: your laptop, the SSH tunnel,
the VPS, and the gateway bound to 127.0.0.1.
Label where authentication happens and where encryption happens.
Why is no TLS certificate needed?

What you are learning: The SSH tunnel replaces three components (reverse proxy, TLS termination, API gateway) with one. The security model is simple because the attack surface is small: SSH key authentication plus loopback binding.

Exercise 3: Calculate Your Costs

Calculate the monthly cost of running your AI Employee
in production. Include: VPS, model provider at your
expected message volume, and any optional services.
Compare this to the cost of a human performing the same tasks.

What you are learning: The infrastructure cost ($0.99-$15/month) is trivial. With the managed server free tier, the model cost can be $0 for light usage. Beyond the free tier, the model provider ($50-100/month) becomes the dominant cost. The economics favor AI Employees when the agent handles enough volume to justify any paid model usage.


What You Should Remember

The Right Deployment

A $5/month VPS (2 vCPU, 4 GB RAM) running a single OpenClaw gateway is the right production deployment for one AI Employee. Not Kubernetes. Not serverless. Not multi-region. One server, one gateway, one agent. If you are new, Alibaba's managed server is the fewest-gotchas free path. If you finished Lesson 2 and want the hands-on experience, the native VPS path uses the exact same openclaw commands you will use in Ch 57 and Ch 58.

SSH Tunnel Security

The gateway binds to 127.0.0.1. The SSH tunnel encrypts traffic from your laptop to the VPS. The SSH key is your authentication. No TLS certificate, no reverse proxy, no API gateway needed. Three components replaced by one.

Cost Reality

Infrastructure ($5/month VPS or $0.99-$8/month managed) is trivial. On the managed server with Singapore region free tokens, the model provider can cost $0 within the 1 million token limit per model. Beyond the free tier, the model provider ($50-100/month at moderate volume) becomes the dominant cost. Workspace optimization (shorter SOUL.md, lighter heartbeats) reduces that dominant cost.

The Pattern Repeats

The VPS setup is Lesson 2 on different hardware. Same wizard, same crash loop, same fixes. Thirteen lessons on your laptop were not just about features; they built the debugging instincts you need when the same problems appear on a server with no one else around.


When Emma came back, James had his phone in one hand and a terminal SSH session in the other. "It is responding from Germany."

"How long?"

"Forty-two minutes. openclaw was not on my PATH until I reopened the shell. Then the CORS thing when I tunneled to port 19000." He paused. "Same debugging pattern as Lesson 2, though. Run openclaw doctor, read the output, fix the config."

Emma nodded. "The CORS paper cut caught me too, first time. I expected it to just work."

She looked at the terminal. Health endpoint returning 200. Gateway uptime climbing. "Your agent runs when you sleep now. That is what separates a demo from a product."

James thought about his old job. The operations team had a saying: production is the thing that works at 3 AM when nobody is watching. His agent was that now.

"The hardest part was not the deployment," he said. "It was realizing that the setup from Lesson 2 repeats almost exactly on the VPS. Same wizard, same config, same crash loop. I already knew the fixes."

"That is the point." Emma closed her laptop. "Thirteen lessons on your laptop were not just about learning features. They were about building the instincts you need when the same problems appear on a server with no one else around to ask."

Flashcards Study Aid