Установка и настройка хранилище 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. Надеюсь, блог был информативным.