Самостоятельный хостинг для начинающих: полное руководство по запуску homelab

Пошаговое руководство по самостоятельному хостингу для новичков. Узнайте, как выбрать оборудование, настроить базовые сервисы и запустить свой homelab с нуля.

Не указано

Выбор оборудования для первого домашнего сервера

Обзор вариантов оборудования (старый компьютер, mini-PC, сборка собственного сервера) с их преимуществами и недостатками.

Подготовка сети: базовые настройки

Настройка статического IP-адреса, Port forwarding, DNS для доступа к серверу из локальной сети и интернета.

sudo nano /etc/netplan/01-netcfg.yaml

network:
  version: 2
  ethernets:
    ens18:
      dhcp4: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
          addresses: [8.8.8.8, 8.8.4.4]

sudo netplan apply

Выбор операционной системы для новичка

Обзор вариантов ОС (Ubuntu Server, Proxmox VE, Debian) с их преимуществами и особенностями установки.

Установка и настройка базовых сервисов

Установка и настройка веб-сервера Nginx, системы управления базами данных MariaDB, PHP для веб-приложений, Docker и Docker Compose.

sudo apt update
sudo apt install nginx -y
sudo systemctl status nginx

sudo apt install mariadb-server -y
sudo mysql_secure_installation

sudo apt install php php-fpm php-mysql php-gd php-xml php-mbstring -y

sudo apt install docker.io -y
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Безопасность на начальном этапе

Базовые меры защиты: обновление системы, настройка брандмауэра, отключение root-доступа по SSH, настройка SSL-сертификатов.

sudo apt update && sudo apt upgrade -y

sudo ufw enable
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

sudo nano /etc/ssh/sshd_config
# Убедитесь, что строка PermitRootLogin установлена в no
sudo systemctl restart sshd

sudo apt install certbot -y
sudo certbot --nginx -d myserver.local

Популярные приложения для старта

Развертывание популярных сервисов: Nextcloud (облачное хранилище), Jellyfin (медиасервер), Home Assistant (умный дом), Portainer (управление Docker).

sudo docker run -d --name nextcloud -p 8080:80 \
  -v ~/nextcloud/html:/var/www/html \
  -v ~/nextcloud/config:/var/www/html/config \
  -v ~/nextcloud/data:/var/www/html/data \
  nextcloud

sudo docker run -d --name jellyfin \
  -p 8096:8096 \
  -v ~/jellyfin/config:/config \
  -v ~/jellyfin/media:/media \
  jellyfin/jellyfin

sudo docker run -d --name home-assistant \
  -p 8123:8123 \
  -v ~/homeassistant/config:/config \
  --restart=always \
  homeassistant/home-assistant

sudo docker volume create portainer_data
sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce

Система резервного копирования

Настройка локального резервного копирования с помощью rsync и cron, а также облачного резервного копирования с помощью rclone.

sudo apt install rsync -y
mkdir -p ~/backups

# Скрипт бэкапа
nano ~/backup.sh

#!/bin/bash
rsync -av --delete /home/user/ ~/backups/home/
rsync -av --delete /var/lib/docker/ ~/backups/docker/

chmod +x ~/backup.sh

# Добавить в crontab
crontab -e

# Добавить строку для ежедневного бэкапа в 2:00 ночи:
0 2 * * * /home/user/backup.sh

# Настройка rclone для облачного бэкапа
sudo apt install rclone -y
rclone config

# Копирование в облако
rclone copy ~/backups cloud-backup:backups

Мониторинг и логирование

Настройка системы мониторинга с помощью Prometheus и Grafana, а также централизованного сбора логов с помощью Loki.

sudo apt install prometheus grafana -y

# Установка Node Exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
tar xvfz node_exporter-1.3.1.linux-amd64.tar.gz
sudo mv node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin/

# Создание systemd-сервиса
sudo nano /etc/systemd/system/node_exporter.service

[Unit]
Description=Node Exporter
After=network.target

[Service]
User=prometheus
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reload
sudo systemctl enable node_exporter
sudo systemctl start node_exporter

# Запуск Loki
sudo docker run -d --name loki \
  -p 3100:3100 \
  -v ~/loki/config:/etc/loki \
  grafana/loki

Расширение функционала: следующий шаг

Виртуализация с Proxmox, изучение Kubernetes, настройка сложных сетевых концепций (VLAN, VPN, nftables).

sudo apt install -y apt-transport-https ca-certificates curl
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update
sudo apt install -y kubelet kubeadm kubectl

Ресурсы для дальнейшего обучения

Книги, онлайн-курсы, сообщества и документация для углубления знаний в области системного администрирования и хостинга.