ActivityPub & Cloudpanel: Network not loading in Ghost Admin

Hello I host Ghost on a server myself.
Ubuntu 24.04 runs on it with a cloud panel.
The installation has only been running for some time now, he shows me the following under Network in the Ghost Admin: Loading Interrupted
They say life is a series of trials and tribulations. This moment right here? It’s a tribulation. Our app was supposed to load, and yet here we are. Loadless. Click Back to the Dashboard to Try Again.

Why is it?
Here are a few more information:

Version: 6.0.0

Environment: production

Database: mysql8

Mail: Direct

Node: 22 LTS

Here is my Vhost Config:

server {
  listen 80;
  listen [::]:80;
  listen 443 quic;
  listen 443 ssl;
  listen [::]:443 quic;
  listen [::]:443 ssl;
  http2 on;
  http3 off;
  {{ssl_certificate_key}}
  {{ssl_certificate}}
  server_name www.mr-chili.de;
  return 301 https://mr-chili.de$request_uri;
}

server {
  listen 80;
  listen [::]:80;
  listen 443 quic;
  listen 443 ssl;
  listen [::]:443 quic;
  listen [::]:443 ssl;
  http2 on;
  http3 off;
  {{ssl_certificate_key}}
  {{ssl_certificate}}
  server_name mr-chili.de www1.mr-chili.de;
  {{root}}

  {{nginx_access_log}}
  {{nginx_error_log}}

  if ($scheme != "https") {
    rewrite ^ https://$host$request_uri permanent;
  }

  location ~ /.well-known {
    auth_basic off;
    allow all;
  }

  {{settings}}

  include /etc/nginx/global_settings;

  index index.html;

  location / {
    proxy_pass http://127.0.0.1:{{app_port}}/;
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_pass_request_headers on;
    proxy_max_temp_file_size 0;
    proxy_connect_timeout 900;
    proxy_send_timeout 900;
    proxy_read_timeout 900;
    proxy_buffer_size 128k;
    proxy_buffers 4 256k;
    proxy_busy_buffers_size 256k;
    proxy_temp_file_write_size 256k;
  }
}

Network is ActivityPub. There are multiple recent threads that include what configuration is needed - please take a look :slight_smile:

I really have no idea what to look for.
Do I need to change something in the Vhost, or do I need to open another port?

The Ghost CLI GitHub repo has nginx templates that include what you need for ActivityPub, specifically for proxying /.ghost/activitypub/* and /.well-known/(webfinger|nodeinfo)

I add this in my VHOST and i became this Error:

Vhost is not valid, error message: nginx: [warn] the “listen … http2” directive is deprecated, use the “http2” directive instead in /etc/nginx/sites-enabled/custom-domain.conf:4 nginx: [warn] the “listen … http2” directive is deprecated, use the “http2” directive instead in /etc/nginx/sites-enabled/custom-domain.conf:5 nginx: [warn] “ssl_stapling” ignored, no OCSP responder URL in the certificate “/etc/nginx/ssl-certificates/cloud.mr-chili.de.crt” nginx: [warn] “ssl_stapling” ignored, no OCSP responder URL in the certificate “/etc/nginx/ssl-certificates/custom-domain.crt” nginx: [warn] “ssl_stapling” ignored, no OCSP responder URL in the certificate “/etc/nginx/ssl-certificates/dockge.mr-chili.de.crt” nginx: [warn] “ssl_stapling” ignored, no OCSP responder URL in the certificate “/etc/nginx/ssl-certificates/mr-chili.de.crt” nginx: [warn] “ssl_stapling” ignored, no OCSP responder URL in the certificate “/etc/nginx/ssl-certificates/mr-chili.de.crt” nginx: [warn] “ssl_stapling” ignored, no OCSP responder URL in the certificate “/etc/nginx/ssl-certificates/umami.mr-chili.de.crt” nginx: [emerg] unknown “header_content_type_options” variable nginx: configuration file /etc/nginx/nginx.conf test failed

How can i Fix this in my Cloudpanel…

Use the default CloudPanel Vhost. Add only these blocks:

  location ~ /.ghost/activitypub/* {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $http_host;
    add_header X-Content-Type-Options "nosniff";
    proxy_ssl_server_name on;
    proxy_pass https://ap.ghost.org;
  }
  location ~ /.well-known/(webfinger|nodeinfo) {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $http_host;
    add_header X-Content-Type-Options "nosniff";
    proxy_ssl_server_name on;
    proxy_pass https://ap.ghost.org;
  }

The error is occurring because of this line: add_header X-Content-Type-Options $header_content_type_options;

@Mr-Chili Please specify in the question title that you use CloudPanel

Oh, sorry, great, everything’s working now, but I don’t have a profile. When I click on profile, this error message pops up again.
Am I doing something else wrong?