TrueNAS облачное хранилище - настройка Nextcloud, S3 за 2025 | AdminWiki
Timeweb Cloud — сервера, Kubernetes, S3, Terraform. Лучшие цены IaaS.
Попробовать

TrueNAS как облачное хранилище: Полное руководство по настройке Nextcloud и S3

20 февраля 2026 7 мин. чтения #Nextcloud #nas #s3 #self-hosted #truenas #zfs #облачное хранилище

Представь, что у тебя есть собственная инфраструктура хранения данных — надежная, масштабируемая и полностью под твоим контролем. Это не фантазия, а реальность с TrueNAS. В этом руководстве мы разберем, как превратить TrueNAS в полноценное облачное хранилище, которое заменит тебе Dropbox, Google Drive или AWS S3, но будет находиться в твоей локальной сети или дата-центре.

Ключевая идея: TrueNAS — это не просто NAS (Network Attached Storage), а платформа для построения enterprise-решений. С помощью контейнеризации и виртуализации мы можем развернуть на нем сервисы уровня облачных провайдеров.

Архитектура облачного хранилища на TrueNAS

Давай разберем, из каких компонентов будет состоять наше решение:

  • TrueNAS Core/Scale — базовая операционная система с ZFS
  • Nextcloud (в Docker/TrueNAS Apps) — веб-интерфейс для файлов, календаря, контактов
  • MinIO или S3-сервис — S3-совместимое объектное хранилище
  • Reverse Proxy (Nginx/Caddy) — безопасная публикация сервисов
  • ZFS Dataset — основное хранилище с квотами, снапшотами

Подготовка ZFS Dataset для облачного хранилища

Перед развертыванием сервисов создадим изолированное хранилище. Зайди в веб-интерфейс TrueNAS:

  1. Перейди в Storage → Datasets
  2. Создай новый Dataset с именем cloud-storage
  3. Настрой квоты (например, 1TB для пользовательских данных)
  4. Включи compression=lz4 и atime=off для производительности
bash
# Проверяем созданный dataset из командной строки
zfs list -r pool1/cloud-storage
# NAME                   USED  AVAIL  REFER  MOUNTPOINT
# pool1/cloud-storage    150G   850G   150G  /mnt/pool1/cloud-storage

Настройка SMB/NFS для внутреннего доступа

Для интеграции с другими системами создадим общую папку:

Путь к шару: /mnt/pool1/cloud-storage

Разрешения: 0770 для группы cloud-users

SMB параметры: aio max threads = 8 (для производительности)

Развертывание Nextcloud как основного облачного интерфейса

В TrueNAS Scale используем встроенный Apps (Kubernetes):

  1. Переходим в Apps → Available Applications
  2. Ищем "Nextcloud" и нажимаем Install
  3. Конфигурируем Storage:
yaml
# Пример конфигурации хранилища в values.yaml
persistence:
  data:
    enabled: true
    storageClass: ""
    accessMode: ReadWriteOnce
    size: 500Gi
    mountPath: /var/www/html/data
  nextcloud:
    enabled: true
    storageClass: ""
    accessMode: ReadWriteOnce
    size: 10Gi
    mountPath: /var/www/html
Важно! Для production используй внешнюю базу данных (PostgreSQL) вместо встроенной SQLite. Настрой ее через переменные окружения: MYSQL_HOST, MYSQL_DATABASE, MYSQL_USER, MYSQL_PASSWORD

Оптимизация Nextcloud для TrueNAS

Добавь в config/config.php следующие параметры:

php
'trusted_domains' => 
  array (
    0 => 'cloud.your-domain.com',
    1 => '192.168.1.100',
  ),
'overwriteprotocol' => 'https',
'trusted_proxies' => ['172.16.0.0/12'],
'filelocking.enabled' => true,  # Важно для NFS/SMB
'memcache.local' => '\\OC\\Memcache\\APCu',
'preview_max_x' => 2048,
'preview_max_y' => 2048,

Настройка S3-совместимого хранилища с MinIO

Для совместимости с AWS S3 API развернем MinIO через TrueNAS Apps:

docker-compose
version: '3.7'
services:
  minio:
    image: minio/minio:latest
    command: server /data --console-address ":9001"
    ports:
      - "9000:9000"  # S3 API
      - "9001:9001"  # Web Console
    volumes:
      - /mnt/pool1/cloud-storage/minio:/data
    environment:
      MINIO_ROOT_USER: admin
      MINIO_ROOT_PASSWORD: StrongPassword123!
      MINIO_REGION: us-east-1
    restart: unless-stopped

После запуска создай bucket и access keys через веб-консоль (порт 9001).

Интеграция Nextcloud с S3

Установи приложение "External storage support" и добавь новое хранилище:

Параметр Значение
Backend Amazon S3
Bucket nextcloud-backup
Hostname minio.local:9000
Region us-east-1
Path Style true (для self-hosted)

Публикация облачного хранилища в интернет

Для безопасного доступа извне используем Reverse Proxy. Установи Traefik или Nginx через Apps:

nginx.conf
server {
    listen 443 ssl http2;
    server_name cloud.your-domain.com;

    ssl_certificate /etc/ssl/cloud.crt;
    ssl_certificate_key /etc/ssl/cloud.key;

    location / {
        proxy_pass http://nextcloud.default.svc.cluster.local:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # WebSocket support для Nextcloud Talk
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    # Большие файлы для загрузки
    client_max_body_size 20G;
    proxy_max_temp_file_size 0;
}
Безопасность! Обязательно:
  • Настрой Fail2ban для защиты от брутфорса
  • Используй Let's Encrypt для SSL сертификатов
  • Ограничь доступ по GeoIP (через Nginx)
  • Включи 2FA в Nextcloud

Резервное копирование и снапшоты ZFS

Одно из главных преимуществ TrueNAS — встроенные снапшоты ZFS. Настрой периодические снапшоты:

bash
# Создание снапшота вручную
zfs snapshot pool1/cloud-storage@$(date +%Y-%m-%d_%H-%M)

# Автоматические снапшоты через Cron в TrueNAS
# Задачи → Cron Jobs → Add
# Command: zfs snapshot -r pool1/cloud-storage@auto_$(date +\%Y\%m\%d_\%H\%M)
# Schedule: 0 */4 * * *  (каждые 4 часа)

Для репликации на другой TrueNAS используй Tasks → Replication Tasks.

Мониторинг и производительность

Установи Grafana и Prometheus через Apps для мониторинга:

  • ZFS Pool Health — статус дисков, SMART
  • Network Throughput — загрузка сети
  • CPU/Memory Usage Nextcloud и MinIO
  • S3 API Latency — время ответа MinIO

Оптимизация для высокой нагрузки:

  1. Настрой ZFS ARC cache (System → Tunables)
  2. Включи sync=disabled для NFS (если есть UPS)
  3. Используй отдельный SSD для ZIL/SLOG
  4. Настрой Redis для кеширования Nextcloud

Часто задаваемые вопросы (FAQ)

Можно ли использовать TrueNAS как замену Google Drive?

Да, полностью. Nextcloud предоставляет аналогичный функционал: веб-интерфейс, мобильные приложения, синхронизацию папок (Nextcloud Desktop Client), общий доступ к файлам, календарь, контакты и даже документы (Collabora Online).

Какой минимум железа нужен для домашнего облака?

Для 5-10 пользователей достаточно:

  • CPU: Intel Core i3 / AMD Ryzen 3 (4+ ядер)
  • RAM: 16-32 GB ECC (обязательно для ZFS)
  • Storage: 4x HDD 4TB в RAIDZ1 (ZFS) + SSD для кеша
  • Network: 1 GbE (лучше 2.5 GbE)

Как организовать доступ для команды из 50 человек?

Интегрируй Nextcloud с LDAP/Active Directory. В TrueNAS создай LDAP сервер (Directory Services), затем в Nextcloud установи приложение "LDAP user and group backend". Это позволит централизованное управление пользователями.

Можно ли использовать AWS CLI с моим MinIO?

Да, MinIO полностью совместим с AWS S3 API. Настрой endpoint:

bash
aws configure set aws_access_key_id MINIO_ACCESS_KEY
aws configure set aws_secret_access_key MINIO_SECRET_KEY
aws configure set default.region us-east-1
aws s3 ls --endpoint-url http://minio.local:9000
Профессиональный совет: Для production-среды разнеси сервисы по разным jail/контейнерам. Nextcloud, MinIO, Reverse Proxy и база данных должны работать изолированно. Используй отдельные ZFS dataset для каждого сервиса с индивидуальными квотами и снапшотами.

Заключение

TrueNAS предоставляет все необходимое для построения облачного хранилища enterprise-уровня. Комбинация ZFS (надежность, снапшоты), контейнеризации (гибкость) и открытого ПО (Nextcloud, MinIO) создает мощную альтернативу публичным облакам.

Основные преимущества такого подхода:

  • Полный контроль над данными и конфиденциальностью
  • Неограниченное масштабирование (добавляй диски в ZFS pool)
  • Нулевая абонентская плата после первоначальных инвестиций
  • Интеграция с существующей инфраструктурой
  • Гибридный сценарий — можно реплицировать важные данные в AWS S3

Следующие шаги: Начни с тестового стенда на виртуальной машине, протестируй миграцию данных, затем разверни на физическом железе. Не забудь настроить мониторинг и регулярные тесты восстановления из снапшотов.

Поделиться:
Сохранить гайд? В закладки браузера