Adding ghost and fixing compose .env setup.
parent
284b4c37f4
commit
179373f04a
@ -0,0 +1,187 @@
|
|||||||
|
services:
|
||||||
|
ghost:
|
||||||
|
image: ghost:${GHOST_VERSION:-6-alpine}
|
||||||
|
restart: always
|
||||||
|
# This is required to import current config when migrating
|
||||||
|
environment:
|
||||||
|
NODE_ENV: production
|
||||||
|
url: https://${GHOST_DOMAIN:?GHOST_DOMAIN environment variable is required}
|
||||||
|
admin__url: ${GHOST_ADMIN_DOMAIN:+https://${GHOST_ADMIN_DOMAIN}}
|
||||||
|
database__client: mysql
|
||||||
|
database__connection__host: ghost_db
|
||||||
|
database__connection__user: ${GHOST_DATABASE_USER:-ghost}
|
||||||
|
database__connection__password: ${GHOST_DATABASE_PASSWORD:?GHOST_DATABASE_PASSWORD environment variable is required}
|
||||||
|
database__connection__database: ghost
|
||||||
|
tinybird__tracker__endpoint: https://${GHOST_DOMAIN:?GHOST_DOMAIN environment variable is required}/.ghost/analytics/api/v1/page_hit
|
||||||
|
tinybird__adminToken: ${GHOST_TINYBIRD_ADMIN_TOKEN:-}
|
||||||
|
tinybird__workspaceId: ${GHOST_TINYBIRD_WORKSPACE_ID:-}
|
||||||
|
tinybird__tracker__datasource: analytics_events
|
||||||
|
tinybird__stats__endpoint: ${GHOST_TINYBIRD_API_URL:-https://api.tinybird.co}
|
||||||
|
volumes:
|
||||||
|
- ${GHOST_UPLOAD_LOCATION:-./data/ghost}:/var/lib/ghost/content
|
||||||
|
depends_on:
|
||||||
|
ghost_db:
|
||||||
|
condition: service_healthy
|
||||||
|
tinybird-sync:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
required: false
|
||||||
|
tinybird-deploy:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
required: false
|
||||||
|
activitypub:
|
||||||
|
condition: service_started
|
||||||
|
required: false
|
||||||
|
networks:
|
||||||
|
- ghost_network
|
||||||
|
- lb
|
||||||
|
|
||||||
|
ghost_db:
|
||||||
|
image: mysql:8.0.44@sha256:f37951fc3753a6a22d6c7bf6978c5e5fefcf6f31814d98c582524f98eae52b21
|
||||||
|
restart: always
|
||||||
|
expose:
|
||||||
|
- "3306"
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: ${GHOST_DATABASE_ROOT_PASSWORD:?GHOST_DATABASE_ROOT_PASSWORD environment variable is required}
|
||||||
|
MYSQL_USER: ${GHOST_DATABASE_USER:-ghost}
|
||||||
|
MYSQL_PASSWORD: ${GHOST_DATABASE_PASSWORD:?GHOST_DATABASE_PASSWORD environment variable is required}
|
||||||
|
MYSQL_DATABASE: ghost
|
||||||
|
MYSQL_MULTIPLE_DATABASES: activitypub
|
||||||
|
volumes:
|
||||||
|
- ${GHOST_MYSQL_DATA_LOCATION:-./data/mysql}:/var/lib/mysql
|
||||||
|
- ./mysql-init:/docker-entrypoint-initdb.d
|
||||||
|
healthcheck:
|
||||||
|
test: mysqladmin ping -p$$GHOST_MYSQL_ROOT_PASSWORD -h 127.0.0.1
|
||||||
|
interval: 1s
|
||||||
|
start_period: 30s
|
||||||
|
start_interval: 10s
|
||||||
|
retries: 120
|
||||||
|
networks:
|
||||||
|
- ghost_network
|
||||||
|
|
||||||
|
traffic-analytics:
|
||||||
|
image: ghost/traffic-analytics:1.0.20@sha256:a72573d89457e778b00e9061422516d2d266d79a72a0fc02005ba6466e391859
|
||||||
|
restart: always
|
||||||
|
expose:
|
||||||
|
- "3000"
|
||||||
|
volumes:
|
||||||
|
- traffic_analytics_data:/data
|
||||||
|
environment:
|
||||||
|
NODE_ENV: production
|
||||||
|
PROXY_TARGET: ${GHOST_TINYBIRD_API_URL:-https://api.tinybird.co}/v0/events
|
||||||
|
SALT_STORE_TYPE: ${GHOST_SALT_STORE_TYPE:-file}
|
||||||
|
SALT_STORE_FILE_PATH: /data/salts.json
|
||||||
|
TINYBIRD_TRACKER_TOKEN: ${GHOST_TINYBIRD_TRACKER_TOKEN:-}
|
||||||
|
LOG_LEVEL: debug
|
||||||
|
profiles: [analytics]
|
||||||
|
networks:
|
||||||
|
- ghost_network
|
||||||
|
|
||||||
|
activitypub:
|
||||||
|
image: ghcr.io/tryghost/activitypub:1.1.0@sha256:39c212fe23603b182d68e67d555c6b9b04b1e57459dfc0bef26d6e4980eb04d1
|
||||||
|
restart: always
|
||||||
|
expose:
|
||||||
|
- "8080"
|
||||||
|
volumes:
|
||||||
|
- ${GHOST_UPLOAD_LOCATION:-./data/ghost}:/opt/activitypub/content
|
||||||
|
environment:
|
||||||
|
# See https://github.com/TryGhost/ActivityPub/blob/main/docs/env-vars.md
|
||||||
|
NODE_ENV: production
|
||||||
|
MYSQL_HOST: ghost_db
|
||||||
|
MYSQL_USER: ${GHOST_DATABASE_USER:-ghost}
|
||||||
|
MYSQL_PASSWORD: ${GHOST_DATABASE_PASSWORD:?GHOST_DATABASE_PASSWORD environment variable is required}
|
||||||
|
MYSQL_DATABASE: activitypub
|
||||||
|
LOCAL_STORAGE_PATH: /opt/activitypub/content/images/activitypub
|
||||||
|
LOCAL_STORAGE_HOSTING_URL: https://${GHOST_DOMAIN}/content/images/activitypub
|
||||||
|
depends_on:
|
||||||
|
ghost_db:
|
||||||
|
condition: service_healthy
|
||||||
|
activitypub-migrate:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
profiles: [activitypub]
|
||||||
|
networks:
|
||||||
|
- ghost_network
|
||||||
|
|
||||||
|
# Supporting Services
|
||||||
|
|
||||||
|
tinybird-login:
|
||||||
|
build:
|
||||||
|
context: ./tinybird
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
working_dir: /home/tinybird
|
||||||
|
command: /usr/local/bin/tinybird-login
|
||||||
|
volumes:
|
||||||
|
- tinybird_home:/home/tinybird
|
||||||
|
- tinybird_files:/data/tinybird
|
||||||
|
profiles: [analytics]
|
||||||
|
networks:
|
||||||
|
- ghost_network
|
||||||
|
tty: false
|
||||||
|
restart: no
|
||||||
|
|
||||||
|
tinybird-sync:
|
||||||
|
# Do not alter this without updating the Ghost container as well
|
||||||
|
image: ghost:${GHOST_VERSION:-6-alpine}
|
||||||
|
command: >
|
||||||
|
sh -c "
|
||||||
|
if [ -d /var/lib/ghost/current/core/server/data/tinybird ]; then
|
||||||
|
rm -rf /data/tinybird/*;
|
||||||
|
cp -rf /var/lib/ghost/current/core/server/data/tinybird/* /data/tinybird/;
|
||||||
|
echo 'Tinybird files synced into shared volume.';
|
||||||
|
else
|
||||||
|
echo 'Tinybird source directory not found.';
|
||||||
|
fi
|
||||||
|
"
|
||||||
|
volumes:
|
||||||
|
- tinybird_files:/data/tinybird
|
||||||
|
depends_on:
|
||||||
|
tinybird-login:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
networks:
|
||||||
|
- ghost_network
|
||||||
|
profiles: [analytics]
|
||||||
|
restart: no
|
||||||
|
|
||||||
|
tinybird-deploy:
|
||||||
|
build:
|
||||||
|
context: ./tinybird
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
working_dir: /data/tinybird
|
||||||
|
command: >
|
||||||
|
sh -c "
|
||||||
|
tb-wrapper --cloud deploy
|
||||||
|
"
|
||||||
|
volumes:
|
||||||
|
- tinybird_home:/home/tinybird
|
||||||
|
- tinybird_files:/data/tinybird
|
||||||
|
depends_on:
|
||||||
|
tinybird-sync:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
profiles: [analytics]
|
||||||
|
networks:
|
||||||
|
- ghost_network
|
||||||
|
tty: true
|
||||||
|
|
||||||
|
activitypub-migrate:
|
||||||
|
image: ghcr.io/tryghost/activitypub-migrations:1.1.0@sha256:b3ab20f55d66eb79090130ff91b57fe93f8a4254b446c2c7fa4507535f503662
|
||||||
|
environment:
|
||||||
|
MYSQL_DB: mysql://${GHOST_DATABASE_USER:-ghost}:${GHOST_DATABASE_PASSWORD:?GHOST_DATABASE_PASSWORD environment variable is required}@tcp(ghost_db:3306)/activitypub
|
||||||
|
networks:
|
||||||
|
- ghost_network
|
||||||
|
depends_on:
|
||||||
|
ghost_db:
|
||||||
|
condition: service_healthy
|
||||||
|
profiles: [activitypub]
|
||||||
|
restart: no
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
caddy_data:
|
||||||
|
caddy_config:
|
||||||
|
tinybird_files:
|
||||||
|
tinybird_home:
|
||||||
|
traffic_analytics_data:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
lb:
|
||||||
|
ghost_network:
|
||||||
|
driver: bridge
|
||||||
|
internal: true
|
||||||
Loading…
Reference in New Issue