Skip to main content
Roomote is designed to run well on a single host behind a Caddy reverse proxy. The canonical, always up-to-date operator guide lives in SELF_HOSTING.md in the repository; this page summarizes the public setup path and the checks that usually matter first. Start here when you want an operator-managed deployment for your team. By the end of setup, you should have a reachable Roomote URL, sign-in, a source-control provider, an inference provider, at least one environment, and a first reviewable Roomote task.

One-command install

SSH into a fresh Ubuntu or Debian amd64 server (4 GB+ RAM) and run:
curl -fsSL https://raw.githubusercontent.com/RooCodeInc/OpenRoomote/develop/deploy/install.sh | bash
The installer brings up the full stack from published images and prints a setup link. Open it in a browser and the wizard walks you through the rest: sign-in provider, source-control provider, inference provider and API key, communications provider, repositories, and a first task. No DNS setup is needed to try it out; pass --domain roomote.example.com for a production install on your own domain.

Setup checklist

Have these ready before the wizard asks for them:
  • a public HTTPS URL for the deployment, especially when source-control or chat callbacks need to reach it
  • a sign-in provider for the people who will use the deployment
  • a source-control provider account with permission to install or configure the app for the repositories Roomote should reach
  • an inference provider API key, such as OpenRouter, Anthropic, or OpenAI
  • a communications provider workspace, such as Slack, Microsoft Teams, or Telegram, if your team wants to start work from chat
  • at least one repository that can become the first Roomote environment

Day-2 operations

The installer also sets up the roomote host CLI for common operations:
roomote upgrade   # pull and roll out newer images
roomote backup    # back up the database and configuration
roomote logs      # tail service logs

Deployment modes

  • One-command installdeploy/install.sh on an existing server, using published GHCR images.
  • Local developmentpnpm dev runs the services from your checkout with PM2 for fast source edits.
  • Production Compose with Caddydocker-compose.production.yml adds a Caddy container as the HTTPS entrypoint for your app and preview domains, and runs the containerized stack in production mode with per-install secrets (locally or on a server).

Requirements

  • An inference provider API key (OpenRouter, Anthropic, OpenAI, and others).
  • A GitHub account — the setup wizard creates the GitHub App for you.
  • For Slack, Microsoft Teams, and Telegram: a workspace where you can install an app; the setup wizard prefills the Slack app manifest for you.

Verify the deployment

After setup, run a small task that uses the first environment. A healthy deployment should let you:
  • sign in from the public Roomote URL
  • connect source control and see the expected repositories
  • create or select an environment
  • start a task from the dashboard or chat
  • inspect the task transcript, logs, and any generated diff or artifact
  • open a preview when the task starts a web app

Common issues

  • Callbacks fail. Confirm the deployment has a public HTTPS URL and that the source-control or communications provider is using that exact URL.
  • The first task cannot clone a repository. Check source-control installation scope and repository permissions.
  • The agent cannot run useful commands. Add missing services, environment variables, setup commands, or tool versions to the environment.
  • Chat messages do not reach Roomote. Confirm the app is installed, invited to the channel, and using the current callback URL.