Установка Ghost: Самостоятельно размещаемый блог и контент-платформа
Установка Ghost через Docker, Nginx reverse proxy, SSL-сертификат, настройка темы, система подписок и членства, email-рассылка и production-конфигурация.
Содержание
Установка Ghost: Самостоятельно размещаемый блог и контент-платформа
Ghost — это CMS-платформа с открытым исходным кодом для современного блоггинга и публикации контента. По сравнению с WordPress, Ghost быстрее, безопаснее и ориентирован на контент. Поддерживает монетизацию контента через систему членства, рассылку и интеграцию с платёжными системами.
Что такое Ghost?
Ghost — это headless CMS и платформа публикации на базе Node.js. Ключевые особенности:
- Скорость: На базе Node.js, очень быстрая загрузка страниц
- SEO: Встроенные SEO-инструменты и структурированные данные
- Членство: Бесплатная и платная система членства
- Рассылка: Встроенная отправка email-рассылок
- Темы: Система тем на базе Handlebars
- API: REST API для использования как headless CMS
Системные требования
- Сервер с Docker и Docker Compose
- Минимум 1 ГБ RAM (рекомендуется 2 ГБ)
- MySQL 8.0 или SQLite
- Действующий домен и SSL-сертификат
Установка через Docker
Production-установка с MySQL
# docker-compose.yml
version: '3.8'
services:
ghost:
image: ghost:5-alpine
container_name: ghost
restart: unless-stopped
depends_on:
- db
environment:
database__client: mysql
database__connection__host: db
database__connection__user: ghost
database__connection__password: strong-password
database__connection__database: ghost
url: https://blog.example.com
mail__transport: SMTP
mail__options__host: smtp.mailgun.org
mail__options__port: 587
mail__options__auth__user: postmaster@mg.example.com
mail__options__auth__pass: mailgun-api-key
mail__from: noreply@example.com
volumes:
- ./ghost-content:/var/lib/ghost/content
ports:
- "127.0.0.1:2368:2368"
db:
image: mysql:8.0
container_name: ghost-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root-password
MYSQL_DATABASE: ghost
MYSQL_USER: ghost
MYSQL_PASSWORD: strong-password
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
# Запустить контейнеры
docker compose up -d
# Проверить логи
docker logs ghost -f
Ghost автоматически создаёт базу данных при первом запуске. Доступ к панели администратора: https://blog.example.com/ghost.
Nginx Reverse Proxy и SSL
server {
listen 80;
server_name blog.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name blog.example.com;
ssl_certificate /etc/letsencrypt/live/blog.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/blog.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:2368;
proxy_set_header Host $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_buffering off;
}
}
Система членства и подписок
Settings → Membership
- Разрешить бесплатных участников: Включено
- Платные подписки: Через Stripe
- Доступ к записям по умолчанию: Публичный / Только для участников / Платный
Интеграция со Stripe
Settings → Membership → Stripe
1. Создайте аккаунт Stripe
2. Введите API-ключи
3. Добавьте webhook endpoint:
https://blog.example.com/members/webhooks/stripe
Email-рассылка
environment:
mail__transport: SMTP
mail__options__service: Mailgun
mail__options__host: smtp.mailgun.org
mail__options__port: 587
mail__options__auth__user: postmaster@mg.example.com
mail__options__auth__pass: mailgun-smtp-password
mail__from: "Blog Name <noreply@example.com>"
Резервное копирование
# Резервное копирование директории контента Ghost
tar -czf ghost-backup-$(date +%Y%m%d).tar.gz ./ghost-content/
# Резервное копирование базы данных MySQL
docker exec ghost-db mysqldump -u ghost -pstrong-password ghost > \
ghost-db-$(date +%Y%m%d).sql
Заключение
Ghost — мощная современная альтернатива WordPress для публикации контента. Встроенная система членства, возможности рассылки и чистый редактор делают его идеальным для профессиональных блогеров и издателей. С развёртыванием через Docker на серверах REXE вы можете запустить production-ready Ghost за считанные минуты.
Связанные статьи
Установка Coolify: Развёртывание приложений с Self-Hosted PaaS
Установка Coolify, интеграция Docker и Git, развёртывание приложений, управление базами данных, SSL-сертификаты, переменные окружения и self-hosted PaaS как альтернатива Heroku/Netlify.
Установка Nextcloud: Self-Hosted облачное хранилище и совместная работа
Установка Nextcloud с Docker, настройка Apache/Nginx, установка базы данных, SSL-сертификат, синхронизация файлов, магазин приложений и оптимизация производительности.
Управление Docker с Portainer: Веб-интерфейс для контейнеров
Установка Portainer CE, управление Docker и Kubernetes, развёртывание стеков, управление томами/сетями, авторизация пользователей, вебхуки и интеграция GitOps.