Самостоятельное хостинг homepage — настройка персонализированной панели управления с Docker

Пошаговый гайд по установке и настройке homepage — домашней панели управления для self-hosting. Интеграции с Docker, Home Assistant, Sonarr, Monit и другие виджеты. 100% бесплатно, на своём сервере.

Не указано

Создание структуры каталогов и прав доступа

Перейдите в каталог для хранения конфигурации (например, /opt/homepage). Создайте папку для конфигов и установите права доступа, чтобы контейнер мог читать и записывать файлы.

sudo mkdir -p /opt/homepage/config
sudo chown -R 1000:1000 /opt/homepage
cd /opt/homepage

Создание файла docker-compose.yml

Создайте файл docker-compose.yml в корне папки /opt/homepage. Этот файл определяет, как будет запускаться homepage, куда монтировать конфиги и какой порт использовать. Обязательно монтируем /var/run/docker.sock для интеграции с контейнерами.

version: "3.3"
services:
  homepage:
    image: ghcr.io/gethomepage/homepage:latest
    container_name: homepage
    restart: unless-stopped
    ports:
      - 3000:3000
    volumes:
      - ./config:/app/config
      - /var/run/docker.sock:/var/run/docker.sock
      - /etc/localtime:/etc/localtime:ro
    environment:
      - PUID=1000
      - PGID=1000
    networks:
      - homepage-net

networks:
  homepage-net:
    driver: bridge

Запуск контейнера

Запустите контейнер в фоновом режиме с помощью Docker Compose. После запуска проверьте статус контейнера, чтобы убедиться, что он перешел в состояние Up.

docker compose up -d
docker ps -a

Настройка основного интерфейса (settings.yaml)

Создайте файл ./config/settings.yaml для задания названия, темы и стиля шапки вашего homepage.

title: Мой Хомелаб
headerStyle: boxed
theme: dark
color: slate

Настройка виджетов системы (widgets.yaml)

Создайте ./config/widgets.yaml для добавления виджетов системных ресурсов (CPU, память), поиска и времени.

- resources:
    cpu: true
    memory: true
    disk: /
    uptime: true
- search:
    provider: duckduckgo
    target: _blank
- datetime:
    text_size: l
    format: HH:mm:ss
    locale: ru-RU

Добавление сервисов (services.yaml)

Создайте ./config/services.yaml для отображения ссылок на приложения и виджетов статуса (например, Sonarr, Plex). Можно настроить автоматическое получение данных через API.

- Медиа:
    - Sonarr:
        href: http://192.168.1.100:8989
        description: Телесериалы
        icon: sonarr
        widget:
          type: sonarr
          url: http://192.168.1.100:8989
          key: !secret SONARR_API_KEY
    - Plex:
        href: http://192.168.1.100:32400
        description: Медиацентр
        icon: plex
        widget:
          type: plex
          url: http://192.168.1.100:32400
          key: !secret PLEX_TOKEN

Безопасное хранение ключей (secrets.yaml)

Создайте ./config/secrets.yaml для хранения чувствительных данных (API ключи). В docker-compose.yml добавьте монтирование этого файла.

SONARR_API_KEY: "ваш_ключ_sonarr"
PLEX_TOKEN: "ваш_токен_plex"
WEATHER_API_KEY: "ключ_openweathermap"