Инфраструктура блога
Сегодня я хочу рассказать как устроен этот блог и вообще моя инфраструктура.
Сервер ¶
Во-первых, недавно я почти полностью переехал с арендуемого сервера, на свой собственный, сервер, который просто стоит у меня в комнате.
Именно он вынесен в заголовочное изображение и целиком помещается, даже не на ладони, а просто на кончиках пальцев!
Конкретно, железо:
- OrangePi 3B 8Gb — выбран в первую очередь за свою дешевизну и, самое главное, M.2 разъём
- NVME SSD 1Tb — собственно, жесткий диск моего микросервера
- Корпус с активным охлаждением — не самое необходимое, но хотелось, чтобы выглядело красиво
Программное обеспечение ¶
По сути, на первом уровне, установлены armbian (https://www.armbian.com/orangepi3b/), веб—сервер Caddy (https://caddyserver.com/), да Docker. Всё остальное уже внутри Docker’а.
Caddy ¶
Caddy у меня работает в основном как reverse-proxy для Docker’а. Без лишних слов, вот конфиг:
{
log {
output file /var/log/caddy/access.log
level debug
}
email i@neonxp.ru
}
neonxp.ru:80 {
redir https://neonxp.ru
}
neonxp.ru:443 {
tls i@neonxp.ru
root * /var/www/neonxp.ru
encode gzip
rewrite /feed/ /posts/index.xml
file_server
}
comments.neonxp.ru {
reverse_proxy localhost:8008
tls i@neonxp.ru
}
Из него я убрал всё, что не относится к непосредственно блогу.
Сам блог у меня собирается с помощью Hugo и загружается в /var/www/neonxp.ru
с помощью rsync1, а оттуда уже раздается с помощью Caddy.
Docker ¶
А вот и мой compose в котором разворачивается остальная инфраструктура для блога
1services:
2 remark42:
3 image: umputun/remark42:latest
4 restart: unless-stopped
5 container_name: "remark42"
6 ports:
7 - 8008:8080
8 env_file: remark42.env
9 volumes:
10 - remark42:/srv/var
11 posse:
12 image: registry.neonxp.ru/posse
13 restart: unless-stopped
14 container_name: posse
15 env_file: posse.env
16 volumes:
17 - ./seq.txt:/store/seq.txt
18volumes:
19 remark42:
Как понятно из этого docker-compose.yml — дополнительно поднимаются два контейнера:
- remark42 — система комментариев
- posse — моя программка, которая чекает RSS блога и репостит его в Telegram
Остальное ¶
Конечно же, на этой железке крутится не только блог, но и несколько других сервисов для личного использования
- Nextcloud — личное облако
- Vaultwarden — хранилище паролей
- SOPDS — личная библиотека Либрусека
- Git хостинг и Container registry — для разработки и хранения кода
Но об этом я расскажу в другой раз 😉