Publish with Profit. Transform your Words into

Publish with Profit. Transform your Words into

Create a blog and newsletter to reach a global market and maximize your profits with ghost

Ghost doesn't have theme management features for you, just "gets" the theme you upload and runs accordingly.

No automatic updates, no licenses, no bug checks, and no availability nor maleware.

When users want to change theme edits, they usually have to download to their computer, unzip, edit, recompress and upload.

5 steps in total and a waste of time if you edit the theme regularly.

There is an extremely convenient way, which can be said to be perfect, not only helps to combine 5 steps into one but also bonus the 6th step is theme backup.

This article will show you how to use Github Action to save external themes, make external edits, and update external themes, without logging into Ghost Admin. All will automatically load into your Ghost.

First, you need a Github account to create a Github Repo (as a Folder) to house the theme. You should create a Private Repo instead of a Public one.

Create Github Private Repository
Create Github Private Repository

Next, you'll create a new Github Action. You name Github Action as you like, but I encourage you to use .theme-deploy.yml

Paste the code below to configure for .theme-deploy.yml

name: Theme Deploy
on:
  push:
    branches:
      - master
      - main
jobs:
  deploy:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v3
      - uses: TryGhost/action-deploy-theme@v1.6.3
        with:
          api-url: ${{ secrets.GHOST_ADMIN_API_URL }}
          api-key: ${{ secrets.GHOST_ADMIN_API_KEY }}
Create Github Action theme-deploy.yml
Create Github Action theme-deploy.yml

Next, you create a Secret for the Github Repo to link to Ghost. Go to Settings > Secrects > New repository secret

There are 2 Secrets you need to add:

  1. GHOST_ADMIN_API_KEY
  2. GHOST_ADMIN_API_URL
Github Secrets
Github Secrets

To have an Admin API, you must create a new Integration in Ghost. Go to Ghost Admin > Integration > Add New

Create a new Custom Integration and get the Admin API Key
Create a new Custom Integration and get the Admin API Key

Once you're done, upload your theme using the folder upload (extract your theme to a folder and upload it to that folder from your computer).

banner-Cuong Thach
Cuong Thach's avatar

Cuong is passionate about digital publishing, specializing in leveraging the power of platforms like Ghost and WordPress, while sharing effective practical SEO writing techniques based on these tools.