Юзаем вот эту документацию с небольшими изменениями https://manual.seafile.com/deploy/using_mysql.html
Для начала установим MySQL сервер и пароль на MySQL root.
apt-get update && apt upgrade -y
apt-get install mysql-server
mysql_secure_installation
При выполенении mysql_secure_installation Вам будет предложено ответить на несколько вопросов (Y) и установить пароль для рута MySQL. Указываем, запоминаем.
Далее преступаем к более интересному. Идем сюда https://www.seafile.com/en/download/ и ищем последнюю версию сервера под линукс. В моем случае это 6.2.5, поэтому везде будет фигурировать именно она. Поменять на * не сложно, но лень.
Следуя инструкции на оф сайте, делаем:
wget https://download.seadrive.org/seafile-server_6.2.5_x86-64.tar.gz
mkdir haiwen
mv seafile-server_* haiwen
cd haiwen
tar -xzf seafile-server_*
mkdir installed
mv seafile-server_* installed
Инструкция предлагает заняться созданием баз данных, однако, новые версии инсталятора сами умеют делать это. Поэтому пропускаем и ставим Python и его модули, не сильно отклоняясь от инструкции.
apt-get install python python2.7 libpython2.7 python-setuptools python-urllib3 ffmpeg python-pip python-mysqldb python-memcache python-requests python-pil
Я попробовал предложенные варианты установки через pip, однако, это ничему не привело, поэтому просто установил python-pil.
Переходим в папку seafile-server-* и запускаем скрипт установки.
./setup-seafile-mysql.sh
Во время установки будут заданы простые вопросы и попросят указать пароль от рута MySQL, который мы заранее записали. После чего нужно будет создать юзера БД и указать пароль для него. Кроме назавания сервера и домена все оставил дефолтным.
Как это будет выглядеть:
Checking python on this machine ...
Checking python module: setuptools ... Done.
Checking python module: python-imaging ... Done.
Checking python module: python-mysqldb ... Done.
-----------------------------------------------------------------
This script will guide you to setup your seafile server using MySQL.
Make sure you have read seafile server manual at
https://github.com/haiwen/seafile/wiki
Press ENTER to continue
-----------------------------------------------------------------
What is the name of the server? It will be displayed on the client.
3 - 15 letters or digits
[ server name ] dropbox
What is the ip or domain of the server?
For example: www.mycompany.com, 192.168.1.101
[ This server's ip or domain ] dropbox.domain.com
Where do you want to put your seafile data?
Please use a volume with enough free space
[ default "/root/haiwen/seafile-data" ]
Which port do you want to use for the seafile fileserver?
[ default "8082" ]
-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------
[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases
[ 1 or 2 ] 1
What is the host of mysql server?
[ default "localhost" ]
What is the port of mysql server?
[ default "3306" ]
What is the password of the mysql root user?
[ root password ]
verifying password of user root ...
verifying password of user root ... done
Enter the name for mysql user of seafile. It would be created if not exists.
[ default "seafile" ]
Enter the password for mysql user "seafile":
[ password for seafile ]
Enter the password for mysql user "seafile":
[ password for seafile ]
Enter the database name for ccnet-server:
[ default "ccnet-db" ]
Enter the database name for seafile-server:
[ default "seafile-db" ]
Enter the database name for seahub:
[ default "seahub-db" ]
---------------------------------
This is your configuration
---------------------------------
server name: dropbox
server ip/domain: dropbox.domain.com
seafile data dir: /root/haiwen/seafile-data
fileserver port: 8082
database: create new
ccnet database: ccnet-db
seafile database: seafile-db
seahub database: seahub-db
database user: seafile
---------------------------------
Press ENTER to continue, or Ctrl-C to abort
---------------------------------
Generating ccnet configuration ...
done
Successly create configuration dir /root/haiwen/ccnet.
Generating seafile configuration ...
Done.
done
Generating seahub configuration ...
----------------------------------------
Now creating seahub database tables ...
----------------------------------------
creating seafile-server-latest symbolic link ... done
На этом установка Seafile закончена. Можно запустить и проверить работу по адресу dropbox.domain.com:8000
./seafile.sh start
./seahub.sh start
Переходим к установке Apache и настройке SSL. Первоначально нужно получить сертификаты. Можно воспользоваться бесплатными сервисами. У меня же сертифит был. Его и ключ закинул в
/etc/ssl/domain.com/
apt install apache2
a2enmod rewrite
a2enmod proxy_http
a2enmod ssl
Идем в /etc/apache2/sites-available/ и создаем файл нашего виртуал хоста. У меня это dropbox.domain.com-ssl.conf. Пример содеражания:
<VirtualHost *:443>
ServerName dropbox.domain.com
DocumentRoot /var/www
SSLEngine On
SSLCertificateFile /etc/ssl/domain.com/cert.pem
SSLCertificateKeyFile /etc/ssl/domain.com/privatekey.pem
Alias /media /root/haiwen/seafile-server-latest/seahub/media/
Require all granted
RewriteEngine On
#
# seafile fileserver
#
ProxyPass /seafhttp http://127.0.0.1:8082
ProxyPassReverse /seafhttp http://127.0.0.1:8082
RewriteRule ^/seafhttp - [QSA,L]
#
# seahub
#
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8000/
ProxyPassReverse / http://127.0.0.1:8000/
</VirtualHost>
На этом почти все. Включаем сайт:
a2ensite dropbox.domain.com-ssl.conf
Изменяем в haiwen/conf/ccnet.conf переменную SERVICE_URL
SERVICE_URL = https://dropbox.domain.com
Добавляем строку в haiwen/conf/seahub_settings.py
FILE_SERVER_ROOT = 'https://dropbox.domain.com/seafhttp'
И перезагружаем сервер:
cd ../seafile-server-latest
./seahub.sh restart
./seafile.sh restart
service apache2 restart
Готово. Теперь по адресу
https://dropbox.domain.com
Можно авторизоваться в нашем облачном хранилище.