ChatGPT dots + xCloud

Run Docker apps with ChatGPT dots on xCloud

Running Docker apps with a ChatGPT dot means asking your always-on OpenAI agent to scan a Compose repository, deploy it to a Docker server on xCloud after your approval and keep an eye on its backups, without you opening the dashboard.

  • Skill: xcloud:deploy
  • Toolsets: sites, servers
  • Free with every xCloud account

YouScan github.com/example/api and tell me which port xCloud would use. Then dry-run it on the Frankfurt Docker server.

git_compose-scanread-only

AgentThe Compose file has api and redis. Only api publishes a port, 3000, so xCloud would proxy to 3000. Sending the dry run to Frankfurt.

servers_sites_git_dockerdry run

AgentThe dry run on Frankfurt resolved docker-compose.yml, port 3000 and no warnings. Create the site?

YouYes, create it.

servers_sites_git_dockerneeds approval

sites_statusread-only

AgentI polled the status: queued, then deployed. Port 3000 answers 200 and the certificate is issued. The dashboard link is below.

. Keep a human in the loop: xCloud stops and asks before anything that creates, deploys, updates, reboots, deletes or buys.

Setup

How Do You Set Up ChatGPT dots to Run Docker apps on xCloud?

Connect ChatGPT dots once; every job on this account uses the same connection. Then ask in plain words.

  1. Create the xCloud MCP plugin in ChatGPT

    Plugins are shared across your dot, ChatGPT, ChatGPT Work and Codex, so you set xCloud up once. In ChatGPT on the web, turn on Developer mode under Settings, Security and login, open the Plugins page, select the plus button and create an app named xcloud with this MCP server URL and OAuth as the authentication. Sign in with xCloud, tick the teams and choose Read-only or Full access. Then open your personal Plugins page, open xcloud and select the plus button to install it; until it is installed, your dot cannot see it. If ChatGPT already has the xcloud plugin installed, skip this step. That path is for a personal account. In a Business, Enterprise or Edu workspace the controls sit under Apps instead. On Business only an admin or owner can use Developer mode: they turn it on while creating the app from Workspace settings, Apps, Create, and publish it from Workspace settings, Apps. On Enterprise and Edu an admin or owner can also toggle Developer mode under Settings, Apps, Advanced settings, and a member granted developer access under Permissions and Roles turns it on there too and can create and test the app from their own Settings, Apps, Create, but only an admin or owner can publish it. An ordinary member cannot do this, so ask an admin to publish the xcloud app; then open Settings, Plugins, select xcloud, install it if offered and choose Connect, sign in to xCloud and pick the teams and access level, and only then start at the next step.

    URL
    https://app.xcloud.host/mcp
  2. Check the plugin is connected for your dot

    Open your dot's profile, then Customize and Plugins, and make sure xcloud is connected. The screen uses the shared ChatGPT plugin settings, so a plugin connected in ChatGPT appears here too. Then give your dot a first task that names xCloud.

    Prompt
    Using xcloud, who am I on xCloud, and which servers and sites do I have?
  3. Add a custom rule for hosting changes

    Under Customize, Custom rules, describe the action and choose Ask before taking action. Pre-approved means you asked for the action in your prompt. xCloud stops for confirmation on its own before it creates, deploys, updates, reboots or deletes anything, but a rule keeps the approval visible in your conversation and stops a scheduled task from proposing changes you did not ask for.

    Prompt
    Ask before taking action: anything that creates, deploys, updates, reboots or deletes a server or site on xCloud.
  4. Check it worked

    Then ask ChatGPT dots for the job itself, for example:

    Prompt
    Scan the docker-compose.yml in github.com/example/api, tell me which services and ports xCloud would use, then run a dry run on my Frankfurt Docker server. Wait for my yes before you create the site.

In practice

How Does Docker apps Work from ChatGPT dots?

A Docker deploy has more moving parts than a Node build, which suits an agent that can hold a task for a while. Give your dot the repository and the Docker server, and it calls git_detect and then git_compose-scan through the xcloud plugin. The scan returns the services and the host ports the Compose file publishes, so the dot can tell you which port xCloud would proxy to before it asks for anything, and it never guesses that port. If the file publishes no port, binds port 80 or 443 or pulls from a private registry, the dot says so in the conversation and describes the rewrite. The change itself goes into the repository, which is yours to push.

A dot earns its place after the deploy. The dry run goes through servers_sites_git_docker and the yes happens in the conversation. The dot then polls sites_status, reads failed_steps and fetches the URL, and it reports a 502 as what it usually is, a Compose file with no published port. Because it keeps working between conversations, you can also leave it a standing job: every night at 2, read the backup settings of every Docker app and tell me which ones have no schedule. Reads such as sites_docker_backupSettings need no approval, and sites_docker_backup is a routine action that xCloud runs without a prompt. Say in your instruction whether the dot may start one, because your Custom rules decide whether it takes that action or asks first.

Docker apps are also where the limits are plainest. Restoring a backup replaces the app's data and stays a dashboard step: Site, Site Backup, Previous Backups, Restore Backup. A dot can read your backups and label them with a note, but it cannot restore one. WordPress never runs as a Docker app on xCloud, so if that is what you want, ask the dot for an Nginx or OpenLiteSpeed server instead. And because the dot works from OpenAI's cloud, an image that lives only in a private registry cannot be pulled, so the answer is to build it from source in the Compose file.

ChatGPT dots specific: Write actions decide whether this works at all. OpenAI's help center says full MCP support with write actions is in beta on Business, Enterprise and Edu workspaces, and Pro accounts connect MCP apps with read and fetch permissions only. On Pro your dot can scan a Compose file and report on your Docker apps, but not deploy one. A scheduled backup also stops the app for a moment while it captures, so pick a quiet hour and tell the dot that a stopped app during a backup is expected and not an outage to report.

What xCloud does for docker apps

xCloud reads the repository, scans the Compose file for services and ports before anything is created, previews the site with a dry run and deploys it behind its own nginx once you approve. Docker sites can be backed up on demand and on a schedule, and a failed deploy is diagnosed and retried on the same site.

  1. Pick a Docker server. The agent uses the server you name, or lists your servers and asks. A Docker deploy needs a Docker server; any other stack answers with an incompatible_server refusal, and an agentic server never takes a second site. WordPress is not supported on Docker servers.
  2. Detect the repository. git_detect reads the repository root for a Dockerfile or one of the four Compose file names, and checks access and server compatibility. It creates nothing, and an access problem is never worked around by naming an app type by hand.
  3. Scan the Compose file. git_compose-scan runs before the dry run. It lists the services and the host ports the file publishes, resolves which Compose file name it found, and suggests a primary port. The agent never guesses the port.
  4. Dry run, then one approval. The agent sends the Docker create request with dry_run set to true and shows the resolved configuration: compose file, port, address and warnings. It asks once, naming the server and the URL, before sending the same body with confirm set to true and an idempotency key.
  5. Poll and verify. A 202 means queued, not running. The agent polls the site status until it is terminal, reads failed_steps and the SSL block, and fetches the URL before it calls the app live. A 502 here usually means the Compose file publishes no port.
  6. Back up and recover. The agent can take a Docker backup, read the backup list and settings, and add a note to a backup. If a deploy fails it reads the diagnosis, proposes a fix from the correctable fields and retries on the same site after your approval. Restoring a backup is a dashboard step.

Reference

Docker apps Settings and Limits on xCloud

The facts ChatGPT dots works within when it runs Docker apps. Where a row names the dashboard, that step stays yours to take there.

Setting or limitWhat applies
Supported inputsA Dockerfile for a single container, or a Compose file for one or more services, on a Docker server. Go, Python, Rust and Java apps all deploy this way
Server stackDocker servers only. The Docker deploy on any other stack, including an agentic server, answers 422 with the code incompatible_server
Which Compose file runsdocker-compose.yml at the repository root. A file named compose.yaml, compose.yml or docker-compose.yaml, or one in a subdirectory, deploys through the pinned Docker create with docker.compose_file set to the path the scan resolved
Public portxCloud's nginx owns ports 80 and 443 and proxies to one host port of 1024 or higher on 127.0.0.1. xCloud runs your Compose file as-is and never rewrites its ports mapping
Port refusalsA port another site already holds is refused as port_unavailable. A port the file does not publish is refused as port_not_published, with the published ports listed
No published portA Compose file that publishes no port is accepted and then answers 502, so the scan is the step that catches it
Private registriesThe deploy runs docker compose pull and never docker login, so an image from a private registry cannot be pulled. Build the image from source instead
Environment and redeploysSend environment values through env_file_content. A redeploy runs git reset --hard and git clean -df in the site directory, so uncommitted server-side changes are lost
What a Docker backup holdsNamed volumes, eligible bind mounts, the Compose file and the app's .env, in an encrypted snapshot. The app is stopped while the backup captures and restarted afterwards
Backup toolsTake a backup, list backups, read the count and the settings, change the settings, add a note and delete a backup. Remote copies go to a storage provider you add in the dashboard
RestoresA restore replaces the app's data in place, so it stays a dashboard step: Site, Site Backup, Previous Backups, Restore Backup
Dot-prefixed pathsA 403 on a path that starts with a dot is the dot-path allowlist. It is fixed with docker.allowed_dot_paths in the deploy settings, without a rebuild

Rules ChatGPT dots has to follow

  • The Compose file is scanned before the dry run, and the port always comes from the scan, never from a guess.
  • A file that binds ports 80 or 443, publishes no port or pulls from a private registry is not deployed as-is. The agent shows the rewrite, such as publishing 127.0.0.1:<high port>:<app port> and building the image from source, and the change goes into your repository.
  • Creating a site, deploying, redeploying and deleting a backup stop for your approval. A backup runs without a separate prompt but stops the app while it captures, so ask for one at a quiet time.
  • A failed Docker site is retried in place with corrections. It is never deleted and recreated, because it keeps its domain and port.
  • Restoring a backup, adding a backup storage provider and changing a live site's domain are dashboard steps; the agent gives you the path and the dashboard link xCloud returned.

Example prompts

What Can You Ask ChatGPT dots to Do for Docker apps?

Type these as written and swap in your own repository, site and server names. Reads and routine actions such as backups, cache purges, PageSpeed scans and vulnerability scans run straight away; creating, deploying, updating, rebooting, deleting, buying or starting a broken-link scan stops and asks first.

Prompt
Scan the docker-compose.yml in github.com/example/api, tell me which services and ports xCloud would use, then run a dry run on my Frankfurt Docker server. Wait for my yes before you create the site.
Prompt
notes.example.com has answered 502 since this morning. Check which port its Compose file publishes and which port xCloud proxies to, and tell me what you would change in the repository.
Prompt
Every night at 2, read the backup settings of every Docker app on my team and message me the ones with no schedule or a failed last backup. Only report, and do not start a backup unless I ask.
Prompt
Scan the docker-compose.yml in github.com/acme/api and tell me which services and ports xCloud would use.
Prompt
Deploy github.com/acme/shop to the Frankfurt Docker server as a Compose app. Scan the compose file first, show me the services and ports, then wait for my approval before creating anything.
Prompt
Deploy the main branch of github.com/acme/api to my Docker server as a Compose app on a staging hostname.
Prompt
My Compose app on notes.example.com answers 502. Check which port its compose file publishes and which port xCloud is using.
Prompt
Take a backup of the Docker app on notes.example.com now, before I upgrade it, and tell me when it is done.
Prompt
Show the backup settings and the last backup of every Docker app on this team, and list the ones with no schedule.
Prompt
The last deploy of the API site failed. Diagnose it, show me the settings I can correct, fix the build command and retry on the same site.

ChatGPT dots and Docker apps: Frequently Asked Questions

What people ask before they let ChatGPT dots run Docker apps through xCloud.

Can my ChatGPT dot restore a Docker app from a backup?

No. A restore replaces the app's data in place, so it stays a dashboard step under Site, Site Backup, Previous Backups, Restore Backup. Your dot can read the backup list and settings, take a backup and add a note, and it will give you that path and the dashboard link when you ask for a restore.

Can I ask my dot to back up my Docker apps every night?

You can ask for a recurring backup task. xCloud runs a backup without a prompt, so your Custom rules decide whether the dot takes the action or asks you first. On a Pro account OpenAI limits MCP apps to read and fetch permissions, so there the dot can only audit the schedule.

Which servers can run a Docker app on xCloud?

Docker servers. Node.js, PHP and static builds use Nginx or OpenLiteSpeed servers, and the Docker deploy on any other stack is refused with an incompatible_server code. An OpenClaw, Hermes, Paperclip or DeepSeek Harness server hosts only the site created at provisioning, so it takes no Docker app.

Why does the agent scan the Compose file before deploying?

xCloud proxies to the host port your file publishes and never rewrites it. The scan lists the services and ports, so the agent picks a port that is free on the server and published by the file instead of guessing.

Why does my Compose app answer 502 after it deployed?

The most common cause is a Compose file that publishes no port: xCloud accepts it, then its nginx has nothing to proxy to. Publish the app on 127.0.0.1 with a high port, such as 127.0.0.1:8080:8080, and redeploy.

Can an agent deploy an image from a private registry?

Not as-is. The deploy runs docker compose pull and never docker login, so a private image cannot be pulled. Build the image from source in the Compose file, or deploy a repository that does.

Can an agent back up and restore a Docker app?

It can take a backup, read the backup list and settings, change the settings, add a note and delete a backup. Restoring replaces the app's data in place, so you do that in the dashboard under Site, Site Backup, Previous Backups.

Can I run WordPress as a Docker app on xCloud?

No. Creating a WordPress site on a Docker server is refused because WordPress is not supported on Docker servers. Use an Nginx or OpenLiteSpeed server for WordPress.

Other agents

Docker apps with Other Agents

The same job, the same xCloud tools, a guide for each client.

Run Your Hosting from ChatGPT dots

xCloud MCP, the Agent Skills and the Public API are free with every account. Connect once and ask.