Deploy Ghost on Ubuntu with Docker — the open-source publishing platform for blogs, newsletters, and membership sites with a beautiful editor, built-in SEO, and native email subscriptions.
Grab the automated bash script from GitHub to follow along with the video.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/tools/ghost/ghost-ubuntu.sh
chmod +x ghost-ubuntu.sh
sudo bash ghost-ubuntu.sh
The script installs Docker, pulls the Ghost and MySQL images, and starts both containers. Ghost will be available on port 2368 with a MySQL database backend for production-grade data persistence.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/tools/ghost/ghost-ubuntu.sh
chmod +x ghost-ubuntu.sh
sudo bash ghost-ubuntu.sh
Open your browser and navigate to Ghost:
http://<your-server-ip>:2368
Navigate to the Ghost admin panel and complete the setup wizard. Create your administrator account with a secure password, set your site title and description, and choose your publication language. This is a one-time setup that configures your Ghost instance.
http://<your-server-ip>:2368/ghost
In the admin dashboard, click "New post" to open the Ghost editor. Write your content using the clean card-based editor with support for text, images, galleries, embeds, code blocks, and more. Set tags, an excerpt, and a featured image, then click "Publish" to make your post live immediately or schedule it for a future date.
| Port | Purpose |
|---|---|
| 2368 | Ghost Web UI & Blog |
| 3306 | MySQL database (internal) |
Ghost is a powerful open-source publishing platform built for creators. Originally launched as a simpler alternative to WordPress, Ghost has evolved into a complete platform for professional publishers, bloggers, and content creators who want to build an audience and monetize their content. It combines a beautiful, distraction-free editor with native newsletter functionality, paid membership tiers, and a rich API for headless publishing workflows.
Ghost gives you full ownership of your content and audience with no platform lock-in. Unlike Medium or Substack, you own your subscriber list and can export it at any time. Ghost's performance is exceptional — built on Node.js, it loads significantly faster than PHP-based platforms like WordPress. The built-in newsletter and membership system eliminates the need for separate services like Mailchimp or Patreon.
Ghost runs on port 2368 internally. Always proxy it through Caddy or Nginx Proxy Manager with HTTPS — port 2368 should never be exposed directly to the internet. The MySQL database runs on port 3306 within the Docker network and must never be exposed externally. Open only ports 80 and 443 on your server firewall.
WordPress is the most established blogging platform with a massive plugin ecosystem but requires significantly more maintenance and is slower. Directus and Strapi are headless CMS options without a built-in frontend. Hugo and Jekyll are static site generators that require a separate CMS. Substack is a hosted newsletter-first platform with no self-hosting option and takes a revenue cut on paid subscriptions.
Don't use Ghost if you need a highly customizable CMS with thousands of plugins — WordPress is better for that. Ghost is not ideal for e-commerce, LMS, or complex multi-author workflows requiring fine-grained permissions. If you need a full document management system rather than a publishing platform, consider Directus or a dedicated wiki tool.
PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.
Ghost is an open-source publishing platform for bloggers, journalists, and content creators who want to own their content and audience. It combines a beautiful editor with native newsletter subscriptions, paid memberships, and a REST API — without locking you into a proprietary SaaS platform.
Ghost is purpose-built for publishing — it's faster, lighter, and easier to maintain than WordPress. Ghost has native newsletter and membership tools built in, while WordPress needs plugins. Ghost uses Node.js while WordPress uses PHP, making Ghost more modern and performant.
Yes. Ghost has a built-in email newsletter system. Configure an SMTP service (Mailgun, SendGrid, or Postmark) in settings to handle delivery. Ghost supports free and paid member tiers for gated content and paid newsletters.
Yes. Ghost has a rich theming system based on Handlebars templating. Download themes from the Ghost marketplace or create your own. Themes are uploaded as zip files through the admin panel and activated instantly.
Ghost uses MySQL (or MariaDB) for production deployments. The Docker setup uses MySQL for production-grade reliability. Ghost automatically creates and manages the database schema — no manual database setup required.
Yes. Ghost provides a REST Content API for public content and an Admin API for managing content programmatically. The APIs are used for headless publishing workflows, integrations with Next.js or Gatsby, or automating content publishing. API keys are generated in Ghost admin under Integrations.
Yes. Ghost has native paid membership and subscription support using Stripe as the payment processor. You can offer free, monthly, and annual membership tiers with gated content for paying members — no additional plugins needed.
Point your domain's DNS A record to your server's IP address. Set up a reverse proxy (Caddy or Nginx Proxy Manager) to forward your domain to Ghost on port 2368. Update the url setting in Ghost's config to match your domain.