Railway

Deploy classroomio selfhost

Deploy and Host classroomio selfhost with Railway

Deploy classroomio selfhost

Just deployed

Just deployed

Just deployed

/data

Just deployed

/var/lib/postgresql/data

Deploy and Host ClassroomIO Selfhost on Railway

ClassroomIO is an open-source learning management system (LMS) for building and teaching courses — lessons, quizzes, certificates, student management, and an AI tutor. The self-hosted edition runs the entire platform on your own infrastructure, so your data and branding stay fully under your control, with no per-seat pricing.

About Hosting ClassroomIO Selfhost

Hosting ClassroomIO means running three application services together: the API (backend, auth, business logic), the Dashboard (the web UI teachers and students use), and a Jobs worker that processes video, transcription, AI course generation, and email in the background. They depend on a PostgreSQL database and a Redis queue, plus S3-compatible object storage for media uploads and an SMTP provider for email. On Railway, Postgres and Redis are one-click plugins, and the three services build straight from the repository's Dockerfiles. Database schema setup runs automatically on the API's first boot — there's no manual migration step. Only the dashboard is exposed publicly; the API and worker stay on the private network.

Common Use Cases

  • Schools, bootcamps, and universities hosting their own courses while keeping student data on their own infrastructure
  • Companies running internal employee training, onboarding, or compliance LMS behind their own domain
  • Independent educators and course creators who want a fully owned teaching platform with no per-student fees

Dependencies for ClassroomIO Selfhost Hosting

  • PostgreSQL database (Railway plugin)
  • Redis (Railway plugin) — the queue that powers the background jobs worker

Deployment Dependencies

Implementation Details

Three services build from Dockerfiles in the repo (set RAILWAY_DOCKERFILE_PATH per service):

  • cio-apidocker/Dockerfile.api (listens on 3081)
  • cio-dashboarddocker/Dockerfile.dashboard (listens on 3082, the only public domain)
  • cio-jobsapps/jobs/Dockerfile (background worker, no public port)

The dashboard reaches the API over Railway's private network via PRIVATE_SERVER_URL. Auth secrets (BETTER_AUTH_SECRET, AUTH_BEARER_TOKEN) are auto-generated, and the dashboard shares a key with the API (PRIVATE_SERVER_KEY = ${{cio-api.AUTH_BEARER_TOKEN}}). The API runs database setup automatically on first boot, so no migration step is required.

Why Deploy ClassroomIO Selfhost on Railway?

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 ClassroomIO selfhost 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.


Template Content

More templates in this category

View Template
Rocky Linux
[Jun'26] Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

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

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

Letta