Хостинг власного блогу: інсталяція та налаштування (частина 2) - Ghost
Цей посібник охоплює все, що потрібно знати для налаштування блогу Ghost у Proxmox VE контейнері, включаючи покупку домену, установку, налаштування, усунення неполадок та основні кроки для стабільної роботи.
Вступ
Привіт. У попередній частині ми попрацювали над базою для нашого блогу, а саме:
- Обрали залізо
- Встановили Proxmox VE
- Підготували LXC контейнер з Linux Ubuntu 23.10
Все це докладно описано тут:
У другій (поточній) частині ми зосередимось на інсталяції блогу і всього, що повʼязано з публічним доступом до нього. Для цього нам прийдеться зареєструвати нове доменне імʼя, інсталювати блог та за допомогою тунеля надати користувачам мережі інтернет доступ до вашого локального сервера. Але про все по порядку.
Покупка доменного імені
Вибір доменного імені влучного і короткого це ціла наука, в яку я зараз не хотів би поглиблюватись, бо і сам обираю навмання. От і поточний блог у мене знаходиться на домені https://lavr.site. Думаєте я довго обирав? Ні.
Ви все правильно зрозуміли. Муки вибору імені домена лягають тяжким грузом на вас. Я лише проведу вас по технічній стороні справи у окремій публікації. Тут я описав кроки які допоможуть вам впоратись з покупкою деменного імені для вашого майбутнього блогу
Інсталяція Ghost блогу
Повертаємось до нашого контейнера в Proxmox з попередньої частини.
Зробіть резервну копію
Перше, що я порекомендую, так це зробити резервну копію існуючого контейнера, або як альтернатива можна конвертувати поточний контейнер у темплейт Proxmox і запустити новий контейнер вже з темплейта. Але і копії буде достатньо. Уразі чого ви матимете гарну точку відправки з чистою системою.
Пройдіть покрокову інструкцію з інсталяції
Зараз потрібно відкрити контейнер через консоль на тому кроці де ми раніше зупинились. Введіть логін root і ваш пароль щоб побачити подібний вивід в консолі
Welcome to Ubuntu 23.10 (GNU/Linux 6.5.11-8-pve x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
Last login: Sat Mar 9 19:59:21 UTC 2024 on tty1
root@ghost-test:~#
І саме з цього моменту вам доведеться пройти всі кроки офіційної інструкції з інсталяції і налаштування блогу Ghost в Ubuntu. Там все гарно розписано.
По інструкції виконайте всі кроки:
- Створіть нового користувача
- Оновіть пакети
- Утановіть Nginx
- Встановіть MySQL
- Встановіть Node.js
- Встановіть Ghost-CLI
- Встановіть Ghost пройшовши опитування у консолі
Інсталяція Ghost
Складністю проходження буде саме уважність до деталей. На етапі налаштування крок з ghost install
буде самим цікавим. Ось приклад того як я конфігурував свій блог
Але не очікуйте, що все одразу запрацює як написано вкінці зеленим кольором. То було б занадто просто. Ваш сервер знаходиться у вас вдома і сервіс реєстрації доменних імен про нього нічого не знає. Не спішіть пробувати відкрити свій блог.
Примітки до налаштувань
Blog URL: Вам потрібно буде вказати доменне імʼя, яке ви придбали. Для прикладу я вказую http://blog.lavr.site, тобто використовую сабдомен. Бажано оприділитись одразу яке імʼя використати: lavr.site або blog.lavr.site. Замість blog можете використовувати любе імʼя на свій розсуд. Купивши домен, ви також володієте всіма сабдоменами - *.lavr.site
MySQL hostname: вказуємо 127.0.0.1 бо саме таким чином ваша база доступна локально
MySQL username: тут важливо продовжувати працювати з root юзером та паролем відповідно до нього
Ghost database name: вигадайте щось своє
Ваша конфігурація
Для подальшого користування і обслуговування вашого блогу буде корисним запамїятати важливі параментри вашого блогу такі як:
- Каталог де знаходиться блог
- Паролі від root та admin користувачів
- Порт на якому парацює блог
- Імʼя бази даних та інші її деталі, якщо створювали іншого користувача бази
Є також непоганий спосіб подивитись більшість тих параметрів виконавши команду ghost status
Логіни та паролі
Стосовно логінів і паролів, то я зберіг їх собі у доволі простому але зручному форматі:
Container
- login: root
- pass: E******
Admin
- login: admin
- pass: T******
MySQL
- login: root
- pass: E******
Таким чином ви знатимете де і який логін та пароль використати в подальшому. Не нехтуйте подібними нотатками, бо ви не так вже й часто будете повертатись в консоль, а такі речі швидко забуваються.
Можете вважати за пораду, та всі нотатки я додаю до самого контейнера в Proxmox
Корисні команди
Ми плавно підійшли до того, що інколи вам доведеться вертатись до налаштувать блогу для того щоб, наприклад, оновити його, а для цього просто запамʼятайте собі деякі корисні команди як ось наступні:
# to quickly jumt to your blog folder
cd /var/www/ghost
# to check the status
ghost status
# to start or stop the blog
ghost start # or stop
Більше про команди Ghost наполегливо рекомендую почитати в офіційній документації або простой тримаєте це посилання під рукою:
Налаштування Cloudflare
Перейшовши до цього етапу я знову рекомендую створити нову резервну копію в Proxmox
Як би не хотілось ускладнювати, але доведеться. Платформа Cloudflare доволі громіздка і має небачену кількість налаштувань. Нам все то і не треба. Необхідні кроки я описав для вас в окремій статті. Запасайтесь кавою і печивом - це займе багато часу.
Після того, як ви запустили тунель і, як описано у вищевказаній статті, дійшли до кроку додавання ресурсів, то вам залишається лише правильно заповнити інформацію про Ghost блог.
В поле Domain обираємо ваш куплений домен(у мене це lavr.site). У конфігурації блогу ми вказували URL, це був blog.lavr.site. Тому в поле Subdomain зазначаємо blog.
В поле Type ми маємо обрати саме HTTP, а в URL вказати IP адресу свого контейнера з блогом. В попередніх кроках при налаштуванні мережі ми вручну зазначали адресу - її і використовуємо.
І от саме після збереження налаштувань в цьому кроці ви можете йти і перевіряти чи працює блог за вашою адресою.
Що робити якщо блог не працює?
Таке може статись, якщо ви були неуважні у попередніх кроках. За весь час було багато деталей, зараз по них пройдемось.
Перевірте налаштування мережі
На вашому місця я почав би з бази - це налаштування мережі. Впевніться, що вказали саме ту IP адресу
Перевірте статус блогу
Як і казав вище команда ghost status
має сказати чи запущений блог. Особливо, якщо ви перезапускали контейнер, то не завадить перевірити це.
Перевірте статус тунеля Cloudflare
Вже один раз траплялось у моїй практиці, що тунель потребував оновлення і перестав працювати. Довелось видалити старий тунель в Docker і скопіювати нову команду запуску та виконати її. Займає це від сили 5 хвилин.
Перевірте чи працює сервер
Комусь це здасться глупим, проте коли ви працюєте з сервером Proxmox віддалено, то може трапитись, що він або не підлючений до мережі (коли ви маєте тварин, дітей або активних співмешканців), або немає світла і так далі. Тепер ви відповідальні за стаблільну його роботу і тому при відсутності доступу до блогу ви самостійно маєте вирішувати подібні питання як істиний системний адміністратор
Швидкий огляд
Отже ви вопрались і блог працює. Що далі?
Ну, по-перше, ви побачите стандартний зовнішній вигляд блогу з одним дописом Coming soon. Це те що будуть бачити ваші користувачі. Блог досить пустий і потребує багато роботи. По-друге, кнопка Subscribe не буде працювати поки ви не налаштуєте поштову інтеграцію. Доречі, я її у себе повністю вимкнув і в більшості випадків і вам раджу.
Адміністрування
Але ж ви власник блогу, автор і редактор і все в одному, тому для вас існують інші двері. Додайте в браузері у адресній строці /ghost, щоб вийшло https://blog.lavr.site/ghost. Це сторінка адміністратора і саме через неї ви будете працювати.
При першому вході пройдіть реєстрацію
Після входу вас зустріне Welcome page. Вас покроково ознайомлять з деякими налаштуваннями. І це буде гарний початок вашого нового блогу!
На цьому етапі формально інсталяція та налаштування завершені.
Поради роботи з Ghost
Швиденько розповім, що б я обовʼязково зробив маючи свій блог.
Налаштуйте резервні копії
Час від часу буде необхідність чи то оновити сам блог, чи змінити якісь важливі налаштування. Перед якимись великими змінами робіть резервні копії вручну, але також ви можете налаштувати їх за роскладом. Я вже описував такий подхід з моїм Synology NAS
Важливим буде мати окреме місце і бажано за межами вашого дому, щоб зменшити ризики у разі форс мажорів по типу грабіжників чи пожарів.
Не бійтесь зробити зайву резервну копію. Краще її мати, а ніж не мати і починати все з початку.
Додайте інтеграції Google
Окрім того, що блог має працювати, достатньо важливо відслідковувати певні метрики та робити аналіз відвідувань та пошукових запитів, щоб покращувати відвудуваність та просування блогу. Про це я вже трохи писав ось тут:
Кастомізуйте свій блог
Ваш блог - ваш особистий острівець в інтернеті. Зробіть його затишним та унікальним. Він ває вирізнятись не тільки контентом алей й офрмленням.
Додавайте різні інтеграції які має в своєму арсеналі Ghost: https://ghost.org/integrations?ref=lavr.site
Про фінансову сторону
Окремо хочу відзначити, що вартісь розміщення сервера з блогом вдома дуже швидко окупиться. Ось у цій статті я розповідав, що у Ghost є свій хостинг і різні пакетні пропозиції.
Так ось ми отримали функціональніст Business пакету вартістю $199/міс, але ви відповідальні за стабільність його роботи. Тобто той 99.9% uptime SLA повністю на ваших плечах. А також у вас немає команди підтримки яку пропонував Ghost.
В першій частині я писав, що купив разово старенький енергоефективний сервер за $65, також у витрати пишемо покупку домена за $1/рік і звісно додаємо витрати на електроенергію.
Якщо покласти на терези те що я фактично витратив і повний пакет за $199/міс, то перевага відчутна одразу. Але що як порівняти з найдешевшою пропозицією з $9/міс?
Рахуємо: (65+1)/9= 7.33(3)
Виходить, що вже через 8 місяців роботи я окуплю сервер. Це при тому, що він назавжди мій і може виконувати інші корисні функції в мене вдома. А далі з витрат буде лише електроенергія і продовження домена на рік - що є мізер. Тому можна констатувати що на девʼятий місяць роботи блогу розміщеного вдома в починаєте економити як мінімум по $9 на місяць, які можна буде вкласти вже у розкрутку і рекламу.
Висновок
Ніхто не казав, що буде швидко і легко. І це дійсно так. Хочу вас привітати з завершенням важливого етапу - запуску власного блогу. Але попереду ще більше роботи - налаштувати вигляд та функціональність, писати та публікувати, просувати свій блог та поширювати його, збираючи власну аудиторію.
Як власнику блогу розміщеного вдома (чи може в офісі), під повним власним контролем, вам потрібно буде вчитись всього по троху. Треба бути і системним адміністратором і DevOps, і дизайнером, і редактором, і SMM. Тепер все у ваших руках. Це і плюс, бо по коштах це звісно має обходитись дешевше, але й мінуси є, бл займатиме певний час для отримання нових знань, що, як на мене, піде вам лише на користь.
Сподіваюсь, що вам було цікаво і ви здобули новий досвід, а також отримаєте задоволення від свого блогу. Нахей він працює стабільно!
Щоб досягти успіху, перестаньте гнатися за грошима, женіться за мрією. Тоні Шей.
Всім дякую! До зустрічі можливо на сторінках вже вашого блогу!
Socat як альтернатива Nginx (Опціонально)
Я знайшов непогану альтернативу Nginx, якщо хтось з "релігійних причин" не хоче його використовувати - це Socat. Я спробував і це працює.
Щоб перейти з Nginx на Socat потрібно виконати три кроки:
- Видалити Nginx
- Вимкнути Ubuntu Firewall (ufw) або переналаштувати
- Інсталювати та налаштувати Socat
Звісно знаючи це все легше і взагалі не встановлювати Nginx, проте ви з легкістю знайдете на просторах інтернета інформацію про те як зупинити та видалити його.
З Ubuntu Firewall (ufw) трохи складніше, але тут вже гарно все розписано: https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu
sudo ufw disable
# and to check the state
sudo ufw status
Ми це робимо, щоб дати змогу відкривати і контролювати самостійно наші порти
Налаштування Socat
Якщо попередні кроки доволі тривіальні, то з Socat я хочу трохи детальніше надати команди які виконував у себе.
# install socat
sudo apt-get install socat
# verify socat
sudo socat TCP-LISTEN:80,fork TCP:127.0.0.1:2368
# go to system
cd /etc/systemd/system/
# create new service file
sudo nano /etc/systemd/system/socat-port-forward.service
Вставте наступний текст у редактор nano
[Unit]
Description=Socat Port Forwarding
After=network.target
[Service]
ExecStart=/usr/bin/socat TCP-LISTEN:80,fork TCP:127.0.0.1:2368
[Install]
WantedBy=multi-user.target
Після створення файла сервіса надаємо права та запускаємо його
# enable as service and start
sudo chmod 644 socat-port-forward.service
sudo systemctl enable socat-port-forward
sudo systemctl start socat-port-forward