Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted

Ghostv6.65.0

Платформа для блога и рассылки: публикации, платная подписка и письма читателям в одном приложении, без комиссии за подписчиков - замена WordPress и Substack.

После создания сервера Ghost ставится автоматически: docker поднимает приложение и MySQL, Caddy отдельным контейнером выпускает Let's Encrypt и открывает доступ по HTTPS на magic-DNS домене. Владельца блога установка заводит не всегда - смотрите «Как войти» ниже, это зависит от того, указали ли вы e-mail при заказе.

Что внутри

Ghost (Node.js)
приложение: публичный сайт, админка /ghost/, Admin API и Content API. Тема по умолчанию - Source.
MySQL 8.4
база (посты, подписчики, настройки). Ghost 6 в проде официально требует MySQL 8.
Caddy
reverse-proxy и авто-TLS (Let's Encrypt), отдельный контейнер. Ghost слушает только localhost.

Безопасность

  • Владелец решает сам, кто им станетесли e-mail не указан при заказе, окно регистрации открыто до первого, кто зайдет в /ghost/; откройте страницу сразу после получения доступа к серверу.
  • fail2banбанит IP после серии неудачных попыток входа по SSH.
  • Секреты не в compose-файлепароли базы лежат в .env с правами 600, а не в тексте docker-compose.yml.
  • HTTPS + security-заголовкиLet's Encrypt (авто-продление), HSTS, X-Content-Type-Options, Referrer-Policy.

Как войти

  1. Адрес формируется из IP сервера: замените точки на дефисы и добавьте .fatmetal.net. Пример: IP 45.15.159.10 → https://45-15-159-10.fatmetal.net/. Админка - /ghost/.

  2. Если при заказе указали e-mail владельца - войдите этим адресом и паролем сервера (он в личном кабинете). Если не указывали - Ghost никого не заводит сам: откройте /ghost/, там форма регистрации, и первый, кто ее заполнит, станет владельцем блога.

  3. Вошли паролем сервера - сразу смените его в Settings → Staff → ваш профиль. Название сайта и SMTP настройте там же - без SMTP не входит никто, кроме как с первого браузера (см. «Требования»).

Важно

Вход в админку с нового устройства (другой браузер, другой компьютер, после очистки cookies) требует код подтверждения из письма - без настроенного SMTP он не уйдет, и войти не получится никому, кроме как с самого первого браузера. Массовая рассылка подписчикам и вход читателей по email-подписке (magic-link) тоже требуют SMTP. Прием денег за платные подписки - только через Stripe (Settings → Membership), других провайдеров нет. Данные - в двух томах docker: mysqldata (база) и ghostcontent (картинки, темы), бэкапьте оба.

Лицензия

Ghost - открытый код под лицензией MIT: свободное использование, в том числе коммерческое.

Свой домен

Наведите A-запись на IP этого сервера, впишите домен в DOMAIN= (/etc/ghost-mp/params.env) и запустите bash /opt/ghost-mp/install.sh еще раз - скрипт идемпотентен, перепишет .env, docker-compose.yml и Caddyfile под новый адрес и перевыпустит TLS. url Ghost обязан совпадать с публичным адресом, иначе ссылки и админка ведут на старый домен.

Требования

Ghost-стек: в простое держит около 0,7 ГБ RAM (Ghost + MySQL + Caddy), образы - около 2,4 ГБ, диск после установки - 4,8 ГБ. Тариф CPU2-RAM4-DISK50.

Подробный разбор с замерами и скриншотами →
Ghost450 ₽/месЗапустить →