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

Как создать собственный облачный сервер на базе 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 — цифровой мир и технологии