Как создать собственный облачный сервер на базе Raspberry Pi

Вы устали платить за облака, которые не используете на полную? Или хотите хранить свои файлы, сайты, бэкапы — но не доверяете коммерческим сервисам? Или просто хотите понять, как всё это работает изнутри? Я сам сделал свой сервер на Raspberry Pi три года назад — и до сих пор он работает без сбоев, потребляя меньше энергии, чем лампочка. И да, это реально проще, чем кажется.

В этой статье — пошагово: как собрать сервер, настроить его, избежать типичных ошибок и сделать так, чтобы он не превратился в «электронный кирпич» через месяц. Никакой теории про «облачные архитектуры» — только то, что нужно, чтобы сервер начал работать и не сломался.

Что вам понадобится

Собирать сервер на Raspberry Pi — это как собрать ПК из деталей. Только дешевле и тише. Вот минимальный набор:

  • Raspberry Pi 4 (2–4 ГБ ОЗУ) — Pi 3 тоже подойдёт, но Pi 4 быстрее и стабильнее. 2 ГБ — минимум, 4 ГБ — идеально, если будете запускать контейнеры или базы данных.
  • MicroSD-карта 32 ГБ (класс 10 или U3) — не берите дешёвые китайские. Лучше SanDisk Extreme или Samsung EVO. ОС и логи будут писаться на неё постоянно — дешёвая карта сдохнет за пару месяцев.
  • Блок питания 5 В / 3 А с USB-C — не используйте зарядки от телефонов. Pi 4 потребляет до 3 А при нагрузке. Недостаток питания — главная причина зависаний и повреждений карты памяти.
  • Корпус с вентилятором — Pi 4 греется. Без охлаждения он будет снижать частоту, чтобы не перегреться. Вентилятор — не роскошь, а необходимость.
  • Жёсткий диск (опционально, но сильно рекомендую) — SSD через USB 3.0 (например, Samsung T7) или HDD 2.5″ с внешним питанием. ОС можно оставить на SD-карте, а данные — на диске. Это продлит жизнь карте и ускорит работу.
  • Кабель Ethernet — Wi-Fi работает, но для сервера стабильный провод — обязательный пункт. Даже если вы думаете, что «Wi-Fi хватит» — он не хватит.

Всё это стоит около 10–15 тысяч рублей — меньше, чем один месяц аренды облачного сервера в AWS или Hetzner.

Шаг 1: Установите ОС

Не устанавливайте Ubuntu Server или Debian «вручную». Это не сложно, но зачем усложнять? Используйте Raspberry Pi Imager — официальная утилита от Raspberry Pi Foundation.

  1. Скачайте Raspberry Pi Imager (для Windows, macOS или Linux).
  2. Вставьте MicroSD-карту в компьютер.
  3. Выберите в программе: Operating System → Raspberry Pi OS (64-bit).
  4. Нажмите Storage → Choose Storage — выберите вашу карту.
  5. Нажмите Write. Ждите 5–10 минут.

Важно: перед записью нажмите на значок шестерёнки (Advanced Options) и включите:

  • Enable SSH — чтобы подключаться по сети без монитора.
  • Set username and password — не оставляйте pi:raspberry. Придумайте свой логин и пароль.
  • Configure Wi-Fi — если не используете Ethernet, добавьте имя сети и пароль.

После записи выньте карту, вставьте в Pi, подключите питание и кабель Ethernet. Через 1–2 минуты он запустится.

Шаг 2: Подключитесь и обновите систему

Откройте терминал на своём компьютере и введите:

ssh pi@raspberrypi.local

Если всё работает — вас попросят ввести пароль. Введите тот, который вы задали в Imager.

После входа сразу обновите систему:

sudo apt update && sudo apt upgrade -y

Это займёт 5–15 минут. Не пропускайте — уязвимости в старых версиях — главный путь для взлома.

Шаг 3: Перенесите данные на внешний диск

Теперь подключите SSD или HDD через USB 3.0. Проверьте, что диск определился:

lsblk

Вы увидите что-то вроде:

NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  500G  0 disk
└─sda1        8:1    0  500G  0 part
mmcblk0       179:0    0   32G  0 disk
└─mmcblk0p1 179:1    0   32G  0 part /

Здесь sda1 — ваш внешний диск. Отформатируйте его в ext4 (если он новый):

sudo mkfs.ext4 /dev/sda1

Создайте папку для данных и смонтируйте диск:

sudo mkdir /mnt/data
sudo mount /dev/sda1 /mnt/data

Чтобы диск монтировался автоматически при загрузке, отредактируйте файл /etc/fstab:

sudo nano /etc/fstab

Добавьте строку:

/dev/sda1 /mnt/data ext4 defaults,noatime 0 2

Сохраните (Ctrl+O, Enter, Ctrl+X). Проверьте:

sudo mount -a

Если ошибок нет — диск теперь будет автоматически подключаться при каждом запуске.

Шаг 4: Установите серверное ПО

Теперь выбираем, что именно будет вашим «облаком». Вот три популярных варианта:

Цель Что установить Почему так
Хранить файлы, синхронизировать с телефонов Nextcloud Самый удобный аналог Dropbox. Есть мобильные приложения, версии файлов, шаринг, календарь.
Запускать сайты, веб-приложения Portainer + Docker Удобно управлять контейнерами. Можно запускать WordPress, WordPress с MariaDB, Node.js-приложения — всё в изоляции.
Резервные копии Restic + MinIO Шифрованные бэкапы. Минио — это S3-совместимое хранилище. Подходит для бэкапов из Windows, Mac, Linux.

Если вы новичок — начните с Nextcloud. Он даёт ощутимый результат: вы сразу можете загружать файлы с телефона и получать к ним доступ из любого браузера.

Установка Nextcloud через Docker:

sudo apt install docker.io docker-compose -y
sudo systemctl enable --now docker

Создайте папку для конфигов:

mkdir -p ~/nextcloud && cd ~/nextcloud

Создайте файл docker-compose.yml:

version: '3.8'
services:
  db:
    image: mariadb:10.6
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - /mnt/data/nextcloud/db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=ваш_пароль_для_mysql
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_PASSWORD=ваш_пароль_для_nextcloud
  redis:
    image: redis:alpine
    restart: always
  app:
    image: nextcloud:latest
    ports:
      - 8080:80
    links:
      - db
      - redis
    volumes:
      - /mnt/data/nextcloud/apps:/var/www/html/apps
      - /mnt/data/nextcloud/config:/var/www/html/config
      - /mnt/data/nextcloud/data:/var/www/html/data
    restart: always
  reverse-proxy:
    image: nginx:alpine
    ports:
      - 80:80
      - 443:443
    volumes:
      - /mnt/data/nextcloud/nginx:/etc/nginx/conf.d
      - /mnt/data/nextcloud/certs:/etc/nginx/certs
    depends_on:
      - app
    restart: always

Запустите:

docker-compose up -d

Через 2–5 минут зайдите в браузер на http://IP_ВАШЕГО_PI:8080 — вы увидите установку Nextcloud. Укажите администратора, имя базы данных (nextcloud), логин и пароль (как в docker-compose). Готово.

Шаг 5: Доступ извне — настройте домен и динамический IP

Ваш сервер сейчас работает только в локальной сети. Чтобы получить доступ извне — например, с работы или из отпуска — нужно два шага:

  1. Настроить порт на роутере — откройте доступ к порту 8080 (или 80/443, если используете nginx) на вашем роутере. Ищите в настройках «Port Forwarding» — укажите IP вашего Pi и порт 8080.
  2. Получить доменное имя — у вас динамический IP от провайдера. Он меняется. Решение: используйте бесплатный сервис вроде DuckDNS. Зарегистрируйтесь, создайте домен (например, myserver.duckdns.org), скачайте скрипт обновления и настройте его на Pi через cron.

Пример скрипта для DuckDNS:

#!/bin/bash
curl -s "https://www.duckdns.org/update?domains=ВАШ_ДОМЕН&token=ВАШ_ТОКЕН&ip="

Сохраните как ~/duckdns.sh, сделайте исполняемым:

chmod +x ~/duckdns.sh

Добавьте в cron, чтобы обновлялось каждые 5 минут:

crontab -e

Добавьте строку:

*/5 * * * * /home/pi/duckdns.sh >> /var/log/duckdns.log 2>&1

Теперь вы можете зайти на http://myserver.duckdns.org:8080 из любого места.

Частые ошибки — и как их избежать

  • Используете дешёвую SD-карту — она выйдет из строя через 3–6 месяцев. Используйте только проверенные модели (SanDisk, Samsung).
  • Питание от телефонного зарядного устройства — Pi 4 глючит, зависает, повреждает карту. Берите только 5 В / 3 А с сертификатом.
  • Не делаете бэкапы — сервер на Pi — это не «облако». Это ваша личная машина. Если диск сдохнет — всё пропадёт. Делайте бэкапы на другой диск или в облако (например, через rclone в Google Drive).
  • Открываете порты без защиты — если вы открыли порт 8080 и не настроили SSL, вас могут взломать. Включите Let’s Encrypt через nginx — это бесплатно и просто.
  • Запускаете слишком много сервисов — Pi 4 с 2 ГБ ОЗУ не тянет одновременно Nextcloud, Docker, медиасервер и торрент-клиент. Выбирайте 1–2 цели и делайте их хорошо.

Что выбрать — в зависимости от вашей ситуации

  • Если вы хотите просто хранить фото и документы и иметь доступ к ним с телефона — Nextcloud. Это ваш выбор. Просто, надёжно, безопасно.
  • Если вы разработчик и хотите тестировать сайты, API, базы данных — Docker + Portainer. Управляйте контейнерами через веб-интерфейс, легко переносите окружения.
  • Если вы хотите делать автоматические бэкапы всех своих устройств — Restic + MinIO. Установите MinIO как S3-хранилище, настройте rclone на всех компьютерах — и бэкапы будут идти в фоне, с шифрованием.
  • Если вы просто хотите «попробовать» и не знаете, что вам нужно — начните с Nextcloud. Он даст вам ощутимый результат за 2 часа. Потом, если захотите — добавите Docker.

Как лучше сделать — практические рекомендации

  • Всегда используйте внешний диск для данных. SD-карта — только для ОС.
  • Настройте автоматические обновления: sudo apt install unattended-upgrades — и система будет сама обновлять безопасные пакеты.
  • Включите логирование — смотрите journalctl -u docker или tail -f /var/log/nginx/error.log, если что-то не работает.
  • Используйте Let’s Encrypt для HTTPS. Это бесплатно, и через Certbot это делается за 5 минут.
  • Не открывайте порты без необходимости. Если вы не используете сервер извне — не открывайте его. Используйте VPN (WireGuard) для доступа извне — это безопаснее.
  • Проверяйте температуру: vcgencmd measure_temp. Если выше 75°C — улучшайте охлаждение.

Итог: что делать прямо сейчас

Если вы читаете это — вы уже на полпути. Вот что делать в следующие 2 часа:

  1. Соберите набор: Pi 4, SD-карта, блок питания, корпус с вентилятором, Ethernet-кабель.
  2. Запишите Raspberry Pi OS на карту через Imager — включите SSH и задайте пароль.
  3. Запустите Pi, подключите его к роутеру по кабелю.
  4. Подключитесь по SSH и обновите систему.
  5. Установите Docker и Nextcloud — по инструкции выше.
  6. Настройте DuckDNS и проброс порта.
  7. Зайдите с телефона — загрузите фото. Проверьте, что всё работает.

Если вы это сделаете — у вас уже будет свой облачный сервер. Не на Amazon, не на Google, а на вашем столе. Он будет работать тихо, экономно, и вы будете знать, где ваши данные. Это не просто технический проект — это свобода от зависимостей.

Сервер на Pi — не «для гиков». Это просто способ взять контроль над тем, что вы создаёте и храните. И это доступно каждому, кто готов потратить 2 часа и 10 тысяч рублей.

Информация в этой статье носит ознакомительный характер. Настройка сервера, особенно с доступом из интернета, требует понимания безопасности. Если вы не уверены в своих действиях — проконсультируйтесь с специалистом по информационной безопасности.

dfncfg.ru — цифровой мир и технологии