Deploy Ghost Multilingual

1-Click deploy multilingual Ghost with 2 separate instances

Deploy Ghost Multilingual

ghost-fr

ghost:alpine

Just deployed

/var/lib/ghost/content

Ghost Nginx Proxy

bePublish/ghost-multilingual-reverse-proxy

Just deployed

MySQL

mysql:8

Just deployed

/var/lib/mysql

MySQL-fr

mysql:8

Just deployed

/var/lib/mysql

ghost

ghost:alpine

Just deployed

/var/lib/ghost/content

Deploy and Host Ghost multilingual with 1-Click on Railway

Deploy and Host Ghost multilingual with 1-Click on Railway

Ghost doesn't support multi-language natively? No problem! Deploy separate Ghost instances and unify them under one domain with different paths:

  • yourdomain.com/en → English site
  • yourdomain.com/vi → Vietnamese site

See it in action: bepublish.com

About Hosting Ghost multilingual with Dual Instances

This architecture deploys two complete Ghost installations—each with its own database, themes, content, and admin panel—unified under one domain through intelligent routing. Why this matters:

  • ✨ Full independence – Customize each language site without limitations
  • ⚡ Better performance – No plugin overhead or database bloat
  • 🛠️ Easier maintenance – Manage languages separately, debug faster
  • 🎨 Design freedom – Different themes, structures, or features per language

The 1-click deployment handles all the technical complexity: databases, environment variables, routing configuration—everything. You get professional multi-language infrastructure in minutes, not days.

Common Use Cases

  • International Business Blogs – Separate content strategies, SEO, and editorial teams per market under one unified brand
  • Bilingual News Publications – Independent newsrooms publishing breaking stories simultaneously in multiple languages
  • Educational Platforms – Localized courses with culturally relevant examples and language-specific membership tiers
  • Product Documentation – Version-specific docs in multiple languages without forced translation sync

Dependencies for Ghost Multilingual Hosting

  • MySQL Database (×2): Each Ghost instance requires its own MySQL database for storing content, users, and configuration independently
  • Node.js Runtime: Ghost runs on Node.js and requires a compatible runtime environment for both instances
  • Storage Solution: File storage for media uploads, themes, and assets for each language instance

Deployment Dependencies

Implementation Details

The template automatically provisions two complete Ghost instances with the following architecture:

# Instance 1: Primary Language (e.g., English)
- Ghost App with dedicated MySQL database
- Environment: production
- Custom domain support
- Independent theme and configuration

# Instance 2: Secondary Language (e.g., Fr)
- Ghost App with separate MySQL database
- Environment: production
- Custom subdomain/path support
- Independent theme and configuration

Key Configuration Variables:

  • GHOST_ROOT_URL: Base URL for the primary language instance
  • GHOST_INSTANCES: Base URL for the secondary language instance (unlimited instances with separate by ,)
  • SERVER_NAME: your custom domain
  • Database credentials are automatically generated and isolated per instance

🚀 3-Step Deployment

Check tutorial video for detail: https://www.youtube.com/watch?v=JjA-2Qdr9Pw

Step 1: Deploy the Primary Instance

  1. Click "Deploy Now" on the template
  2. Wait for Railway to build
  3. Go to Variables, set: url: yourdomain.com/en
  4. Go to Settings > Domains, add your domain and configure CNAME at your registrar

✨ The first instance acts as the traffic router for everything!

Step 2: Deploy the Second Instance

  1. Deploy the same template again
  2. Set url: yourdomain.com/vi in Variables

Step 3: Connect the Sites

  1. Return to the first instance
  2. Edit the url variable to: yourdomain.com/en,yourdomain.com/vi
  3. Redeploy the first instance

🎉 Done! Both sites are now live!


Template Content

More templates in this category

View Template
Strapi
A popular self-hosted CMS

View Template
WordPress with Redis
Deploy WordPress with MariaDB and Redis

View Template
Directus (docker/websocket/extensions) + PostGIS (docker/TCP) + S3/Local
Directus (Docker) + PostGIS (Docker/TCP) + S3