Deploy Cap

Self-hosted Loom alternative screen recorder

Deploy Cap

Just deployed

/app/apps/web/.workflow-data

Just deployed

/var/lib/mysql

Just deployed

Bucket

Bucket

Just deployed

Deploy and Host self hosted Cap (Open-Source Loom Alternative) on Railway

This template runs Cap, the open-source Loom alternative: cap-web, an FFmpeg media server, MySQL, and a private Railway Bucket for recordings. Share links, no per-seat fees, and Cap Desktop can point at your domain. Built for remote teams recording async walkthroughs.

About Hosting Cap open-source software on Railway (self hosted Cap template)

Cap is a screen recorder you host yourself. This template runs the official cap-web image, the FFmpeg media server, MySQL 8.0.46 and a private Railway Bucket for recordings, thumbnails and avatars, with every secret generated on deploy. There is no deploy-time input. Data ownership stays with you.

Recordings stay in your bucket. Cap only issues short-lived presigned URLs, so nothing has to be public, and Railway handles TLS, the domain, private networking between services and restarts.

Why Deploy Cap, the Loom alternative on Railway (Railway Free Trial)

Loom charges every person who needs a seat. Self-hosted Cap runs on your own Railway project for about the price of the memory it uses, with no per-viewer bill and recordings in your bucket. Start on the $5 trial and see the real idle cost before you commit.

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Cap on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

Railway vs Other Hosting Providers and VPS for Cap self hosting

Railway wires the four parts together; a VPS leaves that to you.

ProviderWhat You Get with RailwayWhat You Get with the Other Provider
DigitalOceanBucket, private networking, deploys pinned to an image digestDroplet plus Spaces; you install Docker, S3 and TLS yourself
AWSAbout $10-20/mo at idle near 850 MB RAM, free egress on bucket storageEC2, RDS and S3 billed and maintained piece by piece
HetznerPort 3000 public; MySQL and media server stay privateCheap CX boxes, but backups, CORS and upgrades are yours

Expect about $10-20/mo for a small team at idle.

Common Use Cases for hosted Cap

  • Async standups for a distributed team: record a five-minute walkthrough of the sprint board, drop the share link in Slack, and skip the status meeting. Nobody needs a seat license, and recordings stay in your bucket.
  • Bug reports with a face and a voice: engineers narrate the click path instead of writing twelve steps, so the fix starts from a clear repro rather than a thread of guesses.
  • Customer walkthroughs without a hosted vendor: send a share link at https://your-domain/s/ID for onboarding tours or a design review. Playback uses short-lived presigned URLs, so the bucket stays private.
  • Documenting internal tooling: capture a screen pass of the admin dashboard or deploy checklist and keep it on a share page your whole team can find again.
  • Interviews and research notes: record screen plus camera with Cap Desktop, keep sign-ups closed to your company domain, and store every take in a bucket you control.

Playback URLs are presigned and short-lived, and access is checked before playback starts.

Dependencies for Cap Docker hosted on Railway

Cap is four moving parts on Railway: cap-web, cap-media-server, MySQL 8.0.46 and a Railway Bucket. Nothing is asked at deploy time; secrets are generated per deploy.

Deployment Dependencies for Managed Cap Service (Screen Recorder)

cap-web is the only public service, on port 3000 with health check /api/status and a volume at /app/apps/web/.workflow-data. cap-media-server (Bun plus FFmpeg) stays private on 3456 with health check /health and no volume. The private Railway Bucket holds recordings, thumbnails and avatars.

Implementation Details for Cap (Using the official cap-web and cap-media-server images)

Both images are pinned by digest: ghcr.io/capsoftware/cap-web and ghcr.io/capsoftware/cap-media-server, the same upstream commit c5f22d7, since upstream only ships a moving latest tag.

How does Cap compare against other screen recording tools

Four tools come up for async video. Here is where self-hosted Cap sits against each.

Cap vs Loom (Loom Alternative)

  • Where recordings live: Loom keeps videos on its servers; Cap on Railway writes them to your own private bucket, and only presigned links leave it.
  • Seats and limits: Loom sells per-seat plans and caps free-tier recording length; self-hosted Cap treats every account as Pro.
  • Where Loom wins: editing and viewer analytics are more finished, and nobody has to track a digest.

Cap vs Cap Cloud at cap.so (Cap Cloud Alternative)

  • Same code, different operator: cap.so is this codebase run by the Cap team; you skip MySQL, media server and bucket wiring.
  • Control: self hosting keeps accounts, media and encryption keys in your project, so retention and sign-up rules are yours.
  • Where the cloud wins: no digest pinning or upgrade babysitting, and support when processing breaks.

Cap vs Vidyard (Vidyard Alternative)

  • Focus: Vidyard is built for sales outreach with viewer tracking and CRM hooks; Cap is a recorder that hands back a link.
  • Cost shape: Vidyard is a per-seat subscription; self hosted Cap is free software plus $10-20/mo of Railway and storage.
  • Where Vidyard wins: integrations, team libraries and analytics depth for revenue teams.

Cap vs OBS Studio (OBS Studio Alternative)

  • Async vs live: OBS is a free desktop encoder for streams and local files; Cap adds accounts, upload and a share page.
  • Sharing: OBS leaves the file on your disk; Cap uploads to your bucket and plays back via a presigned URL.
  • Where OBS wins: scenes, sources and encoding control, plus no server to run.

How to use Cap (self-hosted screen recording)?

  1. Wait about a minute for cap-web to finish its first-boot migrations, then open your Railway domain.
  2. Enter any email, click Login with email, then open cap-web Deployments, View logs and copy the 6-digit VERIFICATION CODE (valid 10 minutes).
  3. In Cap Desktop, open Settings, set Cap Server URL to https://your-domain, and sign in.
  4. Record a short clip: the client uploads straight to your Railway Bucket, and the /s/ID share link plays back through a short-lived presigned URL.
  5. Add RESEND_API_KEY and RESEND_FROM_DOMAIN when you want login codes by email instead of the logs.
  6. Set CAP_ALLOWED_SIGNUP_DOMAINS to your company domain so strangers can't request codes.

How to self host Cap on other VPS Services (Cap self hosting guide)

The Railway template is the short path. You'll need Docker and Compose installed, a domain or IP that resolves to the box, and ports 80/443 open.

Clone the Repository

git clone https://github.com/CapSoftware/Cap.git
cd Cap

Install Dependencies

You don't install Cap itself. Docker pulls the images and FFmpeg comes bundled inside cap-media-server. Check Docker is running with docker --version, then create the env file next to the compose file.

Configure Environment Variables

touch .env

Edit .env and set WEB_URL=https://your-domain, a fresh NEXTAUTH_SECRET, a 64-hex DATABASE_ENCRYPTION_KEY, the MySQL password and the S3 (MinIO) credentials. Upstream's compose defaults are public, so replace every secret.

Start the Cap Application

docker compose up -d

Watch the cap-web logs until migrations finish, then open your domain, request an email code from the logs and sign in. Recordings live in the MinIO volume, and MySQL holds accounts and metadata; back up both.

Official Pricing of Cap (Cap pricing)

Cap itself is free to self host. Railway Bucket storage runs $0.015 per GB-month with free egress. A small team usually lands around $10-20 per month, starting from the $5 Railway trial. Cap's cloud at cap.so and Loom both sell per-user subscriptions; we don't quote their prices here.

Cap vs Loom cost comparison (Pricing, features, costs, and more)

Monthly cost of self hosting Cap on Railway

Expect roughly $10 to $20 a month for a small team sitting near 850 MB of RAM at idle, plus $0.015 per GB-month for bucket storage and free egress. Nobody pays per seat, so a ten-person team costs the same as one recorder.

System Requirements for Hosting Cap on a VPS

You want 2 vCPU and 2 to 4 GB of RAM, Docker with Compose, and 20 GB of disk for MySQL, plus room for recordings. The compose file also expects an S3 bucket, so either run MinIO next to it or point it at object storage you already pay for.

Frequently Asked Questions (FAQs)

Where is the login code without SMTP?

Open cap-web Deployments, View logs, and copy the 6-digit VERIFICATION CODE; it is valid for 10 minutes.

How do I point Cap Desktop at my server?

In Cap Desktop open Settings, find Cap Server URL, set https://your-domain and sign in. New recordings upload to your instance.

Where are recordings stored?

In your private Railway Bucket. MySQL keeps accounts, video metadata and comments, and the bucket holds the mp4 files, thumbnails and avatars. Share pages hand out short-lived presigned URLs, so the bucket stays private.

How do I close sign-ups?

Add CAP_ALLOWED_SIGNUP_DOMAINS to cap-web with your company domain and redeploy. Anyone else gets turned away at registration.

Do I need a custom domain, and what about CORS?

It is optional. Add the domain in Railway, set WEB_URL to https://your.domain and redeploy; the boot script re-applies the bucket CORS rule for the new origin.

What should I back up?

Both data stores: a MySQL dump for accounts and metadata, plus a copy of the bucket for media. Railway Buckets have no automatic backups yet.


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
50
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51