Deploy October CMS

Laravel-based CMS for building websites you edit in the browser

Deploy October CMS

Just deployed

/data

Just deployed

/data

Just deployed

Just deployed

/var/www/html/storage

/var/lib/postgresql/data

Deploy and Host October CMS on Railway

October CMS is a content management platform built on the Laravel PHP framework, used by agencies and product teams who build a site in Twig templates and hand day-to-day editing to someone who does not write code. Its backend gives you a file-tree editor for pages, layouts and partials, a media library, a structured-content builder called Tailor, and a Composer-managed plugin ecosystem. Deploy October CMS on Railway for that developer-first workflow without the shared-hosting babysitting.

Self-host October CMS here and five services arrive wired together. october runs nginx, PHP-FPM and the task scheduler. october-worker runs the same image as a queue consumer, so mail and plugin jobs leave the request path. Postgres holds pages, content and settings, Redis backs the cache, sessions and job queue, and mailpit is a private SMTP endpoint with a password-protected inbox, so outbound mail works without a relay account. A volume on the web service keeps media and theme files across redeploys.

Diagram of the October CMS services on Railway

Getting Started with October CMS on Railway

The first administrator is created for you from the OCTOBER_ADMIN_LOGIN, OCTOBER_ADMIN_EMAIL and OCTOBER_ADMIN_PASSWORD values you supply at deploy time, so no open setup wizard ever sits on a public URL waiting to be claimed. When the deploy is green, open your public domain and you should see the bundled demo theme. Then go to /manage and sign in with those credentials.

Start in Editor. Expand Pages, open the menu beside it, choose New Page, give it a title and a URL such as /about, write markup in the Markup tab and press Save. Load that URL in a private window: if it renders for a logged-out visitor, the database, the theme and the router are all working. Next open Media and upload an image, which proves the volume is mounted and writable. To check mail, open the Mailpit inbox on its own domain, sign in with the MP_UI_AUTH credentials, then use the backend's Forgot password? link.

Change OCTOBER_ADMIN_PASSWORD and redeploy to reset the account. The credentials are rewritten only when one of those three values changes, so a password you later change inside the backend is never reverted.

Published October CMS page on the demo theme

Editing a page's Twig markup in the October CMS editor

October CMS media library listing an uploaded banner image

October CMS system dashboard showing build and traffic reports

About Hosting October CMS

October CMS sits between a framework and a CMS. A page is a flat file of Twig markup with an optional PHP section, a layout wraps it, a partial is reusable, and plugin components add dynamic behaviour. That suits marketing sites, client work and content-driven apps where the structure is custom but non-technical people still change words and images.

  • File-tree editor for pages, layouts, partials, content blocks and theme assets
  • Tailor blueprints for structured content without writing a plugin
  • Media library with an image resizer and a built-in file manager
  • Backend roles, groups and per-permission access control
  • Multisite support with hostname routing
  • Composer-based plugin and theme management

The Railway architecture keeps the roles separate. The web service holds the volume and runs schedule:work under Supervisor for October's periodic tasks. The worker runs queue:work against Redis. Postgres stores everything the CMS treats as content, including editor changes to templates, so the site survives a container being replaced.

Why Deploy October CMS on Railway

Railway removes the parts of a PHP CMS deployment nobody enjoys.

  • Postgres, Redis and the mail service come pre-wired, no connection strings to paste
  • Managed TLS and a public domain on the first deploy
  • A persistent volume for media and theme files
  • Vertical and horizontal scaling from the dashboard
  • Push to the source repository to rebuild and redeploy
  • Logs and metrics for every service in one place

Common Use Cases

  • Agency and freelance client sites where a developer owns the templates and the client edits copy
  • Marketing and product sites needing custom layouts rather than a page-builder's blocks
  • Content-driven applications built on Tailor blueprints and Laravel packages
  • Documentation or knowledge sites served from a single theme

Dependencies for October CMS

  • october and october-worker — built from the gridalpha/october-railway repository on top of ghcr.io/octobercms/runtime-prod:php85, October's own production runtime image
  • Postgresghcr.io/railwayapp-templates/postgres-ssl:18, the content and settings store
  • Redisredis:8.2, backing the cache, the session store and the job queue
  • mailpitaxllent/mailpit:latest, a capture-only SMTP server with a web inbox

Environment Variables Reference

VariablePurpose
OCTOBER_ADMIN_LOGINUsername for the administrator created at first boot
OCTOBER_ADMIN_EMAILEmail address for that administrator
OCTOBER_ADMIN_PASSWORDPassword for that administrator, at least 8 characters
APP_KEYSession signing and at-rest encryption key; must stay stable
APP_URLPublic base URL used in generated links and mail
BACKEND_URIPath to the backend, /manage by default
ACTIVE_THEMEFallback theme when the database is unreachable
CMS_DB_TEMPLATESWrites editor changes to Postgres instead of the volume
CMS_SAFE_MODEBlocks the PHP code section in the editor
MP_UI_AUTHuser:password for the Mailpit inbox
MAIL_HOST / MAIL_PORTWhere October sends mail; points at Mailpit by default

Deployment Dependencies

Hardware Requirements for Self-Hosting October CMS

ResourceMinimumRecommended
CPU1 vCPU2 vCPU
RAM1 GB2 GB
Storage5 GB volume10 GB or more with a large media library
RuntimePHP 8.2+, PostgreSQL 10+ or MySQL 5.7+PHP 8.5, PostgreSQL 18, Redis 8

Only the web service needs real headroom; PHP-FPM runs twelve workers at 256 MB each. Keep it at one replica unless you move theme assets onto shared storage, since the editor writes to the local filesystem.

Self-Hosting October CMS

October CMS is a Composer project rather than a library, so an install starts by creating one. This is the command-line install:

composer create-project october/october myoctober "^4.0"
cd myoctober
php artisan october:migrate
php artisan serve

Configuration comes from environment variables, which override anything in .env. A production PostgreSQL setup looks like this:

APP_ENV=production
APP_DEBUG=false
DB_CONNECTION=pgsql
DB_HOST=postgres
DB_DATABASE=october
DB_USERNAME=october
DB_PASSWORD=change-me
CACHE_STORE=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
CMS_DB_TEMPLATES=true

Plugins and themes are added with Composer and deployed with the code, which is why this template builds from a source repository you can fork.

Is October CMS Free?

October CMS is source-available under its own end-user licence agreement rather than a permissive open-source licence. The platform installs and runs without a licence key, and every new October CMS account includes a complimentary licence for its first year; after that a paid project licence keeps updates and Marketplace access flowing. Check the current terms at octobercms.com. On Railway you pay only for the compute, storage and bandwidth the five services use.

FAQ

What is October CMS? A content management platform built on Laravel, where pages, layouts and partials are Twig files edited in a browser-based file tree and plugin components supply the dynamic behaviour.

What does this Railway template deploy? Five services: the October CMS web tier with the task scheduler, a queue worker running the same image, PostgreSQL, Redis, and a Mailpit inbox for outbound mail. Only the web tier and the Mailpit inbox get public URLs.

Why does the template include Redis and a separate worker? Redis holds the cache, the sessions and the job queue, so nobody is logged out on a redeploy, and the worker drains that queue so a plugin sending mail or processing an upload never blocks a page load.

Where do my pages live, on the volume or in the database? With CMS_DB_TEMPLATES enabled, the default here, pages, layouts, partials, content and language files written in the editor go to PostgreSQL. Uploaded media and theme asset files live on the volume.

Do I need an October CMS licence key to deploy this? No. The platform runs without one and this template needs no account to install. A licence key is what enables in-place updates and the Marketplace, and you add it later with php artisan project:set.

How do I send real email instead of capturing it? Point MAIL_HOST, MAIL_PORT, MAIL_USERNAME and MAIL_PASSWORD at your own SMTP provider, or configure a relay in Mailpit. The backend's Settings page also holds mail settings, and those override the environment once saved.


Template Content

More templates in this category

View Template
Libredesk - Complete Setup
Complete self-hosted omnichannel customer support desk.

codestorm
1
View Template
Paperless-ngx
Paperless-ngx — document management with OCR and full-text search

INAPP
1
View Template
Instatic CMS - Postgres
Design, build and manage powerful static sites from state-of-the-art CMS

Instatic
156