Linux: различия между версиями

Материал из wiki
Новая страница: «= Linux: подготовка и развёртывание self‑hosted сервисов = Linux — основная платформа для размещения собственных облачных сервисов. Благодаря открытости, гибкости и минимальным требованиям к ресурсам, большинство решений (Nextcloud, ZeroTier, OpenVPN и др.) разрабатываются...»
 
м Защитил страницу Linux ([Редактирование=Разрешено только администраторам] (бессрочно) [Переименование=Разрешено только администраторам] (бессрочно))
 
(нет различий)

Текущая версия от 12:22, 4 августа 2026

Linux: подготовка и развёртывание self‑hosted сервисов

Linux — основная платформа для размещения собственных облачных сервисов. Благодаря открытости, гибкости и минимальным требованиям к ресурсам, большинство решений (Nextcloud, ZeroTier, OpenVPN и др.) разрабатываются в первую очередь для этой ОС.

В этой статье описаны базовые шаги по настройке сервера на Ubuntu 22.04 LTS или Debian 12 (рекомендуемые дистрибутивы). Инструкции подойдут и для других дистрибутивов семейства Debian/RedHat с небольшими изменениями.

1. Базовая подготовка системы

Перед установкой каких‑либо сервисов обязательно обновите пакетный индекс и установите самые свежие обновления безопасности:

sudo apt update && sudo apt upgrade -y

Установите минимальный набор утилит, которые пригодятся в дальнейшем:

sudo apt install curl wget git htop net-tools ufw -y

Проверьте имя хоста (hostname) и при необходимости задайте понятное:

sudo hostnamectl set-hostname my-server

Убедитесь, что система видит правильный часовой пояс:

timedatectl set-timezone Europe/Moscow

2. Установка Docker и Docker Compose

Большинство self‑hosted приложений распространяются в виде Docker-образов. Использование контейнеров упрощает управление зависимостями и обновлениями.

2.1. Установка Docker Engine

Для Ubuntu/Debian воспользуйтесь официальным скриптом (самый простой способ):

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

После установки добавьте своего пользователя в группу docker, чтобы не вводить sudo для каждой команды:

sudo usermod -aG docker $USER

Перезапустите сессию (выход и повторный вход) или выполните:

newgrp docker

Проверьте работу Docker:

docker --version
docker run hello-world

2.2. Установка Docker Compose (V2)

В новых версиях Docker Compose входит в состав плагинов. Установите его:

sudo apt install docker-compose-plugin

Проверьте:

docker compose version

Если по какой‑то причине плагин не установился, можно скачать бинарный файл вручную (инструкция на официальном сайте).

3. Развёртывание Nextcloud

Nextcloud — это ваш личный облачный офис. Рассмотрим запуск через Docker Compose.

Создайте рабочую директорию:

mkdir ~/nextcloud && cd ~/nextcloud

Создайте файл docker-compose.yml со следующим содержимым:

version: '3'

services:
  db:
    image: mariadb:10.6
    restart: unless-stopped
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
    volumes:
      - ./db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=secretrootpass
      - MYSQL_PASSWORD=secretpass
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud:stable
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - ./data:/var/www/html/data
      - ./config:/var/www/html/config
      - ./apps:/var/www/html/custom_apps
    environment:
      - MYSQL_HOST=db
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_PASSWORD=secretpass
    depends_on:
      - db

Замените пароли secretrootpass и secretpass на свои надёжные.

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

docker compose up -d

Теперь Nextcloud доступен по адресу http://<ваш-IP-сервера>:8080. Пройдите первоначальную настройку через веб-интерфейс (создайте учётную запись администратора).

4. Установка ZeroTier

ZeroTier создаёт виртуальную частную сеть, объединяющую ваши устройства из любой точки мира.

Установите клиент одной командой:

curl -s https://install.zerotier.com | sudo bash

После установки запустите сервис:

sudo systemctl start zerotier-one
sudo systemctl enable zerotier-one

Присоединитесь к своей сети (идентификатор сети вы получите в веб‑панели ZeroTier):

sudo zerotier-cli join <network_id>

В панели управления ZeroTier одобрите новое устройство (оно появится в списке членов). Проверить статус:

sudo zerotier-cli status
sudo zerotier-cli listnetworks

5. Настройка брандмауэра (UFW)

Откройте только необходимые порты. Для начала — SSH, порты для Nextcloud и ZeroTier:

sudo ufw allow 22/tcp
sudo ufw allow 8080/tcp        # Nextcloud
sudo ufw allow 9993/udp        # ZeroTier (если нужно прямое соединение)

Если вы планируете использовать стандартные порты HTTP/HTTPS через обратный прокси, откройте их:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Включите брандмауэр:

sudo ufw enable

Проверьте список правил:

sudo ufw status verbose

6. Рекомендации по безопасности

  • Регулярно обновляйте систему: sudo apt update && sudo apt upgrade -y
  • Настройте автоматические обновления безопасности (пакет unattended-upgrades).
  • Используйте SSH-ключи вместо пароля для входа.
  • Не запускайте контейнеры от root: в compose-файлах можно указать user: "1000:1000".
  • Разграничьте тома для Nextcloud: вынесите базу данных, данные и конфиги в отдельные папки (уже сделано в примере).
  • Установите fail2ban для защиты от брутфорса.
  • Для публичного доступа настройте HTTPS через Let's Encrypt (например, с помощью Nginx или Traefik).

7. Полезные команды для ежедневной работы

Команда Назначение
docker ps список запущенных контейнеров
docker logs <имя_контейнера> просмотр логов
docker exec -it <имя> bash войти в контейнер
docker compose up -d перезапустить все сервисы в фоне
docker system prune -a очистить неиспользуемые образы/контейнеры

См. также

  • Windows – настройка Windows для аналогичных целей
  • macOS – инструкция для macOS
  • Docker – подробнее о контейнеризации
  • Nextcloud – углублённая настройка Nextcloud
  • ZeroTier – расширенные сценарии использования ZeroTier
  • VPN – обзор VPN-решений и настройка OpenVPN/WireGuard