Как я сэкономил 20 тысяч рублей на движке Ghost, потратив 20 минут времени
Я долго искал движок с удобным редактором, чтобы собрать все свои проекты, заметки и контакты в одном месте. И искал редактор простой и понятный, в идеале как у Notion: с возможностью Markdown, загрузкой изображений прямо из буфера обмена и минималистичным интерфейсом.
И нашел идеальный движок для сайта-портфолио Ghost, но мне не понравилась цена — почти 25 тысяч рублей в год. Затем выяснил, что его можно поднять бесплатно на арендованном сервере, введя несколько команд в терминале. Делюсь пошаговой инструкцией, как это сделать.
Почему устарели WordPress, Эгея и остальные классические движки
Мои две главные претензии к популярным движкам это
- сложный админский интерфейс
- отсутствие wysiwyg-редактора
Чтобы написать короткий текст в Wordpress-е требуется куча телодвижений, нельзя просто открыть и начать писать. Когда движок предлагает вручную писать HTML-теги и по сто раз переключаются между превью и исходным кодом, заливать картинки на хостинг, а потом вставлять ссылки я чувствую боль.
Когда поработаешь в Notion, возвращаться к старым редакторам кажется такой же потерей в комфорте, как внезапно получить Nokia 5300 после большого экрана одиннадцатого айфона.
Update
С 2018 года Wordpress использует новый крутой редактор Gutenberg который не хуже Notion. На момент написания статьи я не знал об этом.
Что такое wysiwyg редактор и почему я готов работать только с ним
wysiwyg (what you see is what you get) — это тип редактора, в котором текст форматируется сразу, без переключения между исходным кодом и финальной версией.
Именно такой редактор используется на vc.ru, и такого же удобства можно достичь на собственном сайте-визитке, если правильно выбрать движок
C какими требованиями я искал идеальный движок
- Держать контент на своем хостинге — сервисы закрываются (от narod.ru до google+), рано или поздно все становится недоступным, контент лучше держать у себя. Также я не хочу зависеть от правил и админов площадки: кейс или статью легко могут удалять по каким-то фейковым жалобам, как это происходит на Medium и LiveJournal
- Возможность подключить свой домен
- Минимум интерфейса — в идеале интерфейса CMS вообще не должно быть видно, админская панель не нужна, посты должны редактироваться, создаваться и просматриваться в одном месте
- Полноценный wysiwyg редактор — поддержка разметки Markdown и обработка её в реальном времени, подсветка кода, вставка картинок из буфера обмена
- Минималистичный внешний вид — я не хочу заниматься версткой и темами, подходящее оформление должно быть из коробки
Расскажу, с чем я сравнивал Ghost и как пришел к идее, хочу визитку именно на нем.
Notion — современный вариант Evernote
Я огромный фанат Notion. Это самый продвинутый инструмент для заметок, создания wiki, простых списков задач и многого другого.
В Notion можно работать командой, есть огромная библиотека шаблонов: таблицы, календари, галерея, даже списки наподобие Trello.
Notion можно превратить в движок для публичного блога, но к сожалению, для этого он плохо приспособлен. Да, вы можете опубликовать все страницы в интернет как обычный сайт, вот даже пример сайта на notion.
Но к нему нельзя прикрутить свой домен, перемещение по страницам выглядит странно, иногда они открываются в виде попапов, а не отдельных страниц.
Плюсы/минусы Notion:
✅ Идеальный редактор
✅ Умеет сложное форматирование
✅ Поддержка шаблонов страниц
❌ Нет self-hosted версии
❌ Плохо подходит для сайта
❌ Нельзя подключить свой домен
❌ Мусор в URL, нельзя задать адрес страницы самостоятельно
❌ Неудобная навигация, попапы вместо отдельных страниц
❌ Нет комментариев
Teletype.in — минималистичный сервис для блогов
Teletype.in очень похож на Medium, он минималистичен, поддерживает markdown и создается русскими разработчиками.
По стилю напоминает telegra.ph, сервис от команды Telegram, но в отличие от телеграф в нем можно зарегистрироваться и вести цельный блог от своего аккаунта. Можно подключить свой домен.
Пока я тестировал Teletype, вылезли его проблемы: я подключил домен и попробовал перенести туда пару статей, но случайно сломал верстку и получил неработающую страницу поста. Так что продукт пока сыроват.
Это компенсируется тем, что разработчики говорят на русском и быстро отвечают на баг-репорты в Telegram: они почти сразу приняли мои запросы и за пару дней их исправили.
Редактор пока не настолько удобный и выверенный в мелочах, как Notion, в комментариях нельзя писать анонимно или через соцсети.
Плюсы/минусы Teletype:
✅ Нормальный редактор
✅ Можно подключить свой домен
✅ Удобно добавлять и редактировать посты
✅ Можно задать свой URL для каждого поста
❌ Нельзя использовать другой хостинг
❌ Редактор тем не менее сыроват
❌ Почти невозможно настроить профиль
❌ Баги в проекте
Ghost — и почему я остановился именно на нем
Ghost — современная и симпатичная CMS с мощным редактором, почти таким же, как в Notion: нормальная поддержка рендера markdown в реальном времени, картинки вставляются простым Ctrl+V, чистый кайф.
Ghost был бы идеальный движком, если бы не проблемы с оформлением и внешним видом сайта. Тема по умолчанию не настраивается так же просто, как в Wordpress, в ней вообще нет настроек: нельзя, например, отключить меню или футер.
Есть галерея официальных тем, также можно поискать в Theme Forest, там есть еще порядка полторы сотни свежих. Я пока не нашел свою идеальную, поэтому мой вариант — сверстать свою тему самостоятельно один раз, а затем наслаждаться удобным редактором.
В Ghost есть много интересных функций прямо из коробки и плагинов, например платные подписки на закрытый контент (как на Patreon). Он очень популярен у компаний, которые ведут там корпоративные блоги, среди клиентов Ghost ведут Tinder, Revolut и Nasa.
Движок активно дорабатывается разработчиками, это можно увидеть по их Github.
Плюсы и минусы Ghost:
✅ Идеальный редактор
✅ Полный контроль над сайтом и оформлением
✅ Можно хостить самостоятельно
✅ Легко подключить собственный домен
✅ Можно подключить любой сервис комментариев
❌ Темы нельзя настроить без правки кода и исходников
❌ Создавать и редактировать посты приходится через админку
Лайфхак: как пользоваться Ghost почти бесплатно
Сколько я на самом сэкономил?
Как я уже говорил, Ghost — платный движок и стоимость начинается от $29 в месяц, это 2047 рублей в месяц или 24 541 рублей в год.
Если у вашего блога больше 100 000 просмотров, цена уже растет до 66930 рублей в год.
Я нашел способ развернуть свой блог, заплатив только за хостинг — вместе со всеми скидками, он обходится в 5529.6 рублей в год.
Итого 19011.4 рублей экономии в год
Как это работает без взлома системы?
Дело в том, что Ghost — это опенсорсный проект, значит его исходный код доступен всем бесплатно и его можно запускать, дорабатывать и создавать свои модификации.
Создатели Ghost не просто выложили исходный код проекта, но и упаковали его в docker-контейнер, чтобы люди могли быстро поднять рабочую версию.
Я не буду углубляться в технические детали и просто покажу, как запустить из этого контейнера Ghost на арендованном VPS-сервере.
Это занимает где-то 20 минут времени, но экономия в 17 тысяч стоит моих 20 минут.
Пошаговая инструкция: как поставить Ghost почти бесплатно
Для начала вам понадобится VPS-сервер с Docker.
Что такое VPS-сервер: это вид хостинга, в котором вы полностью управляете настройками сервера.
От обычного shared-хостинга он отличается также, как хостел отличается от собственной квартиры — кроме вас никого на вашей территории нет, вы сами настраиваете все, как пожелаете
Я покажу, как запустить Ghost-блог на примере VPS-ки от ruvds, там можно заказать сервер сразу с предустановленным Docker — он включен в маркетплейс и при настройке движка будет меньше хлопот.
1. Заказываем сервер с Docker. Для этого жмем на маркетплейс, затем выбираем дата-центр.
Дата-центр лучше выбирать географически ближний к вашему ядру аудитории — так выше отклик сайта. Берем rucloud в Москве
2. Выбираем из маркетплейса Docker
3. Чтобы получить максимальную скидку в 40%, я беру оплату за год.
30% из них за предоплату и плюс 10% по промокоду vc10 — если ввести его на этапе оплаты
4. Затем переходим во вкладку мои серверы. Ждем минут 5-10, чтобы сервер создался.
5. Дальше будем работать в терминале. Найдите Launchpad, начните вводить Termial и откройте программу. Если у вас windows, жмите Win + X.
6. Подключаемся к серверу по SSH. Для этого вводим в терминале команду
Где вместо 194.87.102.150 надо ввести ip-адрес сервера, который вы создали. Найти ip-адрес и пароль в личном кабинете
Дальше терминал запросит пароль, вводим.
7. Теперь надо установить на сервере Apache. Он позволит картинке с блогом появиться в браузере. Вводим в терминале команды
8. Теперь устанавливаем сам Ghost. Не забудьте заменить ip-адрес 194.87.102.150 в команде на ip-адрес вашего сервер
Вы не поверите, но это все
Теперь, если вы откроете в браузере страничку http://ваш-ip:2368, то увидите приветственную страницу движка Ghost
Остались только детали настройки сервера:
- привязать доменное имя
- настроить SSL-сертификат
- сделать так, чтобы блог открывался сразу на главной
Заканчиваем настройку сайта
Привязываем к блогу доменное имя
Я купил самое дешевое доменное имя vctestaccount.club за доллар. Покажу на его примере, как привязать к VPS доменное имя
1. В настройках ns-записей регистратора, добавляем A-запись с значением нашего IP
2. Удаляем остальные записи, они не нужны
3. Дальше открываем терминал. Вводим там команды (вместо example.com вводите свое доменное имя)
4. Затем открываем этот файл с помощью редактора nano этой командой
Прямо в терминале откроется файл — содержимое главной страницы вашего сайта. Напишите в нем любой текст, я написал hello world.
Затем нажмите Сtrl + X, редактор спросит сохранить ли файл. Введите Y и нажмите Enter
5. Дальше вводим команды
6. И снова открылся редактор.
Вам нужно заменить выделенуню эту строчку на
добавить в файл строчку
Вот так будет выглядеть готовый файл
Выходим из редактора, нажав CTRL + X, вводим Y (на запрос, сохранить ли файл) и жмем Enter
7. Активируем изменения командами
Ура, теперь сайт начал открываться по нашему доменному имени, а в нем — то, что вы написали в файле главной страницы
Пока сайт будет открываться только по адресу http://ваш-домен.com/
Стоит попытаться войти через безопасное соединение https://ваш-домен.com/, как страница будет выводить ошибку. Чтобы починить это, вам надо настроить SSL-сертификат.
Настраиваем SSL-сертификат
1. Вводим команды
На этом этапе у вас попросят email. Смело вводите, затем вводите букву А и нажимайте enter
2. Теперь у вас спросят, надо ли переадресовывать весь трафик на безопасное соединение. Говорите «да», то есть вводите 2 и жмите enter
Вуаля! Теперь сайт откроется и через HTTPS, а сверху появится значок
Делаем так, чтобы блог открывался на главной
Возвращаемся в терминал вводим команду
Откроется файл, куда надо вставить текст
Вот как это должно получиться
Теперь закрываем файл через CTRL + X, вводим Y и нажимаем enter
4. Вводим команды
Все. Блог открылся на главной по вашему домену
Выводы
Некоторые платные SaaS-версии продуктов доступны бесплатно и даже легально, если копнуть чуть глубже. Если вы видите слова OpenSource и Docker, то вероятно все получится.
Если у вас не работают какие-то команды или вы запутались в процессе — пишите в комментарии и я постараюсь помочь.
Судя по имени автора и выбранному хостингу со ссылками, статья больше похожа на рекламу серваков. Тонкий хитрый план, но нет.
Конечно не без рекламы, тем более в корпоративном аккаунте.
Но инструкция сработает и для других VPS, тоже будет дешевле, чем напрямую платить Ghost
Реклама не реклама, но статья полезная.
Зачастую нехватает таких разжеванных мануалов на vc.
Уже пошел смотреть особенности cms.
Спасибо, рад, что понравилось
Если выбрать Digital Ocean, не придется возиться с Апаче, сертификатом, гонять туда-сюда .conf и вот это всё. Может, получится сократить этот гайд аж втрое или вчетверо. А цена останется такая же, примерно 5-6 $ в месяц.
↓
https://marketplace.digitalocean.com/apps/ghost
Есть опыт с Ghost, использовал для коммерческих проектов. Могу сказать, что у Ghost есть два серьезных недостатка, которые делают его слабо применимым для крупных проектов.
Во-первых, сколько-либо серьезно расширять функционал Ghost нереально без изменения исходного кода Ghost, так как система дополнений крайне ограничена.
Во-вторых, у Ghost есть техническое ограничение - он может работать только на одном сервере. Если вы захотите развернуть кластер из Ghost‘ов, вам это не удастся без серьезных изменений в исходном коде. Без изменений, часть серверов будет просто периодически валиться и выдавать 50x-ые или 405-ую ошибки.
Wordpress, сколько бы я его не ненавидел, более пригоден для применения в кластере, хоть и там есть подвохи (но минимальные)