• Docs
  • Changelog
Sign in
Get started
    • Home
    • Your first deploy
    • Free instances
    • Platform features by plan
    • Use with coding agents
    • FAQ
    • Templates
      • Migrate from…
        • Heroku
        • Railway
    • Compute plans
    • SandboxesBeta
      • Service types
        • Which to use?
        • Static sites
        • Web services
        • Private services
        • Background workers
        • Cron jobs
        • Workflows
        • Multi-service architectures
      • Data storage
        • Render Postgres
        • Render Key Value (Redis®-compatible)
        • Persistent disks
    • How deploys work
    • Supported languages
    • Git providers (GitHub, etc.)
    • Build pipeline
    • Deploy hooks
    • Monorepo support
    • Troubleshooting deploys
      • Previewing changes
        • Single-service previews
        • Preview environments (multi-service)
      • Docker deploys
        • Overview
        • Deploy a registered image
        • Using secrets
      • Runtime
        • Native runtimes
        • Environment variables & secrets
        • Default environment variables
    • Intro to sandboxes
    • Limits
      • How to…
        • Create & configure sandboxes
        • Execute commands
        • Manage files
        • Manage snapshots
      • Use with…
        • Claude Managed Agents
        • Cursor Cloud Agents
        • OpenAI Agents API
      • SDK/CLI reference
        • TypeScript SDK
        • Python SDK
        • CLI commands
    • Intro to workflows
    • Tutorial
    • Limits & pricing
      • How to…
        • Define tasks
        • Define flowsNew
        • Trigger runs
        • Develop locally
      • SDK reference
        • TypeScript SDK
        • Python SDK
      • Example workflows
        • TypeScript examples
        • Python examples
    • Overview
    • Create & connect
    • Database credentials
    • Extensions
    • Version upgrades
    • Logical replication
    • Legacy instance types
      • Database recovery
        • Recovery & backups
        • High availability
      • Database performance
        • Read replicas
        • Connection pooling
        • Admin apps
        • Repacking tables
        • Troubleshooting performance
    • Regions
    • Inbound IP rules
    • Edge caching
    • WebSockets
    • TLS certificates
      • Custom domains
        • Overview
        • Cloudflare
        • Namecheap
        • Other DNS providers
      • Internal traffic
        • Private network
        • Private links
      • Outbound traffic
        • Default IP ranges
        • Dedicated IP addresses
        • Outbound bandwidth
        • Handling network changes
      • Static site config
        • Custom response headers
        • Redirects & rewrites
    • The Render Dashboard
    • SSH / Shell access
    • Projects & environments
      • Service actions
        • Scaling
        • Rollbacks
        • Maintenance mode
        • One-off jobs
      • Infrastructure as code
        • Blueprints overview
        • render.yaml reference
        • Terraform provider
    • In-dashboard metrics
    • Health checks
    • Uptime best practices
      • Logging
        • In-dashboard logs
        • Log streams (syslog/HTTPS)
      • OpenTelemetry (OTel) metrics
        • Provider setup
        • Metrics reference
      • Notifications
        • Webhooks
        • Email / Slack
    • MCP Server
      • Render CLI
        • Overview
        • Command reference
      • REST API
        • Overview
        • API reference
      • Third-party connections
        • OIDC support
        • Datadog
    • Workspaces, members, & roles
    • Login settings
    • Audit logs
      • Organizations
        • Overview
        • SAML SSO
    • DDoS protection
    • Platform maintenance
      • Compliance
        • Overview
        • HIPAA (US health data)
        • HIPAA best practices
        • Shared responsibility model
        • Pentest policy
    • Heroku vs Render
    • Vercel vs Render

Deploy Ghost

Ghost is a free and open source publishing platform for building and running modern blogs, magazines, and journals.

This guide shows how to deploy a Ghost instance on Render in just a few minutes. This version uses a SQLite database stored on a Render SSD Disk so your data is saved across deploys and automatically backed up with daily snapshots.

As of Ghost 5, MySQL 8 is the only supported database for production deploys of Ghost. SQLite is only supported by Ghost 5 in a development environment.

Manual Deploy

  1. Fork render-examples/ghost on GitHub or click 'Use this template'.

  2. Create a new Blueprint Instance on Render, and give Render permission to access your new repo.

  3. In your Render Dashboard, navigate to the Environment tab for your newly created MySQL Private Service.

  4. Copy the generated value of the MYSQL_PASSWORD environment variable.

  5. Navigate to the Environment tab for your newly created Ghost Web Service.

  6. Create a new environment variable called database__connection__password with the value copied from the MYSQL_PASSWORD environment variable of the MySQL Private Instance.

  7. Use the Manual Deploy button to deploy the latest commit to your Ghost Web Service.

That’s it! This initial deploy will take a few minutes in which Ghost will create the needed database entries. Subsequent deploys of Ghost will not need to do that and will be much quicker as a consequence.

Your Ghost instance will be available on your .onrender.com URL as soon as the deploy is live.

You can then configure Ghost by going to https://your-subdomain.onrender.com/ghost and start creating content for your new site!

Custom Domains for Ghost

Render makes it easy to add a custom domain to your Ghost site, with free and fully managed TLS certificates. Follow the Render custom domains guide to add a domain to your site.

After adding and verifying your domain on Render, make sure to add the following environment variable to your Ghost service on Render. You can do this under the Environment tab.

KeyValue
urlhttps://www.yourdomain.com
The url should be set to the primary domain for your site. If your custom domain is set up to redirect www to the apex domain, set url to https://yourdomain.com.

See Running Ghost with config env variables for more information.

Sending Mail from Ghost

You can set up Ghost to send email using an external service like Mailgun which allows up to 10,000 emails per month for free.

See https://ghost.org/docs/concepts/config/#mail for how to get Mailgun credentials for your Ghost domain.

Once you have your credentials, set up the following environment variables under the Environment tab to start sending mail from Ghost.

KeyValue
mail__transportSMTP
mail__options__serviceMailgun
mail__options__auth__userpostmaster@example.mailgun.org
mail__options__auth__passcorrect horse battery staple

Render will automatically restart Ghost to apply your new settings.

Deploy Ghost
  • Manual Deploy
  • Custom Domains for Ghost
  • Sending Mail from Ghost
All Systems Operational
© Render Inc. All rights reserved.