diff options
Diffstat (limited to 'content/posts/2024-12-17-infra')
-rw-r--r-- | content/posts/2024-12-17-infra/cover.webp | bin | 0 -> 532556 bytes | |||
-rw-r--r-- | content/posts/2024-12-17-infra/index.md | 110 |
2 files changed, 110 insertions, 0 deletions
diff --git a/content/posts/2024-12-17-infra/cover.webp b/content/posts/2024-12-17-infra/cover.webp Binary files differnew file mode 100644 index 0000000..c02c8be --- /dev/null +++ b/content/posts/2024-12-17-infra/cover.webp diff --git a/content/posts/2024-12-17-infra/index.md b/content/posts/2024-12-17-infra/index.md new file mode 100644 index 0000000..bb83506 --- /dev/null +++ b/content/posts/2024-12-17-infra/index.md @@ -0,0 +1,110 @@ ++++ +title = "Инфраструктура блога" +description = "" +date = 2024-12-17T21:07:53+03:00 +categories = [ "Мета" ] +tags = [ "блог", "IT" ] +location = "Казань" +image="cover.webp" ++++ + +Сегодня я хочу рассказать как устроен этот блог и вообще моя инфраструктура. + +## Сервер + +Во-первых, недавно я почти полностью переехал с арендуемого сервера, на свой +собственный, сервер, который просто стоит у меня в комнате. + +Именно он вынесен в заголовочное изображение и целиком помещается, даже не на +ладони, а просто на кончиках пальцев! + +Конкретно, железо: + +- **OrangePi 3B 8Gb** — выбран в первую очередь за свою дешевизну и, самое +главное, M.2 разъём +- **NVME SSD 1Tb** — собственно, жесткий диск моего микросервера +- **Корпус с активным охлаждением** — не самое необходимое, но хотелось, чтобы +выглядело красиво +<!-- more --> +## Программное обеспечение + +По сути, на первом уровне, установлены [armbian](https://www.armbian.com/orangepi3b/), [веб—сервер Caddy](https://caddyserver.com/), да [Docker](https://devdotnet.org/post/ustanovka-docker-dlya-arm-i-64-bit-arm-armbian-linux/). +Всё остальное уже внутри 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` +(https://git.neonxp.ru/blog.git/tree/Makefile#n11)[с помощью rsync], а оттуда уже раздается с помощью Caddy. + +# 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 — для разработки и хранения кода + +Но об этом я расскажу в другой раз 😉
\ No newline at end of file |