diff options
Diffstat (limited to '')
| -rw-r--r-- | content/posts/2024-12-17-infra.md | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/content/posts/2024-12-17-infra.md b/content/posts/2024-12-17-infra.md new file mode 100644 index 0000000..8998c27 --- /dev/null +++ b/content/posts/2024-12-17-infra.md @@ -0,0 +1,120 @@ +--- +categories: +- Мета +date: '2024-12-17T21:07:53+03:00' +description: '' +draft: true +image: files/2024-12-17-infra_cover.webp +location: Казань +tags: +- блог +- IT +title: Инфраструктура блога +--- + +Сегодня я хочу рассказать как устроен этот блог и вообще моя инфраструктура. + +## Сервер + +Во-первых, недавно я почти полностью переехал с арендуемого сервера, на свой +собственный, сервер, который просто стоит у меня в комнате. + +Именно он вынесен в заголовочное изображение и целиком помещается, даже не на +ладони, а просто на кончиках пальцев! + +Конкретно, железо: + +* **OrangePi 3B 8Gb** — выбран в первую очередь за свою дешевизну и, самое + главное, M.2 разъём +* **NVME SSD 1Tb** — собственно, жесткий диск моего микросервера +* **Корпус с активным охлаждением** — не самое необходимое, но хотелось, чтобы + выглядело красиво + +<!-- more --> + +## Программное обеспечение + +По сути, на первом уровне, установлены 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` с +помощью rsync[^4], а оттуда уже раздается с помощью Caddy. + +[^4]: https://git.neonxp.ru/blog.git/tree/Makefile#n11 + +## Docker + +А вот и мой compose в котором разворачивается остальная инфраструктура для блога + +```yaml +services: + remark42: + image: umputun/remark42:latest + restart: unless-stopped + container_name: "remark42" + ports: + - 8008:8080 + env_file: remark42.env + volumes: + - remark42:/srv/var + posse: + image: registry.neonxp.ru/posse + restart: unless-stopped + container_name: posse + env_file: posse.env + volumes: + - ./seq.txt:/store/seq.txt +volumes: + remark42: +``` + +Как понятно из этого docker-compose.yml — дополнительно поднимаются два +контейнера: + +* remark42 — система комментариев +* posse — моя программка, которая чекает RSS блога и репостит его в Telegram + +## Остальное + +Конечно же, на этой железке крутится не только блог, но и несколько других +сервисов для личного использования + +* Nextcloud — личное облако +* Vaultwarden — хранилище паролей +* SOPDS — личная библиотека Либрусека +* Git хостинг и Container registry — для разработки и хранения кода + +Но об этом я расскажу в другой раз 😉 |
