-
-
Notifications
You must be signed in to change notification settings - Fork 49
Open
Description
Hiya - Trying to install on a server running multiple websites. As such already using apache as reverse proxy; don't need (or want) to use caddy. Also, would prefer to use native mysql already running on the server. No need to run multiple instances.
Attempting to crawl before running... created simple docker compose file:
services:
ghost:
# Do not alter this without updating the Tinybird Sync container as well
image: ghost:latest
restart: unless-stopped
# This is required to import current config when migrating
env_file: stack.env
environment:
# GHOST_PORT: 8888
NODE_ENV: production
url: https://ghost.mydomain.com
#admin__url: ${ADMIN_DOMAIN:+https://${ADMIN_DOMAIN}}
database__client: mysql
database__connection__host: 172.20.0.1
database__connection__user: ghost
database__connection__password: zR79ldq...
database__connection__database: ghost
#tinybird__tracker__endpoint: https://${DOMAIN:?DOMAIN environment variable is required}/.ghost/analytics/api/v1/page_hit
#tinybird__adminToken: ${TINYBIRD_ADMIN_TOKEN:-}
#tinybird__workspaceId: ${TINYBIRD_WORKSPACE_ID:-}
#tinybird__tracker__datasource: analytics_events
#tinybird__stats__endpoint: ${TINYBIRD_API_URL:-https://api.tinybird.co}
volumes:
- /home/ghost/content:/var/lib/ghost/content
depends_on:
# tinybird-sync:
# condition: service_completed_successfully
# required: false
# tinybird-deploy:
# condition: service_completed_successfully
# required: false
activitypub:
condition: service_started
required: false
activitypub:
image: ghcr.io/tryghost/activitypub:1.1.0
restart: unless-stopped
ports:
- 8888:8888
volumes:
- /home/ghost/activitypub/content:/opt/activitypub/content
environment:
# See https://github.com/TryGhost/ActivityPub/blob/main/docs/env-vars.md
NODE_ENV: production
MYSQL_HOST: 172.20.0.1
MYSQL_USER: ghost
MYSQL_PASSWORD: zR79ldq...
MYSQL_DATABASE: activitypub
stack.env file
COMPOSE_PROFILES=activitypub
ACTIVITYPUB_TARGET=activitypub:8888 # port 8080 already in use
mail__transport=SMTP
mail__options__host=smtp.example.com
mail__options__port=465
mail__options__secure=true
[email protected]
mail__options__auth__pass=1234567890
mail__from="'Acme Support' <[email protected]>"
Set up apache to reverse proxy to port 8888 and nothing.
activitypub log output
Error: Failed to create storage instance Error: A bucket name is needed to use Cloud Storage.
at new GCPStorageAdapter (file:///opt/activitypub/dist/app.js:11366:13)
at file:///opt/activitypub/dist/app.js:11677:14
at Object.resolve (file:///opt/activitypub/node_modules/awilix/lib/awilix.module.mjs:1064:20)
at resolve (file:///opt/activitypub/node_modules/awilix/lib/awilix.module.mjs:1558:45)
at file:///opt/activitypub/node_modules/awilix/lib/awilix.module.mjs:1063:54
at Array.map (<anonymous>)
at Object.resolve (file:///opt/activitypub/node_modules/awilix/lib/awilix.module.mjs:1063:43)
at resolve (file:///opt/activitypub/node_modules/awilix/lib/awilix.module.mjs:1558:45)
at file:///opt/activitypub/node_modules/awilix/lib/awilix.module.mjs:1063:54
at Array.map (<anonymous>)
Node.js v22.18.0
03:14:18.694 INF activitypub: Message queue is disabled
file:///opt/activitypub/dist/app.js:11366
throw new Error(`Failed to create storage instance ${err}`);
ghost container log output
[2025-12-01 03:12:12] INFO Ghost is running in production...
[2025-12-01 03:12:12] INFO Your site is now available on https://ghost.mydomain.com/
[2025-12-01 03:12:12] INFO Ctrl+C to shut down
[2025-12-01 03:12:12] INFO Ghost server started in 0.364s
[2025-12-01 03:12:13] INFO Database is in a ready state.
[2025-12-01 03:12:13] INFO Ghost database ready in 0.638s
[2025-12-01 03:12:14] INFO Invalidating assets for regeneration
[2025-12-01 03:12:14] INFO Adding offloaded job to the inline job queue
[2025-12-01 03:12:14] INFO Scheduling job mentions-email-report at 53 2 * * * *. Next run on: Mon Dec 01 2025 04:02:53 GMT+0000 (Coordinated Universal Time)
[2025-12-01 03:12:14] INFO [EmailAnalytics] Initialized with SEQUENTIAL processing mode
[2025-12-01 03:12:14] INFO Pinging Explore with Payload https://explore.ghost.org/api/update {"ghost":"6.9.1","site_uuid":"8970cdfe-c203-4dff-b23e-58549f6ed1ee","url":"https://ghost.mydomain.com","theme":"source","facebook":"ghost","twitter":"@ghost","posts_total":2,"posts_last":"2025-12-01T01:24:34.000Z","posts_first":"2025-12-01T01:24:33.000Z"}
[2025-12-01 03:12:14] INFO Adding offloaded job to the inline job queue
[2025-12-01 03:12:14] INFO Scheduling job clean-expired-comped at 59 14 5 * * *. Next run on: Mon Dec 01 2025 05:14:59 GMT+0000 (Coordinated Universal Time)
[2025-12-01 03:12:14] INFO Adding offloaded job to the inline job queue
[2025-12-01 03:12:14] INFO Scheduling job clean-tokens at 11 8 20 * * *. Next run on: Mon Dec 01 2025 20:08:11 GMT+0000 (Coordinated Universal Time)
[2025-12-01 03:12:14] INFO Ghost booted in 2.169s
[2025-12-01 03:12:14] INFO Adding offloaded job to the inline job queue
[2025-12-01 03:12:14] INFO Scheduling job update-check at 42 33 14 * * *. Next run on: Mon Dec 01 2025 14:33:42 GMT+0000 (Coordinated Universal Time)
[2025-12-01 03:12:14] INFO Running milestone emails job on Thu Dec 04 2025 03:12:14 GMT+0000 (Coordinated Universal Time)
[2025-12-01 03:12:14] ERROR Could not get webhook secret for ActivityPub FetchError: invalid json response body at https://ghost.mydomain.com/.ghost/activitypub/v1/site reason: Unexpected token '<', "<!DOCTYPE "... is not valid JSON
[2025-12-01 03:12:14] ERROR No webhook secret found - cannot initialise
[2025-12-01 03:12:15] INFO URL Service ready in 1323ms
[2025-12-01 03:12:15] INFO Explore Response 200 OK
[2025-12-01 03:12:52] INFO Updating incoming recommendations on boot
[2025-12-01 03:14:37] INFO [Recommendations] Updating recommendations metadata
[2025-12-01 03:15:41] WARN Ghost is shutting down
[2025-12-01 03:15:41] WARN Ghost has shut down
[2025-12-01 03:15:41] WARN Your site is now offline
[2025-12-01 03:15:41] WARN Ghost was running for 3 minutes
Any thoughts would be greatly appreciated.
Metadata
Metadata
Assignees
Labels
No labels