Before you start
Prepare:- a dedicated Ubuntu 24.04 LTS or Debian 12+ machine, or a full Linux VM, with administrator access; Windows and macOS can host a VM
- about 4 CPUs, 8 GB RAM, and 60 GB disk available to Roomote and its local tasks, with more capacity for concurrent or Docker-heavy work
- a supported inference subscription or API key with available credit or quota
- permission to connect one repository for the first task
- a domain you control; the tunnel path also needs a Cloudflare account managing that domain
This guide uses a public HTTPS URL so external services can deliver
callbacks and webhooks. Hosting Roomote at home still needs this route for
the complete provider setup. A private LAN address or Tailscale address
alone cannot receive callbacks from services such as GitHub and Slack.
You sign in to Roomote at the public URL to use the dashboard.
1. Prepare one Linux host
If you have a dedicated Ubuntu or Debian machine, open a terminal on it or connect over SSH. Apply operating-system updates and keep the machine awake. You do not need to create another VM.Use a Windows PC or Mac as the host
Use a Windows PC or Mac as the host
Create a full Ubuntu VM with
Multipass.
Follow its installation instructions and check its operating-system and
virtualization requirements first. If you already have a suitable Linux
VM, use that instead.After installing Multipass, run these commands in PowerShell on Windows or
Terminal on macOS:The second command opens a shell inside Ubuntu. Run the Linux commands in
the rest of this guide there. For another terminal inside the same VM,
open a new host terminal and run
multipass shell roomote again.Use the named-tunnel path in step 2 with this VM. Router port forwarding
would also require a VM network interface reachable from your router.Keep the computer and VM running while using Roomote. Use a full VM for
this deployment path; WSL2 and Docker Desktop are not substitutes for the
Linux host used by the installer.Use a Proxmox server
Use a Proxmox server
Create a Debian or Ubuntu VM with 4 vCPU, 8 GB RAM, and at least 60 GB disk.
Set the CPU type to
host, use VirtIO for disk and networking, and install
qemu-guest-agent. Give the VM a DHCP reservation or static LAN address,
enable SSH, and apply operating-system updates.Use a full VM for Docker task sandboxes. LXC containers require additional
privileged-container, networking, and storage configuration and are not
covered by this guide.sudo. Ports 80 and 443 are available for Roomote’s HTTPS server, Caddy.
2. Connect your home network
Use a named Cloudflare Tunnel if you want to avoid router changes, or if you are using the Multipass VM above. Use router port forwarding if your Linux host is reachable on the LAN and your ISP provides a public address. Follow one tab, then continue to step 3.- Named Cloudflare Tunnel
- Router port forwarding
This path uses a domain managed through Cloudflare and keeps inbound
router ports closed. It works behind carrier-grade NAT, where your ISP
shares a public address and ordinary port forwarding cannot work.This example dedicates
example.com to Roomote, with previews at
*.example.com. Replace it with a domain you control. This layout works
with Cloudflare’s standard certificate.- Follow Cloudflare’s named tunnel setup to install the connector as a service on the Linux host.
-
Add the application hostname and preview wildcard as published routes
through the tunnel. Both must reach the same Caddy service:
- Configure the HTTPS origin to trust Caddy’s local CA, or enable No TLS Verify for that local connection. Enable Match SNI to Host on the wildcard route so preview requests reach Caddy with the matching hostname. Confirm both DNS records route through the tunnel and Cloudflare’s public certificate is active.
-
On the Linux host, download and inspect the installer, then run it
with your application hostname:
q to leave less. Replace example.com with your domain.
Cloudflare serves public HTTPS and forwards traffic to Caddy. The
internal TLS setting applies to that private connection. Keep the tunnel
service running.If you choose a subdomain such as roomote.example.com, its preview
wildcard *.roomote.example.com needs additional certificate coverage.
See the preview hostname reference
before choosing that layout.Cloudflare Quick Tunnels (
trycloudflare.com) do not support the
Server-Sent Events
used for Roomote’s live updates. Use a named tunnel for this guide. If you
want to evaluate without your own domain, the
public-server trial uses an
automatic hostname on a server with a reachable public IPv4 address.3. Open Roomote
When installation finishes, run this on the Linux host:sudo roomote setup-url in your terminal.
Also open the deployment’s base URL from outside your home network, such as
on a phone with Wi-Fi turned off. Confirm the page loads with a valid HTTPS
certificate before connecting providers.