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.
Как войти
Адрес формируется из IP сервера: замените точки на дефисы и добавьте
.fatmetal.net. Пример: IP45.15.159.10→https://45-15-159-10.fatmetal.net/. Админка -/ghost/.Если при заказе указали e-mail владельца - войдите этим адресом и паролем сервера (он в личном кабинете). Если не указывали - Ghost никого не заводит сам: откройте
/ghost/, там форма регистрации, и первый, кто ее заполнит, станет владельцем блога.Вошли паролем сервера - сразу смените его в
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.