If you're running into issues with a misconfigured protocol or domain, you can update it easily with the ghost config command.

Change the configuration

Update your url by issuing the ghost config command from inside your Ghost directory:

ghost config url https://my-domain.com

You can easily find where Ghost was installed by calling the ghost ls utility from anywhere on your server.

Setup SSL

If you're switching to a url that contains HTTPS (recommended) then you'll need to make sure SSL is setup for this domain:

ghost setup nginx ssl

Restart Ghost

To apply the changes you must restart ghost:

ghost restart

These are some common problems caused by a misconfigured URL:

Canonical, RSS or Sitemap URLs are HTTP instead of HTTPS

Ghost uses the configured URL to generate all URLS. Make sure this URL starts with https:// if you want Ghost to generate HTTPS links by default.

Canonical, RSS, or Sitemap URLs contain localhost

You need to configure your domain using ghost config as described above.

Scheduled posts not publishing

When publishing a scheduled post, Ghost makes a call to the configured URL that can be fail if your proxy or URL are misconfigured. Often this occurs when the site is served over HTTPS but the URL is configured to HTTP.

Admin panel is incorrectly redirected

Make sure your configured URL is the one you are using to access the admin panel. You can set a separate domain for your admin panel using ghost config admin.url https://your-admin-domain.com.

Setting Ghost URL to HTTPS causes an infinite redirect loop

This is a proxy configuration issue. Make sure that X-Forwarded-Proto is being set to https, and that the X-Forwarded-Host and X-Forwarded-For headers are being set correctly by nginx or any other proxy you might be using.

Links wrong when behind reverse proxy

Make sure the configured URL matches the one being used to visit your site, including the protocol and any subdirectories using ghost config as described above.

My HTTPS URL isn't working

Make sure you've run ghost setup nginx ssl.

I've configured my URL and Ghost isn't using it

Restart Ghost to apply config changes using ghost restart.