Seafile - это кроссплатформенная система программного обеспечения для размещения файлов с открытым исходным кодом. Файлы хранятся на центральном сервере и могут быть синхронизированы с персональными компьютерами и мобильными устройствами через приложения.
Существует 2 разные конфигурации Seafile: Community Edition и Professional Edition.
Community Edition, несколько урезана по функционалу, Professional Edition это полная версия, она бесплатная для 3-х пользователей, если больше, то уже надо платить.
Полная информация об этом и другом на официальном сайте Seafile.
В этом примере устанавливаю Professional Edition.
Установка будет через docker-compose.
В связке 4 докер контейнера Seafile - Mariadb - Memcached - Elasticsearch.
seafile
, где у нас будет хранится Seafile и все его зависимости, и переходим в нее:cd /mnt/user/appdata/ && mkdir -p seafile && cd /mnt/user/appdata/seafile
docker-compose.yml
, сделаем это с помощью текстового редактора nano.nano
version: '2.0'
services:
db:
image: mariadb:10.5
container_name: seafile-mysql
environment:
- MYSQL_ROOT_PASSWORD=password # Пароль от ROOT пользователя Mariadb.
- MYSQL_LOG_CONSOLE=true
volumes:
- ./seafile-mysql/db:/var/lib/mysql # Директория хранения файлов Mariadb. У меня это директория, где находится сам `docker-compose.yml` файл, то есть это `/mnt/user/appdata/seafile`.
networks:
- seafile-net
memcached:
image: memcached:1.5.6
container_name: seafile-memcached
entrypoint: memcached -m 256
networks:
- seafile-net
elasticsearch:
image: seafileltd/elasticsearch-with-ik:5.6.16
container_name: seafile-elasticsearch
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
ulimits:
memlock:
soft: -1
hard: -1
mem_limit: 2g
volumes:
- ./seafile-elasticsearch/data:/usr/share/elasticsearch/data # Директория хранения файлов Elasticsearch. У меня это директория, где находится сам `docker-compose.yml` файл, то есть это `/mnt/user/appdata/seafile`.
networks:
- seafile-net
seafile:
image: docker.seadrive.org/seafileltd/seafile-pro-mc:latest
container_name: seafile
ports:
- "480:80" # HTTP. Указываем свободный на вашем хосте порт, у меня это `480`.
# - "6443:443" # HTTPS. Указываем свободный на вашем хосте порт, у меня это `6443`. Но я его отключил, так как HTTPS будет, через NPM.
volumes:
- ./seafile-data:/shared # Директория хранения файлов Seafile. У меня это директория, где находится сам `docker-compose.yml` файл, то есть это `/mnt/user/appdata/seafile`.
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=password # Пароль от ROOT пользователя Mariadb. Должен совпадать, с тем, что указано выше, в настройках Mariadb.
- TIME_ZONE=Europe/Moscow # Мой часовой пояс.
- SEAFILE_ADMIN_EMAIL=muwahhid@mail.ru # Логин и почта в `Seafile`.
- SEAFILE_ADMIN_PASSWORD=my_super_password # Пароль в `Seafile`.
- SEAFILE_SERVER_LETSENCRYPT=false # Включаем SSL сертификат (мне нужно, так как у меня это сделает NPM)
- SEAFILE_SERVER_HOSTNAME=seafile.muwahhid.ru # Домен, по которому будет доступен `Seafile` в интернете.
depends_on:
- db
- memcached
- elasticsearch
networks:
- seafile-net
networks:
seafile-net:
CTRL+X
, затем Y
, затем даем название файлу.docker-compose.yml
.docker.seadrive.org
:docker login docker.seadrive.org
seafile
zjkmid6rQibdZ=uJMuWS
docker-compose.yml
файл, вводим команду:docker-compose up -d
Seafile
, будет доступен по адресу, в моем примере это http://ipВашегоСервера:480/http://ipВашегоСервера:480/
на seafile.muwahhid.ru
./mnt/user/appdata/seafile/seafile-data/seafile/conf/
seahub_settings.py
файл для редактирования:nano seahub_settings.py
Onlyoffice
:# Включаем Only Office
ENABLE_ONLYOFFICE = True
VERIFY_ONLYOFFICE_CERTIFICATE = True
ONLYOFFICE_APIJS_URL = 'https://office.muwahhid.ru/web-apps/apps/api/documents/api.js'
ONLYOFFICE_FILE_EXTENSION = ('doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'odt', 'fodt', 'odp', 'fodp', 'ods', 'fods')
ONLYOFFICE_EDIT_FILE_EXTENSION = ('doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx')
Onlyoffice
добавлен секрет JWT_SECRET
, то дописываем строчку:ONLYOFFICE_JWT_SECRET = 'текстВашегоПароляВОнлиОфис'
GMAIL
.Для других почтовых хостеров, настройки
SMTP
будут отличаться. К примеру, уmail.ru
,SMTP
порт465
, а доменsmtp.mail.ru
.
В этот же файл seahub_settings.py
, и вставляем код, с нашими данными:
# Настраиваем отправку почты.
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'muwahhdid@gmail.com'
EMAIL_HOST_PASSWORD = 'mypassword'
EMAIL_PORT = 587
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER
seafile.conf
, находится он по такому пути:/appdata-compose/seafile/seafile-data/seafile/conf
nano
:nano /appdata-compose/seafile/seafile-data/seafile/conf/seafile.conf
use_go_fileserver = true
*
).[fileserver]
use_go_fileserver = true
port = ****
[database]
type = mysql
host = db
port = ****
user = *******
password = ********************
db_name = *********
connection_charset = utf8