Railway

Deploy Cachet | Open-Source Status Page on Railway

Self-host Cachet. Incident communication w/ components, incidents & metrics

Deploy Cachet | Open-Source Status Page on Railway

Just deployed

/var/lib/postgresql/data

Cachet logo

Deploy and Host Cachet on Railway

Deploy Cachet on Railway to run a beautiful, open-source status page system that keeps your users informed during outages, incidents, and scheduled maintenance. Self-host Cachet with full control over your branding, components, and incident communication — backed by 15k+ GitHub stars and trusted by organizations from startups to Fortune 500 companies.

Run Cachet on Railway with a pre-configured PostgreSQL database, automated TLS, and a public HTTPS URL ready for your team. The first visit launches a setup wizard where you name your status page, create an admin account, and start adding components — no CLI access or config files required.

Getting Started with Cachet on Railway

After deployment completes, open your Railway-provided URL. Cachet redirects to a three-step setup wizard that verifies your environment, configures your site name and timezone, and creates your administrator account. Choose a strong password — this account has full access to incident management and component configuration. Once setup finishes, visit /dashboard to add your first component (e.g., "API", "Website", "Database") and set its status. Create a test incident to verify your status page displays correctly on the public homepage.

Cachet setup wizard screenshot

About Hosting Cachet

Cachet is an open-source status page system built with PHP (Laravel). It provides a clean public-facing page where users check service health, and a dashboard where your team manages incidents, components, and metrics.

  • Component management — group services by category, set statuses (Operational, Performance Issues, Partial Outage, Major Outage)
  • Incident reporting — create, update, and resolve incidents with timestamped messages visible on the public page
  • Scheduled maintenance — announce upcoming maintenance windows so users know what to expect
  • Custom metrics — display graphs of response time, uptime percentage, or any custom data via the API
  • Subscriber notifications — users subscribe by email and receive automatic updates when incidents are created or updated
  • JSON API — programmatic access to components, incidents, metrics, and subscribers for automation and monitoring integrations
  • Multi-language support — translated into 30+ languages with full i18n

Why Deploy Cachet on Railway

  • Managed PostgreSQL database with automatic provisioning
  • HTTPS with automatic TLS — no reverse proxy setup
  • Environment variable configuration — no config files to edit
  • One-click deploy with setup wizard on first visit
  • Scale compute resources as subscriber count grows

Common Use Cases for Cachet

  • SaaS uptime communication — give customers a branded status page showing real-time health of your API, dashboard, and integrations
  • Internal infrastructure monitoring — let DevOps teams track and communicate the status of internal services, CI/CD pipelines, and databases
  • Scheduled maintenance announcements — notify users ahead of planned downtime with start/end times and impact descriptions
  • Incident post-mortems — use incident update history as a timeline for post-incident reviews and accountability

Dependencies for Self-Hosting Cachet on Railway

This template deploys two services:

  • Cachetcachethq/docker:latest — PHP application with Nginx, PHP-FPM, and a queue worker managed by supervisord
  • Postgres — Railway-managed PostgreSQL database for components, incidents, metrics, and subscriber data

Environment Variables Reference for Cachet

VariableDescriptionExample
APP_KEYLaravel encryption key (must be static)${{secret(32)}}
APP_URLPublic URL of the status pagehttps://${{RAILWAY_PUBLIC_DOMAIN}}
DB_HOSTPostgreSQL hostname${{Postgres.PGHOST}}
DB_PASSWORDPostgreSQL password${{Postgres.PGPASSWORD}}
CACHE_DRIVERCache backendapc
QUEUE_DRIVERQueue backenddatabase
MAIL_DRIVEREmail transport for notificationssmtp
PORTHTTP listening port8000

Deployment Dependencies

Hardware Requirements for Self-Hosting Cachet

ResourceMinimumRecommended
CPU1 vCPU2 vCPU
RAM256 MB512 MB
Storage500 MB2 GB
RuntimePHP 7.1+PHP 7.4+

Cachet is lightweight — the Docker image bundles Nginx, PHP-FPM, and a queue worker in a single container. A status page serving a few thousand daily visitors runs comfortably on minimal resources. Storage grows only if you enable metric data collection over long retention periods.

Self-Hosting Cachet with Docker

Clone the official Docker repository and start Cachet with PostgreSQL:

git clone https://github.com/cachethq/Docker.git cachet-docker
cd cachet-docker
docker compose up -d

Once the containers are running, generate the application key:

docker exec -i $(docker ps -qf "ancestor=cachethq/docker") php artisan key:generate

Visit http://localhost:80 to complete the setup wizard. Set your site name, create an admin account, and start adding components.

Is Cachet Free to Self-Host?

Cachet is completely free and open source under the BSD-3-Clause license. There is no paid tier, no enterprise edition, and no feature gating. You pay only for infrastructure — on Railway, that means compute and database usage billed by actual consumption. A typical Cachet deployment costs under $5/month on Railway due to its minimal resource footprint. Commercial alternatives like Atlassian Statuspage start at $29/month and scale to $1,499/month for enterprise plans.

Cachet vs Uptime Kuma

FeatureCachetUptime Kuma
Primary purposeStatus page (communication)Uptime monitoring + status page
Built-in monitoringNo (API-driven)Yes (HTTP, TCP, DNS, ping)
LanguagePHP (Laravel)Node.js
Subscriber notificationsEmail (built-in)90+ notification services
APIFull REST JSON APILimited API
Maintenance windowsYesYes
Custom metrics/graphsYesNo
Active maintenanceLow (last release 2021)High (frequent releases)
LicenseBSD-3-ClauseMIT
GitHub stars~15k~65k

Cachet excels as a communication-focused status page with its subscriber system, scheduled maintenance, and custom metrics. Uptime Kuma is better suited when you need built-in monitoring with automatic status detection. Uptime Kuma is more actively maintained — consider it if long-term updates are a priority.

Cachet on Railway FAQ

What is Cachet and why self-host it on Railway? Cachet is an open-source status page system that lets you communicate service health to users through a branded public page. Self-hosting on Railway gives you full data ownership, custom branding, and no per-subscriber pricing — unlike Atlassian Statuspage or Better Stack which charge based on usage tiers.

What does this Railway template deploy for Cachet? This template deploys two services: the Cachet application container (Nginx + PHP-FPM + queue worker via supervisord) and a Railway-managed PostgreSQL database. All configuration happens through environment variables — no config files or SSH access needed.

How does the Cachet setup wizard work after Railway deployment? On first visit, Cachet redirects to /setup — a three-step wizard that verifies your environment, sets your site name and timezone, and creates your admin account. After setup completes, the wizard disappears and your status page is live.

Does Cachet need Redis on Railway? No. This template uses APC for caching and sessions, and the database driver for queues. Redis is optional — you only need it if you want to scale queue workers horizontally or need a shared cache across multiple processes.

How do I send incident notifications from Cachet on Railway? Configure the MAIL_* environment variables with your SMTP provider credentials (SendGrid, Mailgun, Amazon SES). Users subscribe on your public status page, and Cachet automatically emails all subscribers when you create or update an incident.


Template Content

More templates in this category

View Template
SigOnly
Deploy SigNoz with a working demo app & config in one click

zoeyjones
View Template
OpenTelemetry Collector and Backend
OpenTelemetry Collector with Backend Stack

Melissa
View Template
pgweb | Postgres UI
View and query your Postgres instance with a sleek and minimalistic UI.

Cory "GH5T" James