HELP! Error in newsletter suscription Config file is not a valid JSON

Hi everyone,

This is my first time creating a Ghost website and I was really excited until I found it’s nearly impossible to configure my email settings via Mailgun. I can send any Newsletter posts with no issues but right now I can’t get anyone to subscribe or sign up.

I have followed nearly every website and document to create and configure the DNS and domain settings. Right now my email subdomain is and I plan to send my newsletter through there. Problems started when I edited my config.production.json to include Mailgun settings. This is the file:

	"url": "",
	"server": {
		"port": REDACTED,
		"host": "REDACTED"
	"database": {
		"client": "mysql",
		"connection": {
			"host": "localhost",
			"user": "ghost",
			"password": "REDACTED",
			"database": "ghost_production"
  "mail": {
    "from": "Javier de Pascual <>",
    "transport": "SMTP",
    "options": {
      "service": "Mailgun",
      "host": "",
      "secureconnection": true,
      "port": 587,
      "auth": {
        "user": "",
        "pass": "REDACTED"
	"logging": {
		"transports": [
	"process": "systemd",
	"paths": {
		"contentPath": "/var/www/ghost/content"

According to there’s no issues with my json file, but when I run ghost doctor or I try to restart ghost I get the following errors:

:heavy_check_mark: Checking system Node.js version - found v14.16.1
:information_source: Ensuring user is not logged in as ghost user [skipped]
:information_source: Checking if logged in user is directory owner [skipped]
:heavy_check_mark: Checking current folder permissions
:heavy_multiplication_x: Validating config
:heavy_check_mark: Checking content folder ownership
:heavy_multiplication_x: Checking memory availability
:heavy_check_mark: Checking binary dependencies
:heavy_check_mark: Checking free space

One or more errors occurred.

  1. Validating config

Error detected in the production configuration.

Message: Config file is not valid JSON

  1. SystemError

Message: You are recommended to have at least 150 MB of memory available for smooth operation. It looks like you have ~105.90234375 MB available.

I know the storage error can be skipped but I don’t know if when restarting I should skip that every time in order to have my ghost setup active.

Thing is my ghost status is STOPPED. and when sending a ghost log this is what I get:

A ConfigError occurred.

Error detected in the production configuration.

Message: You have excluded file logging in your ghost config. You need to add it to your transport config to use this command.

Configuration Key(s): logging.transports

Current Value(s):

Help: Run ghost config <key> <new value> for each key to fix the issue.

I’ve been banging my head on the walls for hours. Some online searches brought me to this site:

And since I’m hosting my Ghost website through DO I thought following this convoluted guide would solve the problem. It didn’t.

I thought using DigitalOcean and Ghost was easy enough to get my website going. Right now I’m considering just switching to a third party service like Mailchimp because this seems impossible for my level of expertise. I just hope someone here can help me since this has been a reocurring issue in the forums and, to be honest, looks like a pretty basic part of the setup, but no one has been, apparently, able to solve it and post the solution online.

Thank you in advance and I’m sorry if I my tone reads frustration all over the post, but I am.


  • How was Ghost installed and configured? Digital Ocean
  • What Node version, database, OS & browser are you using? Node v14.16.1

I haven’t tested this, I’m just hoping to point you in the right direction but it looks like you might be missing some parts, for instance logging.path, logging.level and logging.rotation

See the documentation here: Configuration - Adapt your publication to suit your needs your logging object should look similar to this.

Let me know if that helps, I know how frustrating issues like this can be!

As for the memory issue, I’m not 100% sure but I would try bumping your Node versions, I had a couple weird issues like that with Ghost last install and I had to bring Node up to 16LTS to get things to work.