Облачное хранилище · 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 включен и работает.

Теперь проверьте службу Nginx, используя следующую команду.
sudo systemctl is-enabled nginx
sudo systemctl status nginxВы можете увидеть, что веб-сервер Nginx работает и включен.

Наконец, проверьте службу Memcached, чтобы убедиться, что она работает. Служба Memcached должна быть работающей и включенной.
sudo systemctl is-enabled memcached
sudo systemctl status 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
Затем выполните команду ‘ 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
После завершения установки измените владельца каталога ‘ /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, чтобы запустить ее под обратным прокси 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, поэтому убедитесь, что вы ввели свое имя пользователя, адрес электронной почты и пароль.

Настройка 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
Обеспечение безопасности 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
Теперь выполните команду ниже, чтобы включить профили ‘ 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
Наконец, вы можете сгенерировать 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 самоуправляемого облачного хранилища на сервере Debian 12. Вы запустили Seafile с сервером базы данных MariDB и Nginx в качестве обратного прокси. Вы также обеспечили безопасность Seafile с помощью UFW (Uncomplicated Firewall) и SSL через Certbot и Letsencrypt. Теперь, когда Seafile установлен, вы можете интегрировать Seafile с другими приложениями, такими как ONLYOFFICE Document Server или LibreOffice Online (Collabora Online).
Get new posts in your inbox
No spam. Unsubscribe anytime.