Linux: различия между версиями
Admin (обсуждение | вклад) Новая страница: «= Linux: подготовка и развёртывание self‑hosted сервисов = Linux — основная платформа для размещения собственных облачных сервисов. Благодаря открытости, гибкости и минимальным требованиям к ресурсам, большинство решений (Nextcloud, ZeroTier, OpenVPN и др.) разрабатываются...» |
Admin (обсуждение | вклад) м Защитил страницу 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 |
очистить неиспользуемые образы/контейнеры |