Установка и настройка хранилище Seafile на CentOS 8

Установка и настройка хранилище Seafile на CentOS 8

 

Как я могу установить и настроить Seafile на CentOS 8 ?. Сервер Seafile — это корпоративная платформа для самостоятельного размещения файлов с открытым исходным кодом, созданная для обеспечения производительности и высокой надежности. Seafile позволяет размещать файлы на собственном сервере и разрешать различным устройствам синхронизировать их и получать к ним доступ. Вы также можете получить доступ ко всем файлам как к виртуальному диску. В этом блоге мы рассмотрим, как установить и настроить сервер обмена файлами Seafile на CentOS 8.

Ниже приведены некоторые из важных особенностей Seafile, которые делают надежную платформу для обмена файлами:

  • Шифрование файлов
  • Блокировка файлов
  • Онлайн-редактирование и совместное редактирование
  • Управление версиями файлов и моментальные снимки
  • Мобильный доступ к файлам
  • Легко установить и использовать клиент
  • Общий доступ к файлам и контроль разрешений

Установите сервер хранения Seafile на CentOS 8

Это шаги, которые вы выполните, чтобы установить и настроить Seafile Storage Server в системе CentOS 8.

Шаг 1. Обновите систему и установите имя хоста

Сначала мы отключим CentOS selinux, чтобы убедиться, что он не помешает какой-либо установке, которую мы собираемся выполнить.

$ sudo vim /etc/selinux/config
# This file controls the state of SELinux on the system. 
# SELINUX= can take one of these three values: 
#     enforcing - SELinux security policy is enforced. 
#     permissive - SELinux prints warnings instead of enforcing. 
#     disabled - No SELinux policy is loaded. 
SELINUX=disabled
# SELINUXTYPE= can take one of these three values: 
#     targeted - Targeted processes are protected, 
#     minimum - Modification of targeted policy. Only selected processes are protected.  
#     mls - Multi Level Security protection. 
SELINUXTYPE=targeted

После отключения Selinux запустите обновления на CentOS 8.

sudo dnf -y update
sudo dnf -y upgrade

Теперь настройте файл hosts и установите имя хоста сервера.

sudo hostnamectl set-hostname seafile.example.com
echo “<your-server-ip> seafile.example.com” | sudo tee -a /etc/hosts

Перезагрузите вашу систему

sudo reboot

Шаг 2. Добавьте репозиторий EPEL и установите зависимости

Сначала давайте установим зависимости Seafile и необходимые пакеты

sudo dnf -y install epel-release
sudo dnf -y install python3 python3-imaging MySQL-python3 python3-simplejson python3-setuptools mariadb mariadb-server nginx

Шаг 3. Добавьте репозиторий EPEL и установите зависимости

Сначала давайте установим зависимости Seafile и необходимые пакеты

sudo systemctl start mariadb
sudo systemctl enable mariadb

Безопасная установка mariadb и установка пароля root.

$ sudo mysql_secure_installation
Enter current password for root (enter for none):  Press Enter
Set root password? [Y/n] y
New password:  Enter New Password
Re-enter new password:  Repeat New Password 
Remove anonymous users? [Y/n] Y 
Disallow root login remotely? [Y/n] Y 
Remove test database and access to it? [Y/n] Y 
Reload privilege tables now? [Y/n] Y 
... Success! 
Cleaning up... 
All done!  If you've completed all of the above steps, your MariaDB

Шаг 4: Создайте базы данных Seafile

Настроив MariaDB, мы продолжим создание пользователя и баз данных Seafile. Подключитесь к MySQL с помощью приведенной ниже команды и введите пароль, который вы установили выше.

mysql -u root -p 

Мы создадим пользователя для Seafile и следующих трех баз данных:

  • ccnet_db
  • seafile_db
  • seahub_db

После подключения к MySQL выполните следующие команды для создания необходимых баз данных:

create database ccnet_db character set = 'utf8';
create database seafile_db character set = 'utf8';
create database seahub_db character set = 'utf8';
create user seacloud@localhost identified by 'yourpassword';
grant all privileges on ccnet_db.* to seacloud@localhost identified by 'yourpassword';
grant all privileges on seafile_db.* to seacloud@localhost identified by 'yourpassword';
grant all privileges on seahub_db.* to seacloud@localhost identified by 'yourpassword';
flush privileges;
exit

Шаг 5: Установка Seafile на CentOS 8

Мы собираемся установить Seafile по пути /var/www.

sudo mkdir -p /var/www/seafile
cd /var/www/seafile

Загрузите Seafile с помощью команды wget и распакуйте загруженный архив.

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

Распакуйте загруженный файл

sudo tar xvf seafile-server_7.1.5_x86-64.tar.gz 

Переименуйте каталог в seafile-server и переключитесь в этот каталог.

 sudo mv seafile-server-7.1.5/ seafile-server

Шаг 6: Настройте Seafile на CentOS 8

Выполнить « setup-seafile-mysql.sh » файл для настройки базы данных.

$ cd  seafile-server
$ sudo ./setup-seafile-mysql.sh

Checking python on this machine ... 
----------------------------------------------------------------- 
This script will guide you to setup your seafile server using MySQL. 
Make sure you have read seafile server manual at 

       https://download.seafile.com/published/seafile-manual/home.md 

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 ] seafile 
What is the ip or domain of the server? 
For example: www.mycompany.com, 192.168.1.101 
[ This server's ip or domain ] seafile.example.com

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 ] 2 

What is the host of mysql server? 
[ default "localhost" ]  press Enter

What is the port of mysql server? 
[ default "3306" ]  Press Enter

Which mysql user to use for seafile? 
[ mysql user for seafile ] seacloud

What is the password for mysql user "seahub"? 
[ password for seahub ]  Enter seacloud password
                                                                                                                 
verifying password of user seacloud ...  done 

Enter the existing database name for ccnet: 
[ ccnet database ] ccnet_db 

verifying user "seacloud" access to database ccnet_db ...  done 

Enter the existing database name for seafile: 
[ seafile database ] seafile_db 

verifying user "seacloud" access to database seafile_db ...  done 

Enter the existing database name for seahub: 
[ seahub database ] seahub_db 

verifying user "seacloud" access to database seahub_db ...  done 

--------------------------------- 
This is your configuration 
--------------------------------- 

   server name:            seafile 
   server ip/domain:       seafile.example.com 

   seafile data dir:       /var/www/seafile/seafile-data 
   fileserver port:        8082 

   database:               use existing 
   ccnet database:         ccnet_db 
   seafile database:       seafile_db 
   seahub database:        seahub_db 
   database user:          seacloud 
--------------------------------- 
Press ENTER to continue, or Ctrl-C to abort

--------------------------------- 

Generating ccnet configuration ... 

done 
Successly create configuration dir /var/www/seafile/ccnet. 
Generating seafile configuration ... 

Done. 
done 
Generating seahub configuration ... 
---------------------------------------- 
Now creating ccnet database tables ... 

---------------------------------------- 
---------------------------------------- 
Now creating seafile database tables ... 

---------------------------------------- 
---------------------------------------- 
Now creating seahub database tables ... 

---------------------------------------- 

creating seafile-server-latest symbolic link ...  done 

----------------------------------------------------------------- 
Your seafile server configuration has been finished successfully. 
----------------------------------------------------------------- 

run seafile server:     ./seafile.sh { start | stop | restart } 
run seahub  server:     ./seahub.sh  { start <port> | stop | restart <port> } 

----------------------------------------------------------------- 
If you are behind a firewall, remember to allow input/output of these tcp ports: 
----------------------------------------------------------------- 

port of seafile fileserver:   8082 
port of seahub:               8000 

When problems occur, Refer to 

       https://download.seafile.com/published/seafile-manual/home.md 

for information. 

Теперь мы можем запустить сервисы seafile и seahub. Запустите seafile с помощью следующей команды:

$ sudo ./seafile.sh start
[08/17/20 11:16:33] ../common/session.c(148): using config file /var/www/seafile/conf/ccnet.conf 
Starting seafile server, please wait ... 
** Message: seafile-controller.c(563): No seafevents. 

Seafile server started 

Done.

Запустить сервис seahub

$ ./seahub.sh start
LC_ALL is not set in ENV, set to en_US.UTF-8 
Starting seahub at port 8000 ... 

---------------------------------------- 
It's the first time you start the seafile server. Now let's create the admin account 
---------------------------------------- 

What is the email for the admin account? 
[ admin email ] admin@example.com  

What is the password for the admin account? 
[ admin password ]  Enter Admin password

Enter the password again: 
[ admin password again ]  Repeat Admin password
---------------------------------------- 
Successfully created seafile admin 
---------------------------------------- 
!!! 
!!! WARNING: configuration file should have a valid Python extension. 
!!! 

Error:Seahub failed to start. 
Please try to run "./seahub.sh start" again
Seahub Failed to start.

Как видно из вывода выше, seahub не запустился. Чтобы получить связанную ошибку, запустите seafile с помощью следующей команды:

$ sudo ./seahub.sh start-fastcgi

from _sha1 import sha1 
ModuleNotFoundError: No module named '_sha1' 
Error:Seahub failed to start.

Выходные данные показывают, что ошибка связана с не поддерживаемым sha1. Я решил эту проблему, заменив « from _sha1 import sha1 » на « import hashlib » в файле /var/www/seafile/seafile-server/seahub/seahub/repo_api_tokens/models.py . Файл выглядит следующим образом:

$ sudo vim /var/www/seafile/seafile-server/seahub/seahub/repo_api_tokens/models.py
import hashlib 
import hmac 
import uuid 
from django.db import models

Сохраните файл и снова запустите seahub

$sudo ./seafile.sh start
LC_ALL is not set in ENV, set to en_US.UTF-8 
Starting seahub at port 8000 ... 
Seahub is started 
Done.

Шаг 7. Настройте брандмауэр

Если ваш файловый экран активен, убедитесь, что порты seafile открыты через брандмауэр:

sudo firewall-cmd –permanent –add-port=8000/tcp
sudo firewall-cmd –permanent –add-port=8082/tcp
sudo firewall-cmd --reload

Шаг 8: Доступ к Seafile в браузере

Получите доступ к seafile из вашего браузера, используя ваше имя хоста / IP-адрес на порту 8000: http://<your-hostname>: 8000 . Если вы обнаружите, что ваш seafile не загружается в браузере, проверьте конфигурацию seafile gunicorn. Убедитесь, что он не привязан к локальному IP-адресу, как показано ниже:

$ sudo vim /var/www/seafile/conf/gunicorn.conf.py
# default localhost:8000 
#bind = 127.0.0.1:8000
bind = "0.0.0.0:8000"

Сохраните файл, и вы сможете запустить seafile в браузере. Вы должны увидеть страницу, как показано ниже:

Войдите в систему с учетными данными администратора, которые вы настроили ранее, и вы должны получить страницу, как показано:

Чтобы начать добавлять новые папки / файлы, нажмите «Новая библиотека» и укажите имя для своей новой папки, затем нажмите «Отправить».

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

 

Шаг 9: Настройка клиент Seafile

Мы будем использовать клиентский компьютер Ubuntu 20.04 для проверки возможности подключения к серверу Seafile.

Чтобы подключиться к Seafile в Ubuntu 20.04, сначала выполните приведенную ниже команду, чтобы установить клиент seafile в Ubuntu 20.04.

$ sudo wget https://linux-clients.seafile.com/seafile.asc -O /usr/share/keyrings/seafile-keyring.asc
$ sudo bash -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/seafile-keyring.asc] https://linux-clients.seafile.com/seafile-deb/focal/ stable main' > /etc/apt/sources.list.d/seafile.list"
$ sudo apt update
$ sudo apt install -y seafile-gui

Только для использования cli выполните команду:

sudo apt-get install seafile-cli

После установки найдите клиент seafile в своих приложениях, и вы должны его увидеть.

Дважды щелкните, чтобы открыть и выбрать папку для ваших библиотек, и нажмите кнопку «Далее».

Теперь предоставьте сведения для подключения к вашему серверу seafile:

Когда вы нажимаете « Войти », вы должны подключиться к серверу seafile, как показано:

Вот и все. Наслаждайтесь установкой Seafile. Надеюсь, блог был информативным.