Настройка первого сервера для homelab: Пошаговое руководство для начинающих

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

Не указано

Выбор оборудования

Выберите подходящее оборудование для вашего homelab сервера в зависимости от ваших целей и бюджета.

Установка операционной системы

Выберите и установите подходящую операционную систему для вашего сервера (Proxmox VE, Ubuntu Server и т.д.)

Базовая настройка системы

Выполните базовую настройку системы после установки: обновите систему, настройте SSH, создайте пользователя и установите временную зону.

apt update && apt dist-upgrade -y

Настройка сети

Настройте статический IP-адрес и DNS для стабильной работы вашего сервера в сети.

nano /etc/network/interfaces

auto enp3s0
iface enp3s0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 1.1.1.1

Установка Docker

Установите Docker для возможности запуска контейнеров на вашем сервере.

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
usermod -aG docker username

Установка Docker Compose

Установите Docker Compose для управления многоконтейнерными приложениями.

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

Установка Portainer

Установите Portainer для удобного управления Docker контейнерами через веб-интерфейс.

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

Настройка безопасности

Настройте брандмауэр, отключите неиспользуемые сервисы и настройте резервное копирование для обеспечения безопасности ваших данных.

ufw enable
ufw allow 22/tcp   # SSH
ufw allow 80/tcp   # HTTP
ufw allow 443/tcp  # HTTPS
ufw allow 6443/tcp # Kubernetes API
ufw deny 8080/tcp  # Пример блокировки порта