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:--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 theroomote host CLI for common operations:
Deployment modes
- One-command install —
deploy/install.shon an existing server, using published GHCR images. - Local development —
pnpm devruns the services from your checkout with PM2 for fast source edits. - Production Compose with Caddy —
docker-compose.production.ymladds 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.