Post

Як я підняв Jekyll блог на VPS з AlmaLinux 9

Як я підняв Jekyll блог на VPS з AlmaLinux 9

Вирішив завести технічний блог. Домен є, VPS є, CyberPanel крутиться — залишилось обрати платформу. Зупинився на Jekyll: статичний генератор, пишеш у Markdown, деплоїш просто файли. Жодних баз даних, жодного PHP.

Що знадобилось

  • VPS з AlmaLinux 9
  • CyberPanel (вже був встановлений)
  • Домен sedunlab.com
  • Трохи терпіння з rbenv 😄

Встановлення Ruby через rbenv

Системний Ruby в AlmaLinux 9 застарілий, тому ставимо через rbenv — менеджер версій Ruby.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Клонуємо rbenv
git clone https://github.com/rbenv/rbenv.git ~/.rbenv

# Додаємо в PATH
echo 'export PATH="/root/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init - bash)"' >> ~/.bashrc
source ~/.bashrc

# Встановлюємо ruby-build
git clone https://github.com/rbenv/ruby-build.git \
  ~/.rbenv/plugins/ruby-build

# Залежності для збірки
dnf install -y openssl-devel readline-devel zlib-devel libyaml-devel

# Встановлюємо Ruby 3.3.0
rbenv install 3.3.0
rbenv global 3.3.0

Збірка Ruby зайняла хвилин 7. Після цього:

1
2
3
4
5
6
7
8
ruby -v
# ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-linux]

## Встановлення Jekyll

gem install jekyll bundler
jekyll -v
# jekyll 4.4.1

Тема Chirpy

Обрав тему Chirpy — виглядає сучасно, має темний режим, пошук, теги і категорії. Ідеально для tech-блогу.

1
2
3
git clone https://github.com/cotes2020/chirpy-starter.git ~/sedunlab
cd ~/sedunlab
bundle install

Налаштування _config.yml

Відкриваємо головний конфіг і заповнюємо:

1
2
3
4
5
6
title: SedunLab
tagline: Лабораторія з IT у руках
description: DevOps, Homelab та туторіали українською
url: "https://sedunlab.com"
timezone: Europe/Kyiv
lang: uk

Деплой через CyberPanel

Jekyll генерує статичні файли — просто копіюємо їх в публічну папку сайту:

1
2
bundle exec jekyll build
cp -r _site/* /home/sedunlab.com/public_html/

В CyberPanel одним кліком видаємо SSL сертифікат — і сайт доступний по HTTPS.

Що далі

Наступний крок — автодеплой через Git hook, щоб після кожного git push сайт оновлювався автоматично. Але це вже тема окремої статті.

This post is licensed under CC BY 4.0 by the author.