Fixing WSL, Docker, and ActivityPub bugs

by SkillAiNest

Setting up a Ghost CMS (Content Management System) on your local machine is a great way to develop themes and test new features. But if you’re using Windows or Docker, you might encounter errors that stop your development. And debugging takes time away from your actual development work.

In this guide, you’ll learn the root causes and correct fixes for three common Ghost CMS deployment errors:

  • Error 1: SQLite installation failure on Windows.

  • Error 2: Docker containers crashing with code 137 (memory limit).

  • Error 3: “Loading Interrupted” errors in ActivityPub Network tab.

By the end of this article, you’ll have a stable, working local Ghost setup. You’ll learn how to properly use WSL for Node.js apps, manage Docker resources, and successfully configure Ghost’s new social web features.

Error 1: SQLite installation failure on Windows.

symbol

When you run the command. ghost install local Setup fails on a Windows machine. You’ll see a long list of red text in your terminal that looks like this:

Error: Cannot find module 'sqlite3'
...
node-pre-gyp ERR! stack Error: Failed to execute...
...
MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found.

The error usually mentions “sqlite3” and says it “failed to execute” or “missing”.

The reason

Ghost uses SQLite to store your blog data. SQLite is a “native module”. This means that it requires a small piece of code that must be created to fit perfectly into your computer system.

Since Ghost was built to run on Linux servers, it expects Linux build tools to be found to build these files. Windows uses different tools and a different way of organizing files. When the Ghost CLI tries to build the SQLite files on Windows, it cannot find the required tools, so the installation stops. Using WSL gives Ghost the Linux environment it expects.

How to fix it:

You can use Windows Subsystem for Linux (WSL) to create a working setup.

  1. Open your WSL terminal (eg Ubuntu).

  2. Run and check your tools. node --version, npm --versionand python3 --version.

  3. Install the Ghost CLI globally within WSL:

    npm install -g ghost-cli@latest
    
  4. Run the local setup command:

    ghost install local
    
  5. Start the server:

    ghost start
    

How to verify:

Open your web browser and go to . You should see the default Ghost welcome page load without errors.

Error 2: Docker container is exiting with code 137.

symbol:

Containers crash when you are running Ghost using Docker Compose. The terminal logs show. Ghost admin container exiting with code 137 or Admin service killed due to memory constraints.

Reason:

So why does this happen? Well, error code 137 means that your computer has run out of memory (RAM) and the container has stopped. This usually happens when you try to run the full Ghost Developer setup (which includes 15+ additional tools) on a standard computer.

How to fix it:

To overcome this error, you can switch from a complex setup to a simple setup using the official Ghost Docker image.

To do this, first stop and remove the broken containers:

docker-compose down -v
docker system prune -a

Then create a new one docker-compose.yml File with only basic tools (ghost and database):

services:
  ghost:
    image: ghost:latest
    restart: always
    ports:
      - "2368:2368"
    environment:
      database__client: mysql
      database__connection__host: mysql
      database__connection__user: root
      database__connection__password: yourpassword
      database__connection__database: ghost
      url: 
    volumes:
      - ghost_content:/var/lib/ghost/content

  mysql:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: yourpassword
      MYSQL_DATABASE: ghost
    volumes:
      - mysql_data:/var/lib/mysql

volumes:
  ghost_content:
  mysql_data:

Then start the simple setup:

docker-compose up -d

How to verify:

Kind of docker-compose ps In your terminal. You should see both. ghost And mysql Containers listed with status “Up”.

Error 3: “Loading Interruption” in Network Analytics

symbol:

When you click Analytics → Network On the tab in your local Ghost admin panel, the page shows a “Loading Interrupted” error. Your terminal logs show 404 errors and webhook failures:

INFO "GET /.ghost/activitypub/v1/feed/reader/" 404 52ms
ERROR No webhook secret found - cannot initialise

Reason:

The Network tab works as an ActivityPub reader, not a typical analytics dashboard. This error occurs because ActivityPub is not set up for local use. It requires additional tools (Caddy, Redis) and a clean web address without a port number to work.

How to fix it:

To fix this error, simply run Ghost with its required Docker tools and update your local config file to turn on the Social Web features.

First, start the required tools (Caddy, MySQL, Redis) from your Ghost folder:

SSH_AUTH_SOCK=/dev/null docker compose up -d caddy mysql redis

Then open your config.local.json Set file URL to clear localhost address (remove :2368 port) and turn on developer features:

{
    "url": "
    "social_web_enabled": true,
    "enableDeveloperExperiments": true
}

Stop your current ghost process:

pkill -f "yarn dev:ghost"

And restart Ghost with the new settings:

yarn dev:ghost

How to verify:

Log in to your Ghost admin panel again and click Analytics → Network. The error message will disappear, and you’ll see the ActivityPub feed instead.

The result

Local setups can be difficult, especially when integrating new features like Windows, Docker, and ActivityPub.

By fixing these three errors, you’ve done more than run Ghost. You learned how to bypass Windows limitations using WSL, how to manage Docker memory, and how Ghost routes social web traffic.

You now have a stable, fast, and fully functional Ghost CMS workspace ready for your content.

Let’s connect! You can find my latest work on my Technical writing portfolio Or contact me. LinkedIn.

You may also like

Leave a Comment

At Skillainest, we believe the future belongs to those who embrace AI, upgrade their skills, and stay ahead of the curve.

Get latest news

Subscribe my Newsletter for new blog posts, tips & new photos. Let's stay updated!

@2025 Skillainest.Designed and Developed by Pro