Публикации · без KYC
Хостинг Ghost на офшорном VPS
Ghost — быстрая современная платформа для публикаций, которую можно развернуть самостоятельно за считанные минуты на офшорном VPS, сохраняя свои тексты, подписчиков и платежи вне сторонних облачных сервисов.
Что это такое
Ghost — это CMS с открытым исходным кодом на Node.js, созданная для блогов, рассылок и сайтов с платными подписками, с встроенными email-подписками, платными тарифами и удобным редактором Markdown. Поставляется в виде официального Docker-образа на базе MySQL 8 и обслуживает ваш сайт через собственный порт за обратным прокси.
Почему размещать это оффшорно
Запуск Ghost на VPS без KYC с оплатой криптовалютой означает, что ваша публикация не привязана к аккаунту, который можно связать с личностью, заблокировать на платформе или выдать по запросу. Благодаря офшорным локациям privacy-уровня и безлимитному трафику вы сохраняете полный контроль над контентом, списком подписчиков и выплатами Stripe — без хостинг-провайдера, контролирующего ваши слова.
Развёртывание
Рабочая эталонная конфигурация
Скопируйте это на новый инстанс ChainVPS. Замените плейсхолдеры и запустите.
services:
ghost:
image: ghost:5-alpine
restart: always
ports:
# Привязывайте только к localhost; TLS терминируйте на обратном прокси (nginx/Caddy)
- "127.0.0.1:2368:2368"
environment:
url: https://blog.example.com
NODE_ENV: production
database__client: mysql
database__connection__host: db
database__connection__port: 3306
database__connection__user: ghost
database__connection__password: CHANGE_ME_DB_PASSWORD
database__connection__database: ghostdb
# Необязательно: исходящий SMTP для email подписчиков/рассылок:
# mail__transport: SMTP
# mail__options__host: smtp.example.com
# mail__options__port: 587
# mail__options__auth__user: [email protected]
# mail__options__auth__pass: CHANGE_ME_SMTP
volumes:
- ghost-content:/var/lib/ghost/content
depends_on:
- db
db:
image: mysql:8.0
restart: always
command: --default-authentication-plugin=caching_sha2_password
environment:
MYSQL_ROOT_PASSWORD: CHANGE_ME_ROOT_PASSWORD
MYSQL_DATABASE: ghostdb
MYSQL_USER: ghost
MYSQL_PASSWORD: CHANGE_ME_DB_PASSWORD
volumes:
- ghost-db:/var/lib/mysql
volumes:
ghost-content:
ghost-db:
# Развёртывание:
# apt-get update && apt-get install -y docker.io docker-compose-v2
# docker compose up -d
# Затем настройте обратный прокси (Caddy/nginx) на 127.0.0.1:2368 для добавления HTTPS,
# и укажите в `url:` ваш настоящий https:// домен перед первым запуском.
Файрвол
Порты для открытия
| Порт | Протокол | Назначение |
|---|---|---|
| 2368 | TCP | HTTP-порт приложения Ghost — держите привязанным к 127.0.0.1 и обслуживайте через обратный прокси, никогда не открывайте публично |
| 443 | TCP | HTTPS для внешнего доступа через ваш обратный прокси (Caddy/nginx) |
| 80 | TCP | HTTP для выпуска сертификатов ACME/Let's Encrypt и редиректа на 443 |
| 3306 | TCP | MySQL — только внутренняя сеть Docker, никогда не публикуйте на хост |
Подбор оптимального размера
Какой план вам нужен
VPS Nano/Small (1-2 vCPU, 2 GB RAM)
Личный блог или небольшая рассылка. Ghost + MySQL прекрасно помещаются; добавьте 1 ГБ swap для подстраховки.
VPS Pro (2-4 vCPU, 4-8 GB RAM)
Активное издание с платными подписками, постами с большим количеством изображений и регулярными email-рассылками. Запас мощности для кэша MySQL и всплесков трафика.
Dedicated (dedicated cores, 16 GB+ RAM, NVMe)
Сайт с высокой посещаемостью или мультиблог-конфигурация с большими медиатеками; изолируйте MySQL и раздавайте медиа через кэш для стабильной задержки.
Лучшие локации: Для издания, которое должно оставаться в сети независимо от давления с требованием удаления контента, выбирайте локацию ChainVPS privacy-уровня: Исландия (IS), Швейцария (CH), Румыния (RO), Молдова (MD), Нидерланды (NL) или Люксембург (LU). CH и IS отличаются сильной защитой прессы/свободы слова и законодательством о приватности; NL и LU обеспечивают низкую задержку для европейской аудитории с безлимитным трафиком для сайтов с большим количеством изображений и рассылок.
Обеспечьте полную защиту
Чек-лист по усилению защиты
- Никогда не публикуйте порт 2368 или 3306 на 0.0.0.0. Держите Ghost привязанным к 127.0.0.1, а MySQL — только во внутренней сети Docker; открывайте сайт исключительно через TLS-обратный прокси (Caddy автоматически выпускает сертификаты Let's Encrypt, либо используйте nginx + certbot).
- Укажите переменную окружения `url` с вашим реальным https:// доменом ещё до самого первого запуска. Ghost встраивает этот URL в ссылки на ресурсы, и изменить его позже можно только через обновление базы данных и сброс кэша.
- Защитите панель администратора: при первой настройке задайте длинный уникальный пароль и ограничьте доступ к /ghost/ по белому списку IP или basic-auth на прокси, если публикуете материалы из фиксированных локаций. Включите встроенную 2FA для сотрудников Ghost.
- Регулярно делайте резервные копии обоих томов: выгружайте MySQL (`docker compose exec db mysqldump -u ghost -p ghostdb`) и архивируйте том content (`/var/lib/ghost/content`, где хранятся изображения и темы). Отправляйте зашифрованные резервные копии в хранилище ChainVPS или за пределы сервера.
- Фиксируйте теги образов (ghost:5-alpine, mysql:8.0) и обновляйтесь осознанно через `docker compose pull && docker compose up -d`; перед переходом на новую мажорную версию Ghost проверяйте совместимость тем и интеграций, а также держите включённой защиту от DDoS, которая входит в тарифный план, на границе сети.
Разверните на
Правильный продукт ChainVPS
Вопросы
Хостинг Ghost — FAQ
Обязательно ли Ghost нужен MySQL, или можно использовать SQLite?
Ghost 5 официально требует MySQL 8 для продакшена. Файл compose выше автоматически настраивает MySQL 8. SQLite поддерживается только для локальной разработки и не рекомендуется для боевого офшорного развёртывания.
Как добавить HTTPS?
Сам Ghost отдаёт обычный HTTP на порту 2368. Поставьте перед ним обратный прокси — проще всего Caddy (он автоматически выпускает и продлевает сертификаты Let's Encrypt), либо используйте nginx с certbot. Настройте его на 127.0.0.1:2368 и укажите в `url` Ghost ваш https:// домен.
Можно ли отправлять рассылки без привязки к сторонней идентификации?
Ghost отправляет письма подписчикам через любой SMTP-провайдер или Mailgun. Для конфигурации, ориентированной на приватность, используйте SMTP-релей, принимающий оплату криптовалютой или требующий минимальной регистрации, и настройте его через переменные окружения mail__. Для транзакционных писем всё равно нужен домен отправки с корректными SPF/DKIM для доставляемости.
Сколько места на диске потребуется?
Ядро Ghost вместе с MySQL занимает немного места (несколько сотен МБ). Реальный рост происходит за счёт загруженных изображений и видео в томе content. Для лёгкого блога достаточно 20-40 ГБ; для сайтов с большим количеством изображений или платными подписками стоит закладывать NVMe-хранилище и регулярные резервные копии тома content.
Выдержит ли мой сайт всплески трафика или DDoS-атаки?
Тарифы ChainVPS включают защиту от DDoS на границе сети, а трафик безлимитный, поэтому вирусный пост не приведёт к дополнительным платежам за превышение. При резких всплесках запросов включите кэширование просмотров страниц на уровне прокси и переходите на VPS Pro или выделенный сервер, если стабильно наблюдаете высокую конкурентность запросов.
Больше для самостоятельного хостинга
Другие стеки в один клик
Разверните Ghost
в течение следующих 60 секунд.
Безлимитный трафик · DDoS-защита включена · 21 криптовалюта · без KYC.