Files
public/Docker/Ghost/docker-compose.yaml
T
thesabear 6c29d79e18 Add sanitized compose files for 21 rocky-docker stacks missing from the mirror
audiobookshelf, bazarr, beets, dashy, dockhand, docker-socket-proxy,
emby, ghost (+umami), jellyfin, kodi-mariadb, kopia, lidarr,
music-assistant, prowlarr, qbittorrent, radarr, seerr, sonarr, tdarr,
tinymediamanager, trilium — these run in the fleet today but had no
public entry at all. Same sanitization convention as the rest of the
repo (paths -> /path/to/..., secrets left as bare ${VAR} refs, no CA
trust details).
2026-07-06 02:05:09 +03:00

83 lines
2.1 KiB
YAML

services:
ghost:
image: ghost:latest
container_name: ghost_blog
restart: unless-stopped
ports:
- "${HTTP_PORT}:2368"
depends_on:
- ghost_db
environment:
NODE_ENV: production
TZ: ${TZ}
# Ghost URL
url: ${GHOST_URL}
# SMTP
mail__transport: ${SMTP_TRANSPORT}
mail__options__host: ${SMTP_HOST}
mail__options__port: ${SMTP_PORT}
mail__options__secure: "false"
mail__options__auth__user: ${SMTP_USER}
mail__options__auth__pass: ${SMTP_PASSWORD}
# Database
database__client: mysql
database__connection__host: ${DB_HOST}
database__connection__user: ${DB_USER}
database__connection__password: ${DB_PASSWORD}
database__connection__database: ${DB_NAME}
volumes:
- /path/to/ghost/content:/var/lib/ghost/content
networks:
- blog-net
ghost_db:
image: mysql:8
container_name: ghost_mysql
restart: unless-stopped
environment:
TZ: ${TZ}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${DB_NAME}
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_PASSWORD}
volumes:
- /path/to/ghost/db_data:/var/lib/mysql
- /path/to/ghost/init:/docker-entrypoint-initdb.d:ro
networks:
- blog-net
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
container_name: umami_analytics
restart: unless-stopped
ports:
- "${UMAMI_PORT}:3000"
depends_on:
- umami-db
environment:
TZ: ${TZ}
DATABASE_URL: postgresql://${UMAMI_DB_USER}:${UMAMI_DB_PASSWORD}@umami-db:5432/${UMAMI_DB_NAME}
DATABASE_TYPE: postgresql
APP_SECRET: ${UMAMI_APP_SECRET}
IGNORE_IP: ${UMAMI_IGNORE_IP}
networks:
- blog-net
umami-db:
image: postgres:15-alpine
container_name: umami_postgres
restart: unless-stopped
environment:
TZ: ${TZ}
POSTGRES_DB: ${UMAMI_DB_NAME}
POSTGRES_USER: ${UMAMI_DB_USER}
POSTGRES_PASSWORD: ${UMAMI_DB_PASSWORD}
volumes:
- /path/to/umami/db_data:/var/lib/postgresql/data
networks:
- blog-net
networks:
blog-net:
external: true