Хостинг власного блогу: залізо та віртуальний контейнер (частина 1) - Ghost
Ця стаття являє собою покрокову інструкцію про те, як запустити блогу Ghost в домашніх умовах на сервері Proxmox VE, який встановлений на міні сервері у вас вдома. Розберемо передумови, залізо та почнемо...
Вступ
У першій частині ми роглянемо лише залізо та підготовку контейнера, а у другій частині пройдемось покроково по установці блогу та підключенні доменного імені, щоб надати пулічний доступ до нього.
Я не маю наміру розписувати тут всі кроки дуже детально, так як сам проходив їх в різний час і для різних задач. Спробую повʼвязати найнеобхідніше та направити вас там де це можливо, інколи використовуючі сторонні ресурси.
Передумови
І зразу ж ми почнемо перелічувати те, що нам знадобиться
- Залізо
- Домашній міні компʼютер. Бажано безвентиляторний з низьким споживанням енергії, але достатньо потужним, щоб окрім вашого блогу працюв і Proxmox VE
- USB флешка
- Віртуалізаця та контейнеризація
- Proxmox Virtual Environment (Proxmox VE) - це віртуалізаційне середовище, яке базується на відкритих технологіях, таких як KVM (Kernel-based Virtual Machine) для віртуалізації на рівні ядра та LXC (Linux Containers) для контейнеризації.
- Docker - це популярна платформа для контейнеризації програмного забезпечення.
- ISO образ Ubuntu 23.10
- Установка Ghost:
- Ubuntu 20.04 or Ubuntu 22.04
- NGINX (minimum of 1.9.5 for SSL)
- A supported version of Node.js
- MySQL 8
- Systemd
- A server with at least 1GB memory
- Доменне імʼя
- Cloudflare Websites, Cloudflare Zero Trust & Tunnels
Як бачимо досить багато всього. Яле не все так страшно.
Залізо
На локальній торговій площадці я знайшов непогане залізо не лише для блогу, але й в цілому для хоумлаббінгу. Це був Fujitsu Futro s920, який мені перепав за ціною в 1400 гривень (~$36)
І це точно не залізо моєї мрії, проте я був приємно здивований від його проворності. Вбачаю, що тема вибору домашніх міні ПК має бути розкрита глибше в окремих дописах.
На борту він мав 4 Gb DDR3 1600Mhz та mSata SSD aж на цілих 8 Gb. Звучить мішно? Мені було не дуже.
Бонусом такого старого заліза є те, що технології вже застаріли і комплектуючі коштують помірних грошей, то ж я доставив в нього:
- 16Gb (2x8) SO-DIMM DDR3 1600 Mhz замість старих 4 Gb
- Ціна: 550 грн (~$13,57)
- mSATA SSD 512 Gb замість 8 Gb
- Ціною 700 грн (~$17,27)
Трохи поганявши пилюку маємо компʼютер який працюватиме 24/7, а легкий апгрейд дозволить мені в подальшому запускати не лише блог.
Загальна вартість становить: 2650 грн (~$65)
Кого цікавлять деталі цього девайсу рекомендую переглянути це відео
Поради по залізу
- Найшоловніше - це енергоефективність, якщо ми говоримо лише про запуск блогу. Тому звертайте на це уваго, бо для стабільної роботи вашого блогу сервер має працювати 24/7/365.
- Для стабільної роботи під час відключень світла продумайте як забезпечити живленням ваш роутер і сервер. Тут якраз енергофективність матиме значну роль.
- Описане вище має навести вас на думку, що використання старого ПК у якості сервера буде недоцільним через його споживання. У співвідношенні потужність на ватт енергії старий домашній ПК завжди програватиме старому тонкому клієнту, міні-серверу чи неттопу.
- Раджу дивитись на старе б/в залізо для початку. Потужним сервером ви вспієте обзавестись за потреби.
- Я б уже не дивився на рішення, в яких менше 4 ядер, бо 4-х ядерних міні-серверів в достатку на ринку
- 8 Gb або більше це те що я рекомендую, а от 2 або 4 Gb - це лише коли ви впевнені в тому, що робите.
- Raspberry Pi? Так, гарний варіант, можна дивитсь і в його сторону, особливо якщо вже маєте.
Proxmox VE
Якщо ви не були налякані першим розділом з передумовами, то такі задачі як установити операційну стистему не мають бути складними для вас.
Тягнемо міні компʼютер на стіл. Підключаємо клавіатуру, мишу та екран. Перевіряємо справність. В мене на старому SSD стояв Windows 8, але він нам більше не підходить.
Хочу відправити вас в інший допис, який дуже гарно і покроково розповідає як підготуватись та встановити Proxmox VE
Вам потрібно виконати всі кроки з наступних розділів:
- Creating Proxmox USB Boot Media
- Installing Proxmox VE 8.1
- Proxmox Post Install Configuration
- Intel Microcode Update (Optional)
По завершенню всіх кроків у вас має бути доступ до вашого сервера через Web UI. Своєму серверу я дав назву Stargate (бо хотів використовувати його як роутер). На скріншоті в лівій панелі ви вже можете бачити блог Ghost і багато іншого, але до того ще далеко.
Підготовка темплейта
Для запуску Linux контейнера (LXC) в Proxmox нам знадобиться викачати підготовлений темплейт, а для цього зробіть наступне:
- Відкрийте ваш Storage/диск, зазвичай він у вас буде один і з назвою local
- Виберіть CT Templates
- Нажміть на кнопку Templates
- У вікні в полі пошуку введіть ubuntu
- Оберіть потрібну вервсію (я обрав 23.10) та завантажте її
Створюємо новий контейнер
Тепер в нас є темлейт для створення нового контейнера з Ubuntu 23.10. В самому правому верхньому куті натискаємо кнопку Create CT і заповнюємо всі необхідне. Пройдусь з вами покроково.
Крок 1. Загальні відомості
Задаємо Hostname (любе імʼя) та вводимо пароль, який пізніше буде потрібен для логіну в консолі під root користувачем
Крок 2. Обираємо попереднь закачаний темплейт
Крок 3. Задаємо розмір диску системи
Я обрав 32 GB, бо мав бажання погратися з різними моделям. Враховуючи свої задачі ви могли б скоротити цей параметр як до 16 так і до 8 GB.
Крок 4. Процесор
Обираємо кількісь ядер процесора, які будуть задіяні.
Якщо ваш сервер потужний і/або має за мету витрачати всі ресурси на блог, то обирайте максимальну кількість доступних ядер. В мене їх всього 4 і тому я вибрав 2, щоб залишити достатньо ресурсів для інших задач на моєму сервері.
Крок 5. Вказуємо оперативну памʼять
Встановив 2 GB, але фактично бачив в загрузці лише ~1 GB
Крок 6. Налаштовуємо мережу
Зазвичай для сервісів які я хочу залишити на довго я назначаю статичну адресу, як і у даному випадку. Зверніть увагу, що формат вказаний як IPv4/CIDR, що зобовʼязує вас вказати маску мережі через дефіс, як от /24 у моєму та й у більшості випадків. Там де Gateway вкажіть адресу свого роутера.
Крок 7. Пропускаємо DNS, перевіряємо та підтверджуємо.
На цьому ж кроці ви можете поставити галочку біля Start after created, щоб контейнер образу ж запустився після створення, або ж вам прийдеться запустити його кнопкою Start. Нема різниці.
Крок 8. Запуск та підключення до контенера
Коли контейнер створився, то він зʼявиться в лівій панелі з тим іменем, яке ви вказували. Обираємо ваш контейнер і переходимо на вкладку Console
Так як у мене контейнер вже запущений то кнопка Start вже неактивна, але тепер ви знаєте де вона.
Коли загрузиться консоль то запитає у вас логін. У випадку контейнерів це завжди буде root і ваш пароль який вказали на першому кроці.
Коли все вірно введено, то ви побачите подібний результат
Тепер ви готові перейти до наступних кроків по налаштуванню блогу, про які можна дізнатись у наступній частині.
Висновок
В першій частині хочу зауважити, що найважливішим кроком буде все ж таки обрання правильного заліза під вашу задачу. В залежності від бюджету, можна звісно було б поглибитись у різні більш сучасні рішення, але мій приклад говорить про те, що як для персонального блогу вам буде достатньо навіть самих базових характеристик.
Забігаючи наперед скажу, що мій сервер виконує набагато більше задач, а ніж блог. Нижче наводжу поточну загрузку в моменті. Легко помітити, що лише віртуальна телефонна станція FreePBX активно використовує потужності процесора
Зверніть увагу, що саме для блогу по процесору використано менше 1%, а 1 GB опертивної памʼяті має бути достатньо. Тож зважаючи на це вибір заліза має бути легким.
Налаштування Proxmox VE, підготовка темплейта та контейнера - це ні що інше як монотонна покрокова робота, яка забирає лише ваш час і увагу. Заваріть чай і просто пройдіть це як підготовку до наступної частини, де ми будемо працювати вже у самому контейнері і продовжимо поглиблюватись у віртуалізацію.
Нам залишилось:
- Купити доменне імʼя
- Інсталювати Ghost блог
- Встановити та налаштувати Docker
- Налаштувати Cloudflare Websites and Cloudflare Zero Trust
- Підключити доменне імʼя через Cloudflare Tunnel до нашого сервера
Читайте про це наступній частині:
Якщо вас зацікавила тема Proxmox VE та інших сервісів, які можна запустити на цій платформі то раджу ознайомитись з публікацією про Proxmox VE Helper Scripts