Домашний сервер и его обитатели

Домашний сервер и его обитатели
Photo by Taylor Vick / Unsplash

Вероятно пора рассказать о своем домашнем сервачке, а то часто спрашивают как и что. Краткая версия этой заметки была в твиттере, тут же дам немного больше инфы и ссылок на то, как все устроено.

Железо

  • Процессор - Intel(R) Pentium(R) CPU G3260 @ 3.30GHz
  • Материнская плата - AsRock H81M-VG4 R4.0
  • Операционная система установлена на SSD Intel 120GB
  • Хранилище - 3x3TB WD Blue/Red собранный в RAID-5
  • Память - 16ГБ

Операционная система

В качестве операционки я использую на данный момент Ubuntu 18.04.4 с планом мигрировать на 20.04.
Раньше была 16.04 и я переехал простым апгрейдом без особых проблем.

Софт, установленный прямо в системе

  • Minidlna раздает скачанное медиа на телевизоры (хотя в нем нет уже особого смысла, почти полностью его заменил Plex)
  • rsnapshot делает бэкапы удаленных серверов
  • haproxy выступает лоадбалансером для проброса портов в k8s
  • openvpn в качестве клиента для обхода некоторых блокировок

Итого по софту, установленному в системе: уже можно отказаться от minidlna и заменить haproxy на MetalLB. Останется только две простые утилиты и чистая система. Потом можно упаковать rsnapshot в docker и вообще будет огонь. Все остальное развернуто в docker или kubernetes.

Софт, развернутый с docker-compose

  • timecapsule для бэкапов маков
  • qbittorrent для автоматического скачивания торрентов
  • jackett для поиска по треккерам
  • radarr для отслеживания появившихся релизов и добавления в закачки
  • plex для просмотра сериальчиков и фильмов
  • zoneminder пишет видеопотоки с камер наблюдения на даче
  • несколько баз данных для проектов и тестов

Kubernetes

k8s развернут с помощью kubeadm этим способом. Список того, что там крутится:

  • несколько простых проектов
  • drone agent для DroneCI
  • librespeed для тестирования канала в интернет
  • piwigo для просмотра архива фоточек
  • registry для хранения образов билдов
  • smokeping для отслеживания состояния каналов связи
  • searx персональная поисковая система

Пока это все, что задеплоено. Но есть еще идеи, что добавить. Например, paperless-ng.

В планах обновить железо до AMD Ryzen и 32 гигов оперативки.

Read more

🔄 Своя Dropbox-альтернатива: Syncthing

🔄 Своя Dropbox-альтернатива: Syncthing

🧠 Зачем? Облачные сервисы — удобно, но: * не хочется платить Google/Dropbox за хранение своих файлов * хочется моментально синхронизировать фото, документы и заметки между устройствами * и делать это на своём сервере, без отправки данных «в облако» 👉 Решение — Syncthing: децентрализованный, зашифрованный, open source-синк между любыми устройствами. 🚀 Что ты получишь? * 📂 Автосинк папок между сервером,

🎧 Свой подкаст-сервер за 5 минут: Podgrab

🎧 Свой подкаст-сервер за 5 минут: Podgrab

✨ Зачем? Подкасты — отличный способ учиться, развлекаться и быть в курсе мира. Но что, если: * Хочется слушать подкасты офлайн * Хочется архивировать любимые шоу * Не устраивают сторонние сервисы, реклама и трекеры Решение: Podgrab — простой подкаст-граббер, который автоматически скачивает новые выпуски с любого RSS. А в связке с Audiobookshelf ты получаешь полноценный медиасервер.

Безопасное управление конфигурациями в Ansible: Полное руководство по использованию rescue и always

Безопасное управление конфигурациями в Ansible: Полное руководство по использованию rescue и always

Введение: Почему это важно В мире DevOps и системного администрирования существует простое правило: всё ломается. Особенно в самый неподходящий момент. Когда вы изменяете конфигурацию критического сервиса (например, Nginx), цена ошибки может быть очень высока — от простого даунтайма до потери данных. Ansible предлагает элегантное решение для безопасного внесения изменений через механизм

Использование ~/.ssh/authorized_keys для управления входящими SSH-соединениями

Использование ~/.ssh/authorized_keys для управления входящими SSH-соединениями

Файл ~/.ssh/authorized_keys позволяет настроить команды, которые будут выполняться при входящих SSH-соединениях. Это полезный инструмент для управления доступом и обеспечения безопасности, особенно при работе с резервным копированием данных. Настройка резервного копирования с использованием authorized_keys В данном примере рассматривается использование authorized_keys для настройки резервного копирования базы данных Bacula