Облачное хранилище · 9 min read · Sep 14, 2025

Как установить Seafile самоуправляемое облачное хранилище на Debian 12

Seafile — это система хостинга файлов с открытым исходным кодом, написанная на веб-фреймворке Django. Это кроссплатформенное программное обеспечение, которое предлагает набор функций облачного хранилища и позволяет пользователям хранить, управлять и делиться файлами в экосистеме Seafile.

В Seafile файлы хранятся на центральном сервере и могут синхронизироваться с клиентами на нескольких устройствах и мобильных телефонах. Seafile является альтернативой таким сервисам хостинга файлов, как Google Drive, Dropbox и Mega.nz. С Seafile вы можете создать решение для обмена файлами для ваших частных облачных приложений.

Эта статья проведет вас через установку Seafile на сервере Debian 12 с MariaDB в качестве базы данных, Nginx в качестве обратного прокси и HTTPS через Letsencrypt и UFW (Uncomplicated Firewall) для обеспечения безопасности Seafile.

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

Для начала убедитесь, что у вас есть следующие требования:

  • Сервер Debian 12
  • Непривилегированный пользователь с правами администратора
  • Доменное имя, указывающее на IP-адрес сервера

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

Seafile написан на веб-фреймворке Django, который основан на Python. Чтобы установить Seafile, вы должны убедиться, что Python установлен. Также вам понадобятся зависимости, такие как MariaDB/MySQL в качестве базы данных, Nginx в качестве обратного прокси и Memcached или Redis для управления сессиями и кэшированием. В этом разделе вы установите эти пакеты через менеджер пакетов APT.

Сначала выполните команду ниже, чтобы обновить индекс пакетов Debian.

sudo apt update

Теперь выполните следующую команду, чтобы установить зависимости, такие как Python3, сервер MariaDB, веб-сервер Nginx, Memcached и некоторые дополнительные библиотеки в вашу систему.

sudo apt install mariadb-server nginx python3 python3-dev python3-setuptools python3-pip libmariadb-dev-compat ldap-utils libldap2-dev libsasl2-dev python3.11-venv memcached libmemcached-dev

Введите ‘ Y ‘, чтобы подтвердить установку.

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

После завершения установки проверьте сервер MariaDB с помощью команды ниже.

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

В следующем выводе вы можете увидеть, что сервер MariaDB включен и работает.

проверка службы mariadb

Теперь проверьте службу Nginx, используя следующую команду.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

Вы можете увидеть, что веб-сервер Nginx работает и включен.

проверка статуса службы nginx

Наконец, проверьте службу Memcached, чтобы убедиться, что она работает. Служба Memcached должна быть работающей и включенной.

sudo systemctl is-enabled memcached  
sudo systemctl status memcached

Проверка службы memcached

Настройка сервера MariaDB

Теперь, когда вы установили MariaDB, следующим шагом будет настройка и обеспечение безопасности развертывания сервера MariaDB. Затем вы создадите нового пользователя MariaDB с несколькими базами данных, которые будут использоваться Seafile. Вы будете защищать MariaDB с помощью команды ‘ mariadb-secure-installation ‘ и использовать клиент ‘ mariadb ‘ для создания новых пользователей и баз данных.

Выполните команду ‘ mariadb-secure-installation ‘ ниже, чтобы обеспечить безопасность вашей установки сервера MariaDB.

sudo mariadb-secure-installation

Теперь вам будет предложено ответить на следующие настройки:

  • Для стандартной установки сервера MariaDB без пароля root нажмите ENTER, когда вас спросят о пароле.
  • Локальная аутентификация для пользователей root MariaDB по умолчанию защищена, введите ‘ n ‘, когда вас спросят о смене метода аутентификации на ‘ unix_socket ‘.
  • Введите ‘ Y ‘, чтобы создать новый пароль root для MariaDB. Затем введите надежный пароль для вашего пользователя root MariaDB и повторите его.
  • Когда вас спросят о том, чтобы отключить удаленную аутентификацию для пользователя root MariaDB, введите ‘ Y ‘, чтобы согласиться.
  • Введите ‘ Y ‘, чтобы удалить стандартную базу данных ‘test’ и удалить анонимные привилегии.
  • Наконец, введите ‘ Y ‘, чтобы подтвердить перезагрузку привилегий таблиц.

Теперь, когда вы настроили пароль root для MariaDB и обеспечили безопасность MariaDB, вы создадите новые базы данных и пользователя для установки Seafile.

Выполните команду ‘ mariadb ‘ ниже, чтобы войти на сервер MariaDB. Введите свой пароль root MariaDB, когда вас попросят.

sudo mariadb -u root -p

Создайте нового пользователя ‘ seafile ‘ с помощью следующего запроса. Убедитесь, что вы изменили следующий пароль на новый надежный пароль.

create user 'seafile'@'localhost' identified by 'password';

Выполните следующие запросы, чтобы создать новые базы данных ‘ ccnet_db ‘, ‘ seafile_db ‘ и ‘ seahub_db ‘.

create database ccnet_db character set = 'utf8';  
create database seafile_db character set = 'utf8';  
create database seahub_db character set = 'utf8';

Затем выполните запросы ниже, чтобы разрешить пользователю ‘ seafile ‘ доступ к базам данных Seafile.

GRANT ALL PRIVILEGES ON ccnet_db.* to seafile@localhost;  
GRANT ALL PRIVILEGES ON seafile_db.* to seafile@localhost;  
GRANT ALL PRIVILEGES ON seahub_db.* to seafile@localhost;

создание базы данных и пользователя

Теперь проверьте привилегии для пользователя ‘ seafile ‘, чтобы убедиться в доступе и привилегиях к базам данных ‘ ccnet_db ‘, ‘ seafile_db ‘ и ‘ seahub_db ‘.

SHOW GRANTS FOR seafile@localhost;

Наконец, введите ‘ quit ‘, чтобы выйти из сервера MariaDB.

проверка привилегий пользователя и выход

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

В этом разделе вы создадите нового системного пользователя для запуска Seafile, создадите каталог установки и виртуальную среду Python, а затем установите зависимости Python с помощью команды ‘ pip ‘.

Сначала добавьте нового пользователя ‘ seafile ‘ с помощью следующей команды.

sudo adduser seafile

добавить пользователя

Теперь создайте новый каталог установки ‘ /opt/seafile ‘ и перейдите в него.

mkdir -p /opt/seafile; cd /opt/seafile

Выполните команду ниже, чтобы создать виртуальную среду Python ‘ venv ‘ и активировать ее. После активации ваша оболочка должна выглядеть как ‘ (venv) user@hostname # ‘.

python3 -m venv venv  
source venv/bin/activate

настройка venv

Затем выполните команду ‘ pip3 ‘ ниже, чтобы установить зависимости Python для Seafile. Эти пакеты должны быть установлены внутри виртуальной среды ‘ venv ‘.

pip3 install --timeout=3600 django==4.2.* future==0.18.* mysqlclient==2.1.* pymysql pillow==10.0.* pylibmc captcha==0.4 markupsafe==2.0.1 jinja2 sqlalchemy==2.0.18 psd-tools django-pylibmc django_simple_captcha==0.5.* djangosaml2==1.5.* pysaml2==7.2.* pycryptodome==3.16.* cffi==1.15.1 lxml python-ldap==3.4.3

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

После завершения установки измените владельца каталога ‘ /opt/seafile ‘ на пользователя ‘ seafile ‘ с помощью команды ниже.

sudo chown -R seafile: /opt/seafile

Загрузка и установка Seafile

На этом этапе вы готовы установить Seafile. Теперь вы загрузите исходный код Seafile, установите его с MariaDB и Memcached, добавите доменное имя Seafile через стандартную конфигурацию, а затем вручную запустите процесс Seafile.

Выполните следующую команду, чтобы войти как пользователь ‘ seafile ‘ и перейти в каталог ‘ /opt/seafile ‘.

su seafile  
cd /opt/seafile

Скачайте исходный код Seafile и извлеките его с помощью следующей команды. В этом примере вы будете устанавливать Seafile 11, убедитесь, что вы проверили страницу загрузки Seafile, чтобы получить последнюю версию.

wget https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_11.0.12_x86-64.tar.gz  
tar xf seafile-server_11.0.12_x86-64.tar.gz

Теперь активируйте виртуальную среду ‘ venv ‘ с помощью следующей команды:

source venv/bin/activate

Перейдите в каталог ‘ seafile-server-11.0.12 ‘ и выполните скрипт ‘ setup-seafile-mysql.sh ‘. С помощью этого вы установите Seafile на свою систему с MariaDB в качестве базы данных.

cd seafile-server-11.0.12  
./setup-seafile-mysql.sh

Теперь вам будет предложено следующие настройки Seafile:

  • Введите имя вашего сервера Seafile.
  • Введите свой домен для установки Seafile.
  • Введите ‘ 2 ‘, чтобы интегрировать Seafile с существующими базами данных и пользователем MySQL/MariaDB.
  • Введите данные хоста MariaDB, порта, пользователя и пароля.
  • Введите базу данных для ccnet как ‘ ccnet_db ‘, seafile как ‘ seafile_db ‘, и seahub как ‘ seahub_db ‘.
  • Нажмите ENTER, чтобы подтвердить установку и завершить конфигурацию.

установка seafile с MySQL/MariaDB

установка завершена

После завершения конфигурации вы измените конфигурацию Seafile, чтобы запустить ее под обратным прокси Nginx.

Перейдите в каталог ‘ /opt/seafile/conf ‘ и откройте файл ‘ seahub_settings.py ‘ с помощью редактора ‘ nano ‘.

cd /opt/seafile/conf  
nano seahub_settings.py

Добавьте свое доменное имя в опцию ‘ SERVICE_URL ‘ и убедитесь, что в начале включен ‘ https ‘.

SERVICE_URL = 'https://seafile.howtoforge.local'

Добавьте опцию ‘ FILE_SERVER_ROOT ‘ следующим образом с вашим доменным именем.

FILE_SERVER_ROOT = 'https://seafile.howtoforge.local/seafhttp'

Наконец, добавьте настройку ‘ CACHES ‘, чтобы интегрировать Seafile с системой кэширования Memcached.

CACHES = {  
'default': {  
'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',  
'LOCATION': '127.0.0.1:11211',  
},  
}

Когда закончите, сохраните файл и выйдите из редактора.

Теперь вернитесь в каталог ‘ /opt/seafile/seafile-server-latest/ ‘ и выполните скрипты ‘ seafile.sh ‘ и ‘ seahub.sh ‘, чтобы запустить Seafile.

cd /opt/seafile/seafile-server-latest/  

./seafile.sh start  
./seahub.sh start

Когда Seafile запустится, вы увидите вывод ‘ Seafile server started ‘. Вам также будет предложено настроить администратора для Seafile, поэтому убедитесь, что вы ввели свое имя пользователя, адрес электронной почты и пароль.

Запуск Seafile и Seahub

Настройка Nginx как обратного прокси

Теперь, когда Seafile работает с MariaDB и Memcached, следующим шагом будет настройка Nginx как обратного прокси для Seafile. Убедитесь, что у вас есть готовое доменное имя, указывающее на ваш IP-адрес сервера.

Создайте новую конфигурацию блока сервера Nginx ‘ /etc/nginx/sites-available/seafile ‘ с помощью редактора ‘ nano ‘.

sudo nano /etc/nginx/sites-available/seafile

Вставьте конфигурацию ниже и убедитесь, что вы изменили опцию ‘ server_name ‘ на ваше доменное имя.

log_format seafileformat '$http_x_forwarded_for $remote_addr [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $upstream_response_time';  
  
server {  
listen 80;  
server_name seafile.howtoforge.local;  
  
proxy_set_header X-Forwarded-For $remote_addr;  
  
location / {  
proxy_pass http://127.0.0.1:8000;  
proxy_set_header Host $http_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-Host $server_name;  
proxy_read_timeout 1200s;  
  
# используется для просмотра/редактирования офисных файлов через Office Online Server  
client_max_body_size 0;  
  
access_log /var/log/nginx/seahub.access.log seafileformat;  
error_log /var/log/nginx/seahub.error.log;  
}  
  
location /seafhttp {  
rewrite ^/seafhttp(.*)$ $1 break;  
proxy_pass http://127.0.0.1:8082;  
client_max_body_size 0;  
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  
proxy_connect_timeout 36000s;  
proxy_read_timeout 36000s;  
proxy_send_timeout 36000s;  
  
send_timeout 36000s;  
  
access_log /var/log/nginx/seafhttp.access.log seafileformat;  
error_log /var/log/nginx/seafhttp.error.log;  
}  
location /media {  
root /opt/seafile/seafile-server-latest/seahub;  
}  
}

Сохраните и выйдите из файла, когда закончите.

Теперь выполните команду ниже, чтобы активировать блок сервера ‘seafile’ и проверить синтаксис Nginx. Вы увидите вывод ‘ syntax is ok - test is successful ‘, когда у вас будет правильная конфигурация Nginx.

sudo ln -s /etc/nginx/sites-available/seafile /etc/nginx/sites-enabled/  
sudo nginx -t

Наконец, выполните команду ниже, чтобы перезапустить веб-сервер Nginx и применить ваши изменения.

sudo systemctl restart nginx

настройка Nginx как обратного прокси

Обеспечение безопасности Seafile с помощью UFW и HTTPS

После того как вы настроили Nginx как обратный прокси, вы обеспечите безопасность Seafile с помощью HTTPS и UFW (Uncomplicated Firewall). Вы установите пакеты UFW и Certbot, откроете такие службы, как SSH, HTTP и HTTPS, а затем сгенерируете новые SSL-сертификаты с помощью Certbot от Letsencrypt.

Сначала выполните команду ниже, чтобы установить пакеты ‘ ufw ‘ и ‘ certbot ‘.

sudo apt install ufw certbot -y

установка certbot и ufw

Теперь выполните команду ниже, чтобы включить профили ‘ OpenSSH ‘ и ‘ Nginx Full ‘. Профиль ‘ OpenSSH ‘ откроет стандартный SSH-порт ‘ 22 ‘, а профиль ‘ Nginx Full ‘ позволит как HTTP, так и HTTPS соединения с сервером.

sudo ufw allow OpenSSH  
sudo ufw allow 'Nginx Full'

Затем выполните следующую команду, чтобы запустить и включить UFW. Введите ‘ y ‘, чтобы подтвердить, и вы увидите вывод ‘ Firewall is active and enabled at system startup ‘.

sudo ufw enable

включить ufw

Наконец, вы можете сгенерировать SSL-сертификаты и обеспечить безопасность вашей установки Seafile с помощью команды ‘ certbot ‘ ниже. Убедитесь, что вы изменили доменное имя и адрес электронной почты на свои данные.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d seafile.howtoforge.local

После завершения процесса ваше Seafile должно быть защищено с помощью HTTPS, и ваши сертификаты будут доступны в каталоге ‘ /etc/letsencrypt/live/domain.com ‘.

Доступ к Seafile

Откройте веб-браузер и посетите ваше доменное имя Seafile, например https://seafile.howtoforge.local. Если установка прошла успешно, вам будет предложено перейти на страницу входа Seafile.

Введите свой адрес электронной почты администратора и пароль, затем нажмите ‘ Войти ‘.

Вход в Seafile

Если у вас правильные учетные данные администратора, вы увидите следующую панель управления Seafile.

панель управления

Теперь вы можете попробовать загрузить файлы в Seafile, чтобы убедиться, что установка прошла успешно.

Заключение

Поздравляем! Вы завершили установку Seafile самоуправляемого облачного хранилища на сервере Debian 12. Вы запустили Seafile с сервером базы данных MariDB и Nginx в качестве обратного прокси. Вы также обеспечили безопасность Seafile с помощью UFW (Uncomplicated Firewall) и SSL через Certbot и Letsencrypt. Теперь, когда Seafile установлен, вы можете интегрировать Seafile с другими приложениями, такими как ONLYOFFICE Document Server или LibreOffice Online (Collabora Online).

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.