Гид по технологиям

Установка Pydio Cells на Debian 12 с MariaDB и Apache2

8 min read Self-hosting Обновлено 20 Nov 2025
Pydio Cells на Debian 12 — установка и настройка
Pydio Cells на Debian 12 — установка и настройка

Pydio Cells — это самохостящаяся платформа для обмена документами и совместной работы. В этом руководстве показано, как установить Pydio Cells на Debian 12 с MariaDB в качестве СУБД и Apache2 в роли обратного прокси, а также как защитить сервис с помощью сертификатов Let’s Encrypt через Certbot. Пошагово: подготовка сервера, установка зависимостей, настройка MariaDB, установка бинарника Cells, создание systemd‑сервиса, конфигурация Apache2 и получение SSL‑сертификата.

О чём эта инструкция

Это подробное практическое руководство для системных администраторов и инженеров, которые хотят самостоятельно развернуть Pydio Cells на Debian 12. Включены секции по безопасности, отладке, ролям и критериям приёмки.

Основные термины

  • Pydio Cells — серверное приложение для совместной работы с файлами.
  • Certbot / Let’s Encrypt — инструмент и CA для автоматического получения бесплатных TLS‑сертификатов.
  • Reverse proxy — обратный прокси, перенаправляющий внешние HTTPS‑запросы к приложению, работающему локально.

Pydio Cells логотип и интерфейс

Кому это полезно

  • Инженерам по инфраструктуре, которые хотят полноценно контролировать документооборот.
  • Командам, которые нуждаются в приватной среде для обмена файлами и автоматизации рабочих процессов.

Варианты использования и ограничения

  • Подходит для небольших и средних компаний, у которых есть выделенный сервер и желание контролировать данные.
  • Для крупных кластерных установок рассматривайте HA‑развёртывания с дополнительными компонентами (репликация, балансировка и т.д.).

Важно: инструкция описывает развёртывание на одном сервере с локальной MariaDB и Apache2. Для production‑кластеров потребуются дополнительные архитектурные решения.

Требования

  • Сервер с Debian 12.
  • Непривилегированный пользователь с правами sudo.
  • Доменное имя, указывающее на IP сервера (A/AAAA запись).

Установка зависимостей

Обновите индекс пакетов:

sudo apt update

Установите MariaDB, Apache2, Certbot, wget:

sudo apt install mariadb-server apache2 certbot wget

Подтвердите установку, введя y и нажав ENTER.

Установка зависимостей: вывод apt

Проверьте статус apache2:

sudo systemctl is-enabled apache2
sudo systemctl status apache2

Результат должен показать, что служба включена и запущена.

Проверка apache2: systemctl status

Проверьте status mariadb:

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Проверка mariadb: systemctl status

Настройка MariaDB

Защитите установку MariaDB и создайте базу данных для Cells.

Запустите утилиту безопасности:

sudo mariadb-secure-installation

Рекомендуемые ответы в сценарии установки:

  • Switch local authentication to unix_socket? — n
  • Set up the new MariaDB root password? — y (установите сложный пароль)
  • Remove anonymous user? — y
  • Remove the default database test? — y
  • Disallow root login remotely? — y
  • Reload privilege tables? — y

Войдите в сервер MariaDB:

sudo mariadb -u root -p

Создайте базу и пользователя (пример):

CREATE DATABASE cells;
CREATE USER 'pydio'@'localhost' IDENTIFIED BY 'p4ssw0rd';
GRANT ALL PRIVILEGES ON cells.* to 'pydio'@'localhost';
FLUSH PRIVILEGES;

Замените p4ssw0rd на безопасный пароль в реальной среде.

Создание базы и пользователя в MariaDB

Проверьте привилегии:

SHOW GRANTS FOR 'pydio'@'localhost';

Проверка грантов пользователя pydio

Выйдите командой quit.

Установка Pydio Cells

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

Создание пользователя и директорий

sudo useradd -m -s /bin/bash pydio
sudo mkdir -p /opt/pydio/bin /var/cells
sudo chown -R pydio: /opt/pydio /var/cells

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

sudo tee -a /etc/profile.d/cells-env.sh << EOF
export CELLS_WORKING_DIR=/var/cells
export CELLS_BIND=https://127.0.0.1:8080
export CELLS_EXTERNAL=https://cells.howtoforge.local
EOF
sudo chmod 0755 /etc/profile.d/cells-env.sh

Настройте переменные под ваш домен и путь. Пример: если у вас domain.example, замените CELLS_EXTERNAL=https://cells.domain.example

Настройка системных переменных

Проверьте под пользователем pydio:

su - pydio
echo $CELLS_WORKING_DIR
echo $CELLS_BIND
echo $CELLS_EXTERNAL

Проверка переменных окружения

Загрузка бинарника и подготовка

Выполните загрузку бинарника в /opt/pydio/bin:

export distribId=cells
wget -O /opt/pydio/bin/cells https://download.pydio.com/latest/${distribId}/release/{latest}/linux-amd64/${distribId}

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

chmod a+x /opt/pydio/bin/cells
sudo setcap 'cap_net_bind_service=+ep' /opt/pydio/bin/cells
sudo ln -s /opt/pydio/bin/cells /usr/local/bin/cells

Затем как pydio проверьте расположение и версию:

which cells
cells version

В примере установлена версия 4.2.5.

Проверка версии Cells

Базовая конфигурация Pydio Cells

Запустите интерактивную конфигурацию через CLI:

cells configure --cli

Типовые ответы:

  • База данных: TCP, host=localhost, порт=3306, db=cells, user=pydio, password — тот, что вы задали.
  • MongoDB: n (если не планируете HA).
  • Админ‑пользователь: задайте логин и сильный пароль.
  • Хранилище: /var/cells/data.

После завершения вы увидите сообщение Installation Finished.

Конфигурация cells через CLI

Создание systemd‑сервиса

Создайте файл /etc/systemd/system/cells.service и вставьте конфигурацию (отредактируйте CELLS_* при необходимости):

[Unit]
Description=Pydio Cells
Documentation=https://pydio.com
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/opt/pydio/bin/cells

[Service]
User=pydio
Group=pydio
PermissionsStartOnly=true
AmbientCapabilities=CAP_NET_BIND_SERVICE
ExecStart=/opt/pydio/bin/cells start
Restart=on-failure
StandardOutput=journal
StandardError=inherit
LimitNOFILE=65536
TimeoutStopSec=5
KillSignal=INT
SendSIGKILL=yes
SuccessExitStatus=0
WorkingDirectory=/home/pydio

Environment=CELLS_WORKING_DIR=/var/cells
Environment=CELLS_BIND=https://127.0.0.1:8080
Environment=CELLS_EXTERNAL=https://cells.howtoforge.local

[Install]
WantedBy=multi-user.target

Перезагрузите systemd, запустите и включите сервис:

sudo systemctl daemon-reload
sudo systemctl start cells
sudo systemctl enable cells
sudo systemctl status cells

Служба должна быть active (running) и прослушивать 127.0.0.1:8080 согласно CELLS_BIND.

Сервис cells запущен

Настройка Apache2 как обратного прокси и получение SSL

Включите необходимые модули Apache

sudo a2enmod rewrite proxy proxy_http proxy_wstunnel http2 proxy_http2

Создайте веб‑корень для проверки владения доменом при выдаче сертификата:

sudo mkdir -p /var/www/html/cells/public_html
sudo chown -R www-data:www-data /var/www/html/cells/public_html

Получите сертификат через webroot (замените email и домен):

sudo certbot certonly --agree-tos --email [email protected] --no-eff-email --webroot -w /var/www/html/cells/public_html -d cells.howtoforge.local

После успешного выполнения сертификаты появятся в /etc/letsencrypt/live/.

Конфигурация виртуального хоста Apache

Создайте /etc/apache2/sites-available/cells.conf и вставьте конфигурацию (измените домен и пути к сертификатам):


    ServerName cells.howtoforge.local

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

    RewriteCond %{SERVER_NAME} =cells.howtoforge.local
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]



    ServerName cells.howtoforge.local
    AllowEncodedSlashes On
    RewriteEngine On

    # be aware of this
    # Allow reverse proxy via self-signed certificates
    SSLProxyEngine On
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off

    ## The order of the directives matters.
    # If Cells is not running with https, consider using ws instead of wss
    ProxyPassMatch "/ws/(.*)" wss://localhost:8080/ws/$1 nocanon

    ## This rewrite condition is required if using Cells-Sync
    # RewriteCond %{HTTP:Content-Type} =application/grpc [NC]
    # RewriteRule /(.*) h2://localhost:8080/$1 [P,L]

    ProxyPass "/" "https://127.0.0.1:8080/"
    ProxyPassReverse "/" "https://127.0.0.1:8080/"

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    SSLCertificateFile /etc/letsencrypt/live/cells.howtoforge.local/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/cells.howtoforge.local/privkey.pem
    #Include /etc/letsencrypt/options-ssl-apache.conf

Активируйте сайт и проверьте синтаксис:

sudo a2ensite cells.conf
sudo apachectl configtest

Если Syntax OK, перезапустите Apache:

sudo systemctl restart apache2

Теперь Pydio Cells должен быть доступен по HTTPS через Apache.

Доступ к интерфейсу и базовая проверка

Откройте браузер и перейдите по адресу вашего домена, например:

https://cells.howtoforge.local/

Войдите под админом, указанным при конфигурации. Проверьте загрузку файла в рабочее пространство Personal Files.

Вход в Pydio Cells

Дашборд Pydio Cells

Проверка загрузки файла


Рекомендации по безопасности

  • Используйте сильные пароли для базы данных и админ‑аккаунта.
  • По возможности запретите прямой доступ к MariaDB из сети; разрешите доступ только с localhost или через защищённые каналы.
  • Уберите строки в конфигурации Apache, которые отключают проверку SSL цепочки в production (SSLProxyVerify none и подобные). Это удобно для тестов, но снижает безопасность. Вместо этого используйте корректные сертификаты для внутреннего соединения или настройте Cells на работу по HTTP на loopback и проксируйте только внешнее HTTPS.
  • Регулярно обновляйте систему и пакеты (Debian, Pydio, MariaDB, Apache, Certbot).

Тонкие моменты и возможные проблемы

  • Если при выдаче сертификата certbot пишет, что не удалось подтвердить владение доменом, проверьте A‑/AAAA‑записи и наличие файрвола, блокирующего 80/443 порты.
  • WebSocket (ws/wss) может требовать дополнительной настройки в прокси; убедитесь, что ProxyPassMatch для /ws/ корректен.
  • При ошибках авторизации к базе данных проверьте host у пользователя (pydio@localhost) и используемый порт.
  • Если Pydio не стартует из systemd, просмотрите журналы: sudo journalctl -u cells -b.

Чек‑лист по ролям

Администратор системы:

  • Проверить доступ по SSH и права sudo.
  • Настроить автономные бэкапы файловых директорий и дампов базы данных.

Системный инженер/DevOps:

  • Подготовить мониторинг сервиса и SLO (аптайм, время отклика).
  • Настроить ротацию логов и резервное копирование certbot.

Служба поддержки:

  • Проверить учётные данные админа и инструкцию восстановления пароля.
  • Наличие шаблонов ответов на типичные вопросы пользователей (подключение синхронизации, лимиты загрузки).

Критерии приёмки

  • Pydio Cells доступен по HTTPS на заданном домене и корректно отвечает на логин.
  • Админ может загрузить, скачать файл и создать рабочую область.
  • Служба cells работает под systemd и автоматически стартует при перезагрузке.
  • TLS‑сертификаты валидны и служба Apache проксирует запросы к локальному экземпляру Cells.

Мини‑SOP: обновление Pydio Cells

  1. Остановите сервис: sudo systemctl stop cells.
  2. Сделайте резервную копию директории CELLS_WORKING_DIR и дамп базы.
  3. Замените бинарник /opt/pydio/bin/cells новой версией и выставьте права.
  4. Перезагрузите сервис: sudo systemctl start cells.
  5. Проверить логи и функциональность, откатить резервную копию при проблемах.

Тестовые сценарии и приёмочные проверки

  • Авторизация: успешный вход под админом.
  • Загрузка: загрузить файл 100 МБ и убедиться, что он хранится в CELLS_WORKING_DIR.
  • Синхронизация: проверить подключение клиента (если используется) и передачу изменений.
  • Продолжительность старта: service стартует менее чем за 30 с (в зависимости от окружения).

Альтернативные подходы

  • Nginx как обратный прокси: часто используется вместо Apache; настройка proxy_pass, proxy_set_header, поддержка HTTP/2 и gRPC удобна для производительных конфигураций.
  • Docker / Kubernetes: для изолированных развёртываний и упрощённого управления жизненным циклом.
  • Traefik: автоматическая выдача сертификатов и встроенный маршрутизатор для динамичных сред.

Пример блока для Nginx (фрагмент):

location / {
    proxy_pass https://127.0.0.1:8080/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

Когда этот подход не подходит

  • Если вам требуется высокодоступное решение с несколькими репликами хранения и автоматической балансировкой — односерверное решение будет ограничено.
  • Если политики безопасности запрещают хранение ключей TLS и открытые порты — рассмотрите управляемое SaaS‑решение.

Модель зрелости развёртывания

  • Уровень 1 (Dev/Test): один сервер, самоподписанные сертификаты, минимальный мониторинг.
  • Уровень 2 (Prod базовый): один сервер, Let’s Encrypt, резервное копирование, базовый мониторинг.
  • Уровень 3 (Prod HA): кластер, выделенная СУБД с репликацией, балансировщики и геораспределённые бэкапы.

Матрица совместимости и советы по миграции

  • Debian 12 — целевая платформа в этом руководстве.
  • MariaDB — подходит как backend; используйте поддерживаемую версию из официальных репозиториев Debian.
  • При миграции с другой платформы: экспортируйте файлы, дампьте БД, проверьте версии Pydio и совместимость схемы.

Журналирование и отладка

  • Логи systemd: sudo journalctl -u cells -f
  • Логи Apache: /var/log/apache2/error.log и access.log
  • Если веб‑интерфейс возвращает ошибки 502/504, проверьте, действительно ли Cells слушает 127.0.0.1:8080 и доступен локально.

Privacy и соответствие данным

  • Данные хранятся на вашем сервере — вы контролируете доступ.
  • Если вы храните персональные данные жителей ЕС, продумайте соответствие GDPR: политики хранения, механизмы удаления, журналирование согласий и доступов.

Быстрое восстановление при ошибках (runbook)

  1. Если сервис упал: sudo systemctl status cells; sudo journalctl -u cells -n 200.
  2. Если проблема в БД: проверить соединение mariadb -u pydio -p -e ‘SELECT 1’.
  3. Откат: остановить сервис, вернуть файлы из бэкапа, восстановить дамп БД, запустить сервис.

Полезные команды вспомогательные

  • Проверить порты: sudo ss -ltnp | grep cells
  • Проверить SELinux/AppArmor (если используется): журнал событий безопасности.
  • Просмотреть сертификат: sudo openssl x509 -in /etc/letsencrypt/live/yourdomain/fullchain.pem -text -noout

Факты и ориентиры

  • Рекомендуется выделять минимум 20 ГБ для рабочей директории при активном использовании.
  • Для большого числа пользователей планируйте отдельный сервер базы и масштабирование proxy уровня.

Решение: Apache или Nginx

flowchart TD
  A[Требуется обратный прокси?] --> B{Нужен HTTP/2 и gRPC}
  B -- Да --> C[Nginx/Traefik]
  B -- Нет --> D[Apache2]
  C --> E[Подходит для высокопроизводительных сред]
  D --> F[Простой переход от Apache конфигураций]

Заключение

Вы развернули Pydio Cells на Debian 12 с MariaDB и Apache2, настроили systemd‑сервис и обеспечили TLS‑защиту через Let’s Encrypt. Дальше: настройте мониторинг, резервное копирование и политику безопасности, адаптированные под ваши процессы.

Ключевые действия: проверьте доступность по HTTPS, убедитесь в работоспособности загрузки/скачивания файлов и настройте регулярные бэкапы.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Ошибка olicenseheartbeat.exe в Microsoft Office
Windows

Ошибка olicenseheartbeat.exe в Microsoft Office

Бесплатный Microsoft Word в браузере
Программное обеспечение

Бесплатный Microsoft Word в браузере

Обновление образов Docker: руководство по безопасным апдейтам
DevOps

Обновление образов Docker: руководство по безопасным апдейтам

Как исправить потерю пакетов в Rocket League
Игры

Как исправить потерю пакетов в Rocket League

Как защитить сайт на WordPress
Безопасность

Как защитить сайт на WordPress

Как отправить большие файлы: SendSpace и альтернативы
Обмен файлами

Как отправить большие файлы: SendSpace и альтернативы