EN
Log in Create an account

How to Install Ghost on Saplo (Blog and Paid Newsletter)

Substack takes ten percent of the revenue from each paid newsletter subscription before you even factor in Stripe's commission. Ghost is an open-source blog and newsletter engine with the same paid subscription mechanism, which you host on your own Box and keep all the revenue for yourself.

Grzegorz Kalmus ·

Substack takes ten percent of the revenue from each paid newsletter subscription, plus Stripe's payment processing fee. So, for every hundred dollars a reader pays you, before you even add VAT, you're left with significantly less. Ghost is an open-source blog and newsletter engine, similar in concept to Substack or Beehiiv, but hosted on your own Box, with the same paid subscription mechanism via Stripe, without giving a commission to an intermediary. Below, step-by-step, how to set up Ghost on Saplo.

Why Ghost on your own Box instead of Substack

Paid newsletters on Substack have one feature that hurts the most as your subscriber list grows:

  • ten percent of revenue from each paid subscription - the more you earn, the more you give back, with no upper limit on the commission amount,
  • subscriber base and content locked within the Substack platform - export is possible, but you are constantly building reach on someone else's infrastructure, not your own.

Ghost is the same content publishing and paid subscription sales mechanism that you set up on your own Box. Zero commission on revenue, you only pay the standard Stripe fee for card processing, and your subscriber base and all content remain on your infrastructure.

Requirements

To set up Ghost on Saplo, you need:

  • A Box with Docker running (the engine automatically enables it during installation from the catalog; nesting in the container is required, which Saplo provides by default).
  • A minimum of 1 GB RAM free on the Box and 2 GB of disk space, which, together with the Box's operating system, doesn't fit into the Box S plan. You need at least a Box M.
  • A domain or subdomain *.saploapp.pl included in the Price of each plan, where your blog and admin panel will be hosted.
  • If you're planning paid subscriptions, a Stripe Account (free to set up, commission only charged on actual transactions).

For the installation itself, you don't need any external database. Ghost by default stores content and settings in a local SQLite file within the container's data volume. Optionally, you can choose Saplo's shared MySQL database if you expect high traffic and many concurrent entries.

Step-by-step installation

  1. In the Saplo panel, go to App catalog and select Ghost (category "Websites").
  2. Select a Box with at least 1 GB of free RAM, where Ghost will be installed, the domain or subdomain under which the blog will operate, and the database: SQLite (default, zero additional infrastructure) or MySQL (shared Saplo database, better for high traffic).
  3. Confirm the installation. The engine sets up a Docker container with the official ghost:6-alpine image, exposes it only to the Box's loopback and connects it to nginx, which serves it under the specified domain with free SSL. Only port 443 is exposed externally, not the raw container port.
  4. The engine waits for the container to actually start, and checks this after docker compose up finishes, because the success of the command itself does not mean that the process inside did not crash a moment later.
  5. After the installation is complete, the blog is available under the specified domain, and the administration panel is at /ghost/.

First configuration

Ghost, just like WordPress, asks for the owner's details only when you first access the panel, it doesn't automatically generate them during installation.

  1. Go to your domain address with /ghost/ appended, for example yourblog.saploapp.pl/ghost/.
  2. On your first visit, Ghost will show you the account creation wizard: blog name, email address, full name, and administrator password. This account manages the entire instance.
  3. After logging in, you'll land in the admin panel with the Koenig editor, a block content editor similar to Notion or WordPress's Gutenberg. Write and publish your first post to verify that the blog is working under the target domain.
  4. If you're planning paid subscriptions, in the panel, go to Settings → Membership → Stripe and connect your Stripe account. After connecting, you set subscription rates (monthly, yearly) and decide which content is available only to paying subscribers.
  5. To send newsletters to your subscriber list, Ghost needs a configured email provider. Basic transactional emails (password reset, invitations) go through regular SMTP, but mass newsletter sending to the entire subscriber list requires connecting a bulk email provider. Mailgun is officially supported, and its free plan is sufficient for getting started.

Ghost on Saplo vs. Substack

Substack Ghost on Saplo
Commission on paid subscriptions ten percent of revenue none, only standard Stripe commission
Where subscriber data is located Substack infrastructure Your Box
Custom domain limited, Substack branding visible full, *.saploapp.pl or your own
Content editor simple text editor Koenig block editor with full layout control
Who administrates Substack You, but without manual server setup

FAQ

Does Ghost take a commission from paid subscriptions? No, Ghost as software does not take any commission. You only pay the standard Stripe fee for processing card payments, just like with any other Stripe integration.

Do I need an external account for paid subscriptions? Yes, payments are handled by Stripe, so you need a verified Stripe account, which you connect in Ghost settings.

Does Ghost send newsletters without additional configuration? Basic transactional emails, yes, but sending bulk newsletters to a subscriber list requires connecting a bulk email provider. Mailgun is officially recommended.

Why does Ghost require Box M, not Box S? Ghost's official Docker image needs at least 1 GB of RAM, which, together with the Box operating system, doesn't fit into the Box S plan. Box M with 2 GB of RAM has enough spare capacity for normal operation.

Can I migrate an existing blog from Substack or WordPress to Ghost? Yes, Ghost has a built-in content importer in JSON format, and ready-made migration tools are available for Substack and popular blogging platforms, so you can transfer posts and subscribers without manual rewriting.

If you have any questions about setting up Ghost on your own Box or connecting paid subscriptions via Stripe, contact us, and we'll help with the initial configuration.

  • #Blog
  • #CMS
  • #Ghost
  • #Newsletter
  • #Guide