Deploy Ghost on Oracle Cloud's free tier
Run a Ghost blog or newsletter on your own ARM server instead of a per-member subscription.
At a glance
| Base image | ghost:5-alpine |
|---|---|
| Port | 2368 |
| Start command | node current/index.js |
| Infrastructure cost | $0 on Oracle Always Free (platform fee for managed DevOps) |
Running Ghost on Ampere ARM
Ghost's official image supports ARM64. Content and images live on the mounted volume, which the Always Free 200 GB block storage allowance covers many times over.
Steps
- Set the url environment variable. Ghost bakes this into every generated link and email; changing it later means rewriting content URLs.
- Configure outbound email. Newsletters need an SMTP provider — set mail__* variables to your provider's credentials.
- Back up the content volume. It holds images, themes and settings.
Dockerfile for Ghost on ARM64
# docker-compose.yml
services:
ghost:
image: ghost:5-alpine
restart: unless-stopped
environment:
url: https://blog.yourdomain.com
database__client: mysql
database__connection__host: db
database__connection__user: ghost
database__connection__password: ${DB_PASSWORD}
database__connection__database: ghost
volumes:
- ghostdata:/var/lib/ghost/content
ports:
- "127.0.0.1:2368:2368"
db:
image: mysql:8
restart: unless-stopped
environment:
MYSQL_DATABASE: ghost
MYSQL_USER: ghost
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
volumes:
- ghostdb:/var/lib/mysql
volumes:
ghostdata:
ghostdb:Need one tailored to your repository? The free Dockerfile generator writes an ARM-ready multi-stage build for you.
Common mistakes
- MySQL memory usage: MySQL 8 defaults are hungry; cap innodb_buffer_pool_size on smaller shapes.
- Missing SMTP: Member signups silently fail without a working mail configuration.
- Theme uploads lost on redeploy: Only the mounted content directory persists.
Related reading
- /guides/self-host-docker
- /tools/cloud-cost-calculator
- /oracle-cloud/always-free-arm
- All deployment guides
Get the Oracle Always Free deploy checklist
One email with the exact steps, capacity workarounds and tools we use to ship apps for $0 of cloud spend.
One email, no spam. Unsubscribe anytime.
Frequently asked
Do I still pay Ghost?+
No. Ghost is open source; Ghost(Pro) is the paid hosted option you are replacing.
Can I run memberships and Stripe?+
Yes, self-hosted Ghost supports Stripe-powered memberships.
How much traffic can it take?+
Ghost serves cached pages quickly; an Ampere instance handles substantial blog traffic.
Deploy your project for $0
No credit card. No Oracle sales call. Ship to your own cloud in under 10 minutes.
Start free