aboutsummaryrefslogtreecommitdiff
path: root/content
diff options
context:
space:
mode:
Diffstat (limited to 'content')
-rw-r--r--content/posts/2024-12-17-infra/cover.webpbin0 -> 532556 bytes
-rw-r--r--content/posts/2024-12-17-infra/index.md110
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
new file mode 100644
index 0000000..c02c8be
--- /dev/null
+++ b/content/posts/2024-12-17-infra/cover.webp
Binary files differ
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