Установка Seafile на openSUSE Leap 42.1
Введение
Seafile — это свободное ПО для хостинга файлов, функционально похожее на Dropbox или Google Drive, которое можно установить на собственный сервер. Seafile выпускается с открытой лицензией. Вы можете построить собственный защищённый сервер для синхронизации и обмена файлами, поскольку Seafile поддерживает шифрование данных на сервере. Проект написан на C и Python.
Опираясь на этот урок, вы создадите Seafile Server на openSUSE Leap 42.1, настроите базы данных MySQL/MariaDB, nginx как reverse proxy с HTTPS, и выполните базовую проверку работоспособности.
Важно: в примерах используются имена и пароли автора материала — замените их на безопасные значения в вашей среде.
Требования
- openSUSE Leap 42.1 — 64‑bit
- root или эквивалентные привилегии
- базовое знание работы с zypper и vim
- доступ к доменному имени, указывающему на сервер (FQDN)
Ключевые термины (одной строкой)
- FQDN: полностью определённое доменное имя хоста.
- Seahub: веб‑интерфейс Seafile.
- ccnet/seafile/seahub: три базы данных, используемые Seafile.
Шаг 1 — Настройка имени хоста
Войдите на сервер по SSH:
ssh [email protected]Отредактируйте /etc/hosts:
vim /etc/hostsДобавьте строку, заменив IP и имя хоста на ваши:
192.168.1.101 cloud.kuonseafile.co cloudСохраните и выйдите.
Пояснение: 192.168.1.101 — IP сервера; cloud — локальное имя хоста; kuonseafile.co — домен.
Проверьте имя хоста и FQDN:
hostname
hostname -fВажно: корректный FQDN нужен для генерации сертификатов и корректной работы Seafile при использовании https.
Шаг 2 — Установка зависимостей
Seafile использует Python и может работать с разными БД. Для лучшей производительности на многопользовательских установках предпочтительнее MySQL/MariaDB по сравнению с SQLite.
Установите необходимые пакеты:
zypper in python python-imaging python-MySQL-python python-setuptools mariadb mariadb-clientПояснение: пакет python-MySQL-python обеспечивает привязку Python → MySQL; mariadb — сервер и клиент.
Если вы планируете использовать Python 3 в новой версии Seafile, проверьте совместимость пакетов с целевой версией Seafile.
Шаг 3 — Конфигурация базы данных
Seafile использует три БД: ccnet, seafile и seahub.
Запустите MariaDB/MySQL (в старых дистрибутивах может использоваться /etc/init.d или rcmysql):
rcmysql startУстановите пароль для root MySQL:
/usr/bin/mysqladmin -u root password 'aqwe123'Затем войдите в shell MySQL:
mysql -u root -p(введите указанный пароль). Создайте базы данных и пользователя:
create database ccnet_db character set = 'utf8';
create database seafile_db character set = 'utf8';
create database seahub_db character set = 'utf8';
create user seafilecloud@localhost identified by 'seafilecloud@';Выдайте привилегии и обновите привилегии:
grant all privileges on ccnet_db.* to seafilecloud@localhost identified by 'seafilecloud@';
grant all privileges on seafile_db.* to seafilecloud@localhost identified by 'seafilecloud@';
grant all privileges on seahub_db.* to seafilecloud@localhost identified by 'seafilecloud@';
flush privileges;Завершите работу в MySQL:
exitСовет по безопасности: используйте надёжные пароли и, при возможности, ограничьте доступ по bind‑address в конфиге MariaDB (my.cnf) только на localhost, если БД и Seafile находятся на одном сервере.

Шаг 4 — Установка и настройка Seafile
Мы будем устанавливать Seafile под отдельным пользователем seafile.
Создайте пользователя:
useradd -m -s /bin/bash seafileПояснение: -m создаёт домашнюю директорию /home/seafile; -s указывает оболочку.
Переключитесь на пользователя seafile и скачайте архив сервера Seafile 5:
su - seafile
wget https://bintray.com/artifact/download/seafile-org/seafile/seafile-server_5.1.3_x86-64.tar.gzРаспакуйте и переименуйте каталог:
tar -xzvf seafile-server_5.1.3_x86-64.tar.gz
mv seafile-server-5.1.3/ seafile-server
cd seafile-server/Запустите сценарий установки с поддержкой MySQL:
./setup-seafile-mysql.shУстановщик попросит ввести: имя сервера, IP/домен, расположение данных, порт файла сервера. По умолчанию можно принять значения, если они соответствуют вашей конфигурации.
При выборе типа БД укажите профиль MySQL (номер 2, как в исходном руководстве), затем укажите параметры подключения:
- Host: localhost
- Port: 3306
- MySQL User: seafilecloud
- MySQL Password: seafilecloud@
- ccnet database: ccnet_db
- seafile database: seafile_db
- seahub database: seahub_db
Если установка прошла без ошибок — подтвердите и дождитесь создания конфигураций и таблиц.

Запустите Seafile и Seahub (в каталоге seafile-server):
./seafile.sh start
./seahub.sh startПри первом запуске seahub вас попросят указать e‑mail и пароль администратора.
Примечание: есть два режима запуска Seahub — простой start и start‑fastcgi для работы через FastCGI/uwsgi. Позже мы используем fastcgi в конфигурации nginx.

На этом этапе веб‑интерфейс доступен на порту 8000 (http://HOST:8000) до настройки nginx и HTTPS.
Шаг 5 — Установка и настройка nginx с HTTPS
Nginx будет обратным прокси, принимающим HTTPS‑соединения и проксирующим запросы к Seahub/Seafile.
Установите nginx:
zypper in nginxСоздайте директорию для сертификатов и сгенерируйте самоподписанный сертификат (или используйте Let’s Encrypt в продакшене):
mkdir -p /etc/nginx/ssl/
cd /etc/nginx/ssl/
openssl genrsa -out privkey.pem 4096
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095Создайте каталог для виртуальных хостов и файл конфигурации:
mkdir -p /etc/nginx/vhosts.d/
cd /etc/nginx/vhosts.d/
vim cloud.kuonseafile.confВставьте следующую конфигурацию (замените server_name на ваш домен):
server {
listen 80;
server_name cloud.kuonseafile.co; #Domain Name
rewrite ^ https://$http_host$request_uri? permanent; # force redirect http to https
}
server {
listen 443;
ssl on;
ssl_certificate /etc/nginx/ssl/cacert.pem; # path to your cacert.pem
ssl_certificate_key /etc/nginx/ssl/privkey.pem; # path to your privkey.pem
server_name cloud.kuonseafile.co; #Domain Name
proxy_set_header X-Forwarded-For $remote_addr;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
server_tokens off;
location / {
fastcgi_pass 127.0.0.1:8000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param HTTPS on;
fastcgi_param HTTP_SCHEME https;
access_log /var/log/nginx/seahub.access.log;
error_log /var/log/nginx/seahub.error.log;
fastcgi_read_timeout 36000;
}
location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;
client_max_body_size 0;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
}
location /media {
root /home/seafile/seafile-server/seahub;
}
}Сохраните и проверьте конфигурацию:
nginx -tЕсли ошибок нет — перезапустите nginx.
Совет: в продакшене используйте сертификаты от доверенного центра (Let’s Encrypt) и более строгие SSL‑параметры (strong ciphers, TLS1.2+). Добавьте HTTP→HTTPS редирект, HSTS и отключите ненужные заголовки.
Настройка Seafile для использования домена и HTTPS
Остановите Seafile/Seahub перед редактированием конфигураций:
su - seafile
cd seafile-server/
./seafile.sh stop
./seahub.sh stopОтредактируйте конфигурацию в каталоге conf/:
cd ~/
cd conf/
vim ccnet.confНайдите SERVICE_URL и замените на ваш домен с https:
SERVICE_URL = https://cloud.kuonseafile.co/Отредактируйте seahub_settings.py:
vim seahub_settings.pyДобавьте строку (определяет корень файлового сервера):
FILE_SERVER_ROOT = 'https://cloud.kuonseafile.co/seafhttp'Сохраните файлы и выйдите.
Шаг 6 — Запуск и тестирование
Автозагрузка nginx и mysql:
systemctl enable nginx
systemctl enable mysqlПерезапустите службы:
systemctl restart nginx
systemctl restart mysqlЗапустите Seafile и Seahub под пользователем seafile:
su - seafile
cd seafile-server/
./seafile start
./seahub start-fastcgiОткройте в браузере ваш домен https://cloud.kuonseafile.co и войдите под учётной записью администратора, созданной ранее.

Если интерфейс доступен и файлы можно загружать, система развернута корректно.

Диагностика и часто встречаемые проблемы
- Ошибка подключения к базе: проверьте user/password в setup‑конфиге, права на БД и bind‑address MariaDB.
- 502/504 от nginx: убедитесь, что Seahub запущен и слушает порт 8000 или FastCGI запущен.
- Проблемы с большим загружаемым файлом: проверьте client_max_body_size и настройки proxy для /seafhttp.
- HTTPS‑ошибки: убедитесь, что SERVICE_URL начинается с https:// и nginx корректно проксирует заголовки HTTPS.
Логи:
- /var/log/nginx/seahub.error.log
- /var/log/nginx/seahub.access.log
- логи в каталоге seafile‑server/logs/
Резервное копирование и восстановление (SOP)
Мини‑процесс для регулярного бэкапа:
- Остановите сервисы Seafile для консистентного снимка:
su - seafile
cd seafile-server/
./seafile.sh stop
./seahub.sh stop- Сохраните базы данных (дамп MySQL):
mysqldump -u root -p ccnet_db > /root/backup/ccnet_db.sql
mysqldump -u root -p seafile_db > /root/backup/seafile_db.sql
mysqldump -u root -p seahub_db > /root/backup/seahub_db.sql- Архивируйте директорию данных Seafile (seafile‑data) и конфиги:
tar -czvf /root/backup/seafile_data_$(date +%F).tgz /home/seafile/seafile-data /home/seafile/seafile-server/conf- Перезапустите сервисы:
./seafile.sh start
./seahub.sh startКритерий приёмки восстановления: восстановление дампов и данных приводит к старту сервисов и возможности входа в веб‑интерфейс с доступом к ранее загруженным файлам.
Критерии приёмки
- Доступ по HTTPS к домену с корректным сертификатом.
- Авторизация администратора и базовая работа веб‑интерфейса.
- Пользователь может загрузить и скачать файл любого тестового размера (в пределах настроек прокси).
- Логи не содержат критических ошибок при старте.
Чек‑лист для администратора
- Проверить DNS: домен указывает на IP сервера.
- Настроить /etc/hosts и hostname.
- Установлены все пакеты и права на БД.
- Seahub и Seafile запущены под отдельным пользователем.
- Nginx корректно проксирует / и /seafhttp.
- Настроено резервное копирование и проверено восстановление.
- Обновлённый план обновления и отката после апдейтов.
Рекомендации по безопасности
- Используйте сильные пароли и храните их в безопасном хранилище.
- В продакшене используйте сертификаты от доверенного CA (Let’s Encrypt).
- Ограничьте доступ к MariaDB по сети, если возможно.
- Настройте SELinux/AppArmor (если применимо) и брандмауэр.
- Регулярно обновляйте систему и пакеты Seafile.
Мини‑методология развёртывания
- Подготовить сервер: обновить систему, настроить хост/домен.
- Установить и настроить БД, создать пользователя и БД.
- Установить Seafile под выделенным пользователем.
- Настроить nginx и HTTPS, проверить проксирование.
- Настроить бэкапы и мониторинг (доступность, дисковое пространство).
- Перенести пользователей/данные и провести проверку приёмки.
Короткий глоссарий (строка)
- Seafile: сервер синхронизации и шаринга файлов.
- Seahub: веб‑интерфейс Seafile.
- ccnet: компонент Seafile для коммуникации и учётных записей.
Альтернативные подходы и когда они применимы
- SQLite: допустим для тестовых инсталляций или одного пользователя, но не рекомендуется для продакшена с высокой нагрузкой.
- Прямая публикация Seahub без nginx: возможна для тестов, но уязвима и не имеет HTTPS‑терминации/защиты.
- Использование Docker/Kubernetes: упрощает контейнеризацию и масштабирование, полезно для продакшн‑кластеров.
Итог
Вы развернули Seafile на openSUSE Leap 42.1 с поддержкой MySQL/MariaDB и nginx в роли обратного прокси с HTTPS. В руководстве приведены команды установки, настройки, проверки и рекомендации по безопасности и резервному копированию. После развертывания протестируйте сценарии загрузки/скачивания и настройте регулярные бэкапы.
Важные заметки
- Замените тестовые пароли и домены на реальные значения.
- В продакшне используйте CA‑сертификаты и более строгие SSL‑параметры.
Ссылки и источники
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента