LoopgateTry it

Docs / Start / On your server

On your server

MarkdownOpen in ClaudeOpen in ChatGPT

At the end, a runner works on a Linux machine of yours, your team opens it from the portal, and Slack is connected if you want it.

Time

30 minutes in one sitting.

You need
  • Your Loopgate sign-in as an org owner or admin
  • A Linux machine with Docker, or an account on AWS, Google Cloud, Azure or a VPS
  • A GitHub account with access to your repository
  • A ChatGPT or Claude plan you already pay for
  • A Slack admin, for step 5

Set this up with your agent

Copy this to a coding agent on your laptop. It runs the commands on your server and checks each step with you; what you sign in to, press or paste stays yours.

This is for a coding agent that can run commands on my laptop (Claude Code, Codex, Cursor), not a chat website.
Help me set up Loopgate's runner, one step at a time, following https://loopgate.dev/docs/server.md and the pages it links to, each beside it ending in .md.
Ask me which Linux server with Docker it runs on: one of mine, or a new one on AWS, Azure, Google Cloud or a VPS, whose page you walk me through.
Over SSH, check that the box answers `docker compose version`.
I press Add a runner on the portal's Devices page and paste you its line; its token works once, for an hour. Run it on the box over SSH.
Then read `cd ~/loopgate && docker compose logs runner` and tell me when it says `Registered as` and `Runner ready at`.
Then walk me through the runner's page: engines, GitHub and a workspace (sign-in.md), then Slack (slack-connect.md).
These are mine: tell me when it is my turn, wait for me, and never ask me to type them into this chat. Signing in to anything (the portal, a cloud console, the runner's page, Slack, GitHub), pressing Add a runner, every token and password, my AI subscription's device code, and making the Slack app.

Steps

  1. Sign in to the portal at app.loopgate.dev.

    You should see: your org's pages, with Devices among them. A new org starts a fourteen-day trial for five seats.

  2. Pick a Linux machine with Docker: one of yours, or a new one on AWS, Google Cloud, Azure or a VPS, the cheapest with the fewest screens.

    You should see: docker compose version answering on it.

  3. On Devices, press Add a runner and paste its one line on the machine: Any Linux box has every step. The line installs the runner, signs it in to your org and gives it an address.

    You should see: Registered as and Runner ready at in docker compose logs runner, and the runner under Runners on Devices.

  4. Open the runner from Devices, then sign in your engines, set GitHub and add a workspace: Engines, GitHub and a repository.

    You should see: an engine Ready on Settings → Engines and your repository in the sidebar.

  5. Connect Slack on Settings → Slack, if you want it: Connect Slack. Then your team says tasks there: From Slack.

    You should see: Connected to <workspace> on the page.

The runner's first address ends trycloudflare.com and changes when the box restarts; Open on Devices always uses the current one. For an address that stays: Cloudflare Tunnel, open from anywhere, or Tailscale, open only to your team's laptops.

What is yours

  • The machine and the code. Your repository, the agents' changes, what they were told and said stay on it. The pull request goes from it to your GitHub.
  • The sign-ins. The agents use the ChatGPT or Claude plan you already have, signed in on the machine. No API key to buy, none to give us.
  • The switch. Revoke the runner on Devices and within a minute nobody reaches it.

What Loopgate's servers receive

A heartbeat, your team's member list, and one line per finished run: who, when, how it ended, what it cost. Never code, diffs, prompts, transcripts or the task: What leaves your box.

Good to know

If something is off

  • The script says The runner did not register within two minutes. The line The install token was refused: … under it says why; a token works once, for an hour. Press Add a runner again and paste the new line.
  • Open on Devices does not load the runner. Read docker compose logs runner on the machine for its current address; a quick tunnel's address changes on restart.

Next