---
title: "Deploy Plane Timetabling"
description: "Clash-free school timetables from your teachers, classes and rooms"
category: "Other"
url: https://railway.com/deploy/plane-timetabling
---

# Deploy Plane Timetabling

Clash-free school timetables from your teachers, classes and rooms

**[Deploy Plane Timetabling on Railway](https://railway.com/template/plane-timetabling)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/plane-timetabling/manifest.json

- **Creator:** Joe Tay's Projects
- **Category:** Other

## Template content

### plane-app

- **Source:** https://github.com/twahidin/plane-timetabling-app
- **Health check:** /healthz
- **Public domain:** Yes

## Documentation

# Deploy and Host Plane Timetabling with Railway

Plane is a school timetabling app. You describe your school (its week, teachers, classes, rooms and subject
requirements), and Plane builds a clash-free timetable. You can then adjust the timetable by hand or with
the built-in Assistant, and print it per teacher, class or room.

## About Hosting Plane Timetabling

The template deploys one service, the Plane web app. It has a persistent volume at `/data` for its SQLite
database, so your school's data survives restarts and redeploys. The app sends solving work to the shared
Plane engine. You don't need to run a solver yourself; you can enter a different engine URL later on the
Settings page.

On the first deploy, Railway generates two values:

- **`ADMIN_PASSWORD`** is the admin password. You'll find it in the service's Variables tab.
- **`SECRET_KEY`** signs the login cookie.

Open the service's domain and log in with that password.

## Common Use Cases

- Building a school's timetable for the new year or term from a few CSV files, or with the start wizard.
- Option blocks and subject banding, for when students move between classes for banded subjects.
- Printing timetables per teacher, class or room, and handling relief and changes mid-term.

## Dependencies for Plane Timetabling Hosting

- A Railway volume mounted at `/data`, which the template creates.
- The shared Plane engine. Solving is licensed, so add your engine key on the Settings page.

### Deployment Dependencies

- Source: https://github.com/twahidin/plane-timetabling-app

### Implementation Details

The image sets `DATA_DIR=/data`, `APP_ENV=production` and `ENGINE_URL`. You can override any of them in the
Variables tab. The health check is `/healthz`.

## Why Deploy Plane Timetabling on Railway?

Railway is a single, consistent platform for deploying your infrastructure stack. Railway hosts your
infrastructure, so you don't have to deal with configuration, while still letting you scale it vertically
and horizontally.

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


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/plane-timetabling
