Инфраструктура блога

вторник, 17 декабря 2024

Сегодня я хочу рассказать как устроен этот блог и вообще моя инфраструктура.

Сервер

Во-первых, недавно я почти полностью переехал с арендуемого сервера, на свой собственный, сервер, который просто стоит у меня в комнате.

Именно он вынесен в заголовочное изображение и целиком помещается, даже не на ладони, а просто на кончиках пальцев!

Конкретно, железо:

  • OrangePi 3B 8Gb — выбран в первую очередь за свою дешевизну и, самое главное, M.2 разъём
  • NVME SSD 1Tb — собственно, жесткий диск моего микросервера
  • Корпус с активным охлаждением — не самое необходимое, но хотелось, чтобы выглядело красиво

Программное обеспечение

По сути, на первом уровне, установлены armbian, веб—сервер Caddy, да 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, а оттуда уже раздается с помощью Caddy.

Docker

А вот и мой compose в котором разворачивается остальная инфраструктура для блога

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 — для разработки и хранения кода

Но об этом я расскажу в другой раз 😉

Комментарии