Как сделать дашборд домашнего сервера на Raspberry Pi 5
Узнайте, как создать персональный дашборд для управления вашим homelab на Raspberry Pi 5. Пошаговое руководство по установке, настройке и безопасности дашборда.
Подготовка оборудования и установка ОС
Подготовьте Raspberry Pi 5, установите Raspberry Pi OS Lite с помощью Raspberry Pi Imager. Настройте SSH и базовые параметры системы.
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget htop gitУстановка Docker и Docker Compose
Установите Docker и Docker Compose на Raspberry Pi 5 для контейнеризации приложений дашборда.
curl -sSL https://get.docker.com | sh
sudo usermod -aG docker pi
sudo apt install -y docker-compose-plugin
sudo rebootУстановка дашборда (Homer, Yacht или Heimdall)
Выберите один из трех вариантов дашбордов (Homer, Yacht, Heimdall) и установите его с помощью Docker Compose. Homer рекомендуется для простоты использования.
version: '3'
services:
homer:
image: b4bz/homer:latest
container_name: homer
ports:
- "8080:8080"
volumes:
- ./config:/www/config
restart: unless-stoppedНастройка дашборда и добавление сервисов
Настройте дашборд, добавьте ваши сервисы в конфигурационный файл для быстрого доступа к ним.
services:
- name: Plex
logo: plex
url: http://<IP-адрес-RPi>:32400
description: Медиасервер
type: service
- name: Home Assistant
logo: homeassistant
url: http://<IP-адрес-RPi>:8123
description: Умный дом
type: serviceНастройка безопасности SSL/TLS и защита доступа
Настройте SSL/TLS сертификат с Let's Encrypt и защиту паролем для дашборда, чтобы обеспечить безопасный доступ.
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d <ваш-домен>.ru
sudo htpasswd -c /etc/nginx/.htpasswd ваш-пользовательОптимизация производительности и настройка резервного копирования
Настройте автоматическое обновление Docker-контейнеров, оптимизируйте производительность системы и настройте регулярное резервное копирование.
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/home/pi/backups"
DASHBOARD_DIR="/home/pi/homer"
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/homer_$DATE.tar.gz $DASHBOARD_DIRМой дашборд домашней страницы на моем RPi5
Оглавление
- Введение: Что такое дашборд и почему он важен для домашнего сервера
- Требования и подготовка: Необходимое оборудование и требования к ПО
- Установка операционной системы: Выбор и установка дистрибутива
- Выбор и установка программного обеспечения дашборда: Homer, Yacht, Heimdall
- Добавление виджетов и сервисов: Настройка различных виджетов и интеграция
- Настройка безопасности: SSL/TLS, защита от несанкционированного доступа
- Дополнительные возможности и настройки: Автоматическое обновление и оптимизация
- Устранение возможных проблем
- Заключение: Итоги и возможные улучшения
Введение: Что такое дашборд и почему он важен для домашнего сервера
Дашборд домашней страницы — это центральная точка входа для всех ваших сервисов и приложений, развернутых на домашнем сервере. Это единое место, где можно получить быстрый доступ к веб-интерфейсам всех ваших домашних сервисов: от домашнего медиасервера и системы умного дома до резервного копирования и сетевых утилит.
Для любого энтузиаста домашнего сервера наличие такого дашборда критически важно. Он позволяет:
- Иметь быстрый доступ ко всем сервисам в одном месте
- Упростить навигацию для членов семьи
- Получить сводную информацию о состоянии сервера и сервисов
- Сэкономить время на запоминание адресов каждого сервиса
В данной статье мы рассмотрим, как развернуть полнофункциональный дашборд на Raspberry Pi 5 — одном из самых современных и производительных одноплатных компьютеров, отлично подходящих для домашних нужд.
Требования и подготовка: Необходимое оборудование и требования к ПО
Оборудование
- Raspberry Pi 5 — основа нашего домашнего сервера
- Блок питания USB-C мощностью не менее 27 Вт (рекомендуется 30 Вт)
- Карта microSD объемом не менее 32 ГБ (рекомендуется 64 ГБ)
- Корпус для Raspberry Pi 5 с охлаждением (рекомендуется активное охлаждение)
- Сетевой кабель (Ethernet) для подключения к локальной сети
Программное обеспечение
- Операционная система: Raspberry Pi OS (Lite или Desktop)
- Docker и Docker Compose для контейнеризации
- Веб-сервер (Nginx или Apache)
- Дополнительные инструменты:
curl,wget,htop
Установка операционной системы: Выбор и установка дистрибутива
Выбор дистрибутива
Для дашборда идеально подходит Raspberry Pi OS Lite, так как:
- Она легкая и не требует графической оболочки
- Имеет хорошую поддержку оборудования Raspberry Pi
- Легко обновляется и поддерживается
Установка Raspberry Pi OS Lite
- Скачайте Raspberry Pi Imager с официального сайта
- Запустите программу и выберите:
- Raspberry Pi OS (other) → Raspberry Pi OS Lite (64-bit)
- Выберите вашу карту microSD
- Настройки:
- Set hostname:
homelab-dash - Enable SSH: включите
- Use username and password: введите логин и пароль
- Configure wireless LAN (если используете Wi-Fi): введите данные сети
- Set hostname:
- Запишите образ на карту памяти
Первая настройка системы
- Вставьте карту в Raspberry Pi 5 и включите устройство
- Подключитесь к Raspberry Pi по SSH:
ssh pi@homelab-dash.local
- Обновите систему:
sudo apt update && sudo apt upgrade -y
- Установите необходимые пакеты:
sudo apt install -y curl wget htop git
Установка Docker и Docker Compose
- Установите Docker:
curl -sSL https://get.docker.com | sh
- Добавьте пользователя в группу docker:
sudo usermod -aG docker pi
- Установите Docker Compose:
sudo apt install -y docker-compose-plugin
- Перезагрузите Raspberry Pi:
sudo reboot
Выбор и установка программного обеспечения дашборда: Homer, Yacht, Heimdall
Сравнение дашбордов
| Параметр | Homer | Yacht | Heimdall |
|---|---|---|---|
| Интерфейс | Минималистичный | Современный | Традиционный |
| Возможности | Базовые | Управление контейнерами | Расширенные настройки |
| Требования к ресурсам | Низкие | Средние | Средние |
| Поддержка Docker | Нет | Да | Нет |
| Локализация | Русский язык | Русский язык | Русский язык |
| Сложность настройки | Низкая | Средняя | Низкая |
Homer: Простой и функциональный дашборд
Homer — это легкий дашборд с открытым исходным кодом, который позволяет создавать красивую стартовую страницу для ваших сервисов.
- Создайте директорию для Homer:
mkdir homer && cd homer
- Создайте файл
docker-compose.ymlсо следующим содержимым:
version: '3'
services:
homer:
image: b4bz/homer:latest
container_name: homer
ports:
- "8080:8080"
volumes:
- ./config:/www/config
restart: unless-stopped
- Создайте конфигурационный файл:
mkdir config
- Запустите Homer:
docker compose up -d
- Откройте браузер и перейдите по адресу
http://<IP-адрес-RPi>:8080
Yacht: Более продвинутый дашборд
Yacht — это современный дашборд с поддержкой Docker и Docker Compose, который позволяет управлять контейнерами прямо из интерфейса.
- Создайте директорию для Yacht:
mkdir yacht && cd yacht
- Создайте файл
docker-compose.yml:
version: '3.7'
services:
yacht:
image: selfhosted/yacht:latest
container_name: yacht
ports:
- "8000:8000"
volumes:
- ./config:/config
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
- Запустите Yacht:
docker compose up -d
- Откройте браузер и перейдите по адресу
http://<IP-адрес-RPi>:8000
Heimdall: Полнофункциональный дашборд
Heimdall — это мощный дашборд с множеством функций и красивым интерфейсом.
- Создайте директорию для Heimdall:
mkdir heimdall && cd heimdall
- Создайте файл
docker-compose.yml:
version: '3.7'
services:
heimdall:
image: linuxserver/heimdall:latest
container_name: heimdall
ports:
- "80:80"
- "443:443"
volumes:
- ./config:/config
restart: unless-stopped
- Запустите Heimdall:
docker compose up -d
- Откройте браузер и перейдите по адресу
http://<IP-адрес-RPi>
Добавление виджетов и сервисов: Настройка различных виджетов и интеграция
Настройка Homer
- Откройте конфигурационный файл
config.ymlв директорииconfig:
# Пример конфигурационного файла Homer
theme: dark
title: Мой домашний сервер
subtitle: Центр доступа ко всем сервисам
header: true
footer: true
columns: 3
# Дополнительные настройки...
- Добавьте сервисы в секцию
services:
services:
- name: Plex
logo: plex
url: http://<IP-адрес-RPi>:32400
description: Медиасервер
type: service
- Перезапустите Homer:
docker compose restart
Настройка Yacht
- Войдите в интерфейс Yacht по адресу
http://<IP-адрес-RPi>:8000 - Настройте дашборд в разделе "Dashboards"
- Добавьте виджеты для разных сервисов
- Настройте доступ к Docker-контейнерам
Настройка Heimdall
- Войдите в интерфейс Heimdall при первом запуске
- Настройте основные параметры в разделе "Настройки"
- Добавьте сервисы в разделе "Сервисы"
- Выберите иконки для каждого сервиса
- Настройте порядок расположения сервисов
Настройка безопасности: SSL/TLS, защита от несанкционированного доступа
SSL/TLS сертификат с Let's Encrypt
- Установите Certbot:
sudo apt install -y certbot python3-certbot-nginx
- Получите сертификат:
sudo certbot --nginx -d <ваш-домен>.ru
- Настройте автодобновление:
sudo crontab -e
Добавьте строку:
0 12 * * * /usr/bin/certbot renew --quiet
Защита паролем для дашборда
- Создайте файл паролей:
sudo htpasswd -c /etc/nginx/.htpasswd ваш-пользователь
- Настройте Nginx для аутентификации:
server {
listen 80;
server_name <ваш-домен>.ru;
location / {
auth_basic "Ограниченный доступ";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://localhost:8080; # или порт вашего дашборда
}
}
- Перезапустите Nginx:
sudo systemctl restart nginx
Защита от ботов
- Установите Fail2ban:
sudo apt install -y fail2ban
- Создайте конфигурационный файл:
sudo nano /etc/fail2ban/jail.local
- Добавьте настройки:
[dashboard]
enabled = true
port = http,https
filter = dashboard
logpath = /var/log/nginx/access.log
maxretry = 3
bantime = 3600
- Создайте фильтр:
sudo nano /etc/fail2ban/filter.d/dashboard.conf
Содержимое:
[Definition]
failregex = ^<HOST> - - \[.*\] "GET /.*HTTP/1\..".*$
ignoreregex =
- Перезапустите Fail2ban:
sudo systemctl restart fail2ban
Дополнительные возможности и настройки: Автоматическое обновление и оптимизация
Автоматическое обновление Docker-контейнеров
- Установите скрипт Watchtower:
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower
- Настройте обновление раз в неделю:
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--schedule "0 0 * * 0"
Оптимизация производительности
- Настрой swap-файл для Raspberry Pi:
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
- Настройка DNS кэширования:
sudo apt install -y dnsmasq
sudo systemctl enable dnsmasq
- Настройка ротации логов:
sudo nano /etc/logrotate.d/docker
Содержимое:
/var/lib/docker/containers/*/*.log {
daily
rotate 7
compress
missingok
delaycompress
notifempty
}
Резервное копирование дашборда
- Создайте скрипт резервного копирования:
nano backup.sh
Содержимое:
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/home/pi/backups"
DASHBOARD_DIR="/home/pi/homer"
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/homer_$DATE.tar.gz $DASHBOARD_DIR
- Сделайте скрипт исполняемым:
chmod +x backup.sh
- Настройте cron для регулярного резервного копирования:
crontab -e
Добавьте строку:
0 2 * * * /home/pi/backup.sh
Устранение возможных проблем
Проблема: Docker-контейнер не запускается
Решение:
- Проверьте логи контейнера:
docker logs <имя_контейнера>
- Убедитесь, что все порты свободны:
sudo netstat -tulnp | grep <порт>
- Проверьте права доступа к Docker-сокету:
ls -la /var/run/docker.sock
Проблема: Доступ к дашборду извне не работает
Решение:
- Проверьте настройки файрвола:
sudo ufw status
- Убедитесь, что порт открыт:
sudo ufw allow <порт>
- Проверьте настройки маршрутизатора (порт-форвардинг)
Проблема: SSL-сертификат не обновляется автоматически
Решение:
- Проверьте логи Certbot:
sudo tail -f /var/log/letsencrypt/letsencrypt.log
- Убедитесь, что cron-задача работает:
sudo crontab -l
- Ручное обновление для теста:
sudo certbot renew --dry-run
Проблема: Высокая загрузка процессора на Raspberry Pi 5
Решение:
- Проверьте активные процессы:
htop
- Уменьшите количество запущенных контейнеров
- Настройте ограничения ресурсов для контейнеров в docker-compose.yml:
services:
<имя_сервиса>:
deploy:
resources:
limits:
cpus: '0.5'
memory: 512M
Проблема: Не работают виджеты в дашборде
Решение:
- Проверьте URL-адреса сервисов в конфигурации
- Убедитесь, что сервисы доступны по указанным адресам
- Проверьте совместимость виджетов с вашим дашбордом
Заключение: Итоги и возможные улучшения
Мы рассмотрели, как развернуть полнофункциональный дашборд на Raspberry Pi 5. Теперь у вас есть центральный доступ ко всем вашим домашним сервисам в одном месте, с удобной навигацией и возможностью быстрого добавления новых сервисов.
Возможные улучшения:
- Интеграция с системой умного дома — добавление виджетов для отображения состояния устройств
- Мониторинг ресурсов — интеграция с Prometheus и Grafana для отслеживания нагрузки на сервер
- Уведомления — настройка push-уведомлений о важных событиях
- Резервное копирование — автоматическое резервное копирование конфигураций дашборда
- Персонализация — настройка тем и виджетов под ваши нужды
Дашборд — это сердце вашего домашнего сервера, и с его помощью вы можете значительно упростить управление всеми своими сервисами. Raspberry Pi 5 с его производительностью и энергоэффективностью отлично подходит для этой задачи, позволяя создать полноценный центр управления без лишних затрат.