Перейти к содержанию

Обзор развертывания RustFS на сервере

Предварительные требования

Для успешного развертывания приложения требуются следующие условия:

  • Операционная система: Ubuntu.

  • Права доступа: Права суперпользователя (root) для установки системных пакетов и управления Docker.

  • Доменное имя: Настроенный домен, соответствующий шаблону (см. раздел ниже).

  • Порты: Должны быть открыты порты 80 (HTTP) и 443 (HTTPS) в брандмауэре для доступа к веб-интерфейсу и API.

FQDN итоговой панели на домене hostkey.in

Для работы веб-консоли и API используется автоматическое формирование доменного имени по следующему шаблону:

Параметр Значение
Префикс rustfs
Домен hostkey.in
Полный шаблон rustfs{Server_ID_from_Invapi}.hostkey.in

Структура файлов и каталогов

В процессе установки создаются следующие директории для хранения конфигураций, данных и сертификатов:

  • /root/rustfs — рабочая директория приложения и файлы окружения (.env).

  • /data/rustfs — хранилище объектов (данных) RustFS.

  • /root/nginx — конфигурационные файлы Docker Compose для прокси-сервера.

  • /data/nginx — системные файлы Nginx и настройки SSL.

  • /data/nginx/user_conf.d — пользовательские конфигурации виртуальных хостов.

  • /data/nginx/letsencrypt — сертификаты SSL (Certbot).

Процесс установки приложения

Развертывание выполняется в несколько этапов:

  1. Подготовка системы: Очистка старых репозиториев Docker и установка необходимых системных пакетов (ca-certificates, curl).

  2. Установка среды выполнения: Установка Docker и настройка окружения.

  3. Развертывание контейнера приложения:

  4. Создание директорий для данных с установленными правами доступа (UID/GID 10001).

  5. Генерация файла .env с учетными данными (RUSTFS_ACCESS_KEY).

  6. Запуск контейнера RustFS через Docker Compose.

  7. Настройка проксирования и SSL:

  8. Настройка Nginx для перенаправления трафика (HTTP -> HTTPS).

  9. Получение SSL-сертификатов через Certbot.

  10. Конфигурирование автоматического обновления сертификатов каждые 8 дней.

Версия приложения: docker.io/rustfs/rustfs:1.0.0.

Права доступа и безопасность

  • Пользователь: Приложение работает от имени пользователя с UID 10001 для обеспечения безопасности данных.

  • Брандмауэр (UFW): Автоматически разрешаются входящие соединения на порты 80/tcp и 443/tcp.

  • Безопасность контейнера: В Docker Compose включена опция no-new-privileges:true, ограничивающая возможности повышения привилегий внутри контейнера.

Базы данных

В данной конфигурации база данных не используется; приложение работает как объектное хранилище, сохраняя данные непосредственно в файловой системе по пути /data/rustfs.

Контейнеры Docker и их запуск

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

RustFS

  • Образ: docker.io/rustfs/rustfs:1.0.0

  • Имя контейнера: rustfs

  • Порты:

  • 9000 (S3 и Admin API) — доступен локально через Nginx.

  • 9001 (Web Console) — доступен локально через Nginx.

  • Тома: /data/rustfs в контейнере привязан к /data/rustfs на хосте.

  • Переменные окружения: Настройки путей, адресов и ключей доступа.

  • Политика перезапуска: unless-stopped.

Nginx Proxy (Certbot)

  • Образ: jonasal/nginx-certbot:6.2.0-nginx1.31.0

  • Сеть: Режим host.

  • Тома:

  • /etc/letsencrypt для хранения сертификатов.

  • Конфигурации Nginx из /data/nginx/user_conf.d.

  • Политика перезапуска: unless-stopped.

Инструкция по обновлению приложения

Для обновления основного приложения RustFS необходимо выполнить следующие действия:

  1. Перейти в рабочую директорию приложения:

    cd /root/rustfs
    

  2. Обновить образ и перезапустить контейнер:

    docker compose pull && docker compose up -d
    

Расположение конфигурационных файлов и данных

Тип данных Путь на хосте
Конфигурация приложения (.env) /root/rustfs/.env
Данные (объекты) /data/rustfs
Конфигурация Nginx /data/nginx/user_conf.d/{domain}.conf
Docker Compose приложения /root/rustfs/compose.yml

Доступные порты для подключения

  • Веб-интерфейс (HTTPS): 443 (через домен).

  • S3 API: 9000 (доступ через прокси по HTTPS).

  • Административный доступ: Через веб-консоль на порту 443.

Запуск, остановка приложения

Управление контейнером RustFS осуществляется командами Docker Compose из директории /root/rustfs:

  • Запуск:

    docker compose up -d
    

  • Остановка:

    docker compose down
    

  • Проверка статуса:

    docker compose ps
    

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×