Самостоятельный хостинг для начинающих: полное руководство по запуску 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Ресурсы для дальнейшего обучения
Книги, онлайн-курсы, сообщества и документация для углубления знаний в области системного администрирования и хостинга.