Сегодня в статье разберём настройку и установку облачного сервиса Seafile на Ubuntu Server 20.04 LTS.
Системные требования
Рассмотрим системные требования для сервера Seafile:
- Процессор: минимум 2 ядра.
- Память ОЗУ: 2 Гб и более.
- Поддержка ОС: Linux.
- СУБД: MariaDB, MySQL, SQLite.
- Веб-сервер: Nginx, Apache.
- Установка утилиты: memcached
Прежде чем перейти к процессу установки и настройки облачного сервиса Seafile, выполним обновление системы.
Обновление пакетов сервера.
Обновляем список пакетов и устанавливаем все наши обновления:
sudo apt update && sudo apt dist-upgrade -y
Также настроем нашу временную зону:
sudo timedatectl set-timezone Europe/Moscow
Если необходима посмотреть весь список доступных зон, то воспользуйтесь следующей командой:
sudo timedatectl list-timezones
Установка Memcached
sudo apt install memcached libmemcached-dev
Начнем с установки memcached. Для установки вводим:
sudo apt install memcached
Если выдает что пакеты не обнаружены, то воспользуйтесь статьей и измените ваш
sorce.list
Настройка memcached
Настроим установленный сервис memcached:
sudo nano /etc/memcached.conf
Добавим памяти, которую может использовать memcached для своей работы. Найдем и исправим строчку:
-m 512
- до 512 Мб. (можно установить и больше. Зависит от вашей RAM в системе)
Перезапускаем сервис и разрешаем его автозапуск:
sudo systemctl restart memcached
sudo systemctl enable memcached
Установка Python
Для запуска и работы нашей облачной системы необходим python версии 3. Выполним его установку с дополнительными компонентами:
sudo apt install python3 python3-setuptools python3-pip libmysqlclient-dev
- python3 — интерпретатор для языка программирования python.
- python3-setuptools — дополнение для python-distutils, которые в свою очередь, нужен для установки дополнительных модулей.
- python3-pip — менеджер установки пакетов python.
- libmysqlclient-dev — набор файлов для разработки под СУБД MySQL/MariaDB.
С помощью менеджера пакетов python также установим:
pip3 install --timeout=3600 django==3.2.* Pillow pylibmc captcha jinja2 sqlalchemy==1.4.3 django-pylibmc django-simple-captcha python3-ldap mysqlclient pycryptodome==3.12.0 cffi==1.14.0
Установка MariaDB
В качестве сервера баз данных будем использовать MariaDB. Устанавливаем нашу БД следующей командой:
sudo apt install mariadb-server
Установим пароль для учетной записи root:
sudo mysqladmin -u root password
* система запросит новый пароль. Его нужно ввести дважды.
Чтобы наш пароль применился, нужно сбросить привилегии в СУБД. Для этого заходим в оболочку sql:
sudo mysql
И вводим:
> flush privileges;
После выходим обратно:
> \q
Разрешаем автозапуск демона:
systemctl enable mariadb
Мы готовы переходить к установке Seafile.
Установка Seafile
Создаем каталог, в который загрузим установочные файлы Seafile:
sudo mkdir -p /opt/seafile
На официальном сайте копируем ссылку на архив с приложением и загружаем его на наш сервер:
cd /opt/seafile
sudo wget https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_9.0.6_x86-64.tar.gz
После загрузки распакуем наш архив:
sudo tar zxf seafile-server_9.0.6_x86-64.tar.gz -C /opt/seafile/ --strip-components 1
Назначим в качестве владельца каталога /seafile
нашего пользователя. Для этого необходимо выполнить команду от имени пользователя root
:
sudo su
chown -R USER:USER /opt/seafile/
exit
- USER:USER — ваш пользователь и группа в системе (обычно одно и тоже, например: myuser
:
myuser)
Запускаем скрипт установки seafile сервера:
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
Введите ваш ip-адрес или доменное имя:
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.lan
При необходимости укажите порт для файлового сервера, чтобы принять значение по умолчанию, нажмите Enter:
Which port do you want to use for the seafile fileserver?
[ default "8082" ]
Создайте новые базы данных:
-------------------------------------------------------
[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases
[ 1 or 2 ] 1
Адрес по умолчанию для сервера MySQL:
What is the host of mysql server?
[ default "localhost" ]
Укажите порт для сервера MySQL:
What is the port of mysql server?
[ default "3306" ]
Введите пароль от суперпользователя MySQL:
What is the password of the mysql root user?
[ root password ]
Далее будут созданы пользователь MySQL для sefile и БД, вы можете принять значения по умолчанию или указать свои:
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 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: seafile
server ip/domain: seafile.lan
seafile data dir: /opt/seafile/seafile-data
fileserver port: 8082
database: create new
ccnet database: ccnet-db
seafile database: seafile-db
seahub database: seahub-db
database user: seafile
Если ошибок нет, то нажмите Enter для завершения:
---------------------------------
Press ENTER to continue, or Ctrl-C to abort
---------------------------------
Теперь нам нужно запустить 2 сервиса:
- seafile fileserver — сервер, принимающий запросы от клиентов.
- seahub — веб-сервер на python.
Стартуем первый:
sudo ./seafile.sh start
Starting seafile server, please wait ...
** Message: 22:13:26.533: seafile-controller.c(621): No seafevents.
Seafile server started
Done.
Далее второй:
sudo ./seahub.sh start
При первом запуске будет необходимо создать административный аккаунт:
----------------------------------------
It's the first time you start the seafile server. Now let's create the admin account
----------------------------------------
Указываем ваш email:
What is the email for the admin account?
[ admin email ] admin@obu4alka.ru
Вводим пароль администратора:
What is the password for the admin account?
[ admin password ]
И еще раз подтверждаем ваш пароль:
Enter the password again:
[ admin password again ]
Информация об успешном запуске seafile:
----------------------------------------
Successfully created seafile admin
----------------------------------------
Seahub is started
Done.
Давайте проверим все ли действительно запустилось на нашем сервере. Для этого сперва воспользуемся командой netstat
:
netstat -tupnl
Если в выводе присутствуют порты 8000
и 8082
, то seafile сервер был удачно запущен. Также должны присутствовать порты 3306
и 11211
:
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:8082 0.0.0.0:* LISTEN -
Подключение к хранилищу в браузере
Откройте браузер и перейдите по следующему адресу:
<ip-адрес_или_домен>:8000
Web-сервер Nginx для Seafile
Установка Nginx
Давайте установим web-сервер Nginx на нашу систему. Для этого воспользуемся данной командой:
sudo apt install nginx -y
Настройка Nginx
После установки перейдем к настройке нашего Web-сервера. Для начала создадим файл для сервера seafile.
sudo touch /etc/nginx/sites-available/seafile.conf
Далее создадим симлинк на наш файл конфигурации:
sudo ln -s /etc/nginx/sites-available/seafile.conf /etc/nginx/sites-enabled/seafile.conf
Удалим дефолтный файл конфигурации Nginx:
sudo rm /etc/nginx/sites-enabled/defaul
откроем конфигурационный файл seafile.conf
и внесем изменения:
sudo nano /etc/nginx/sites-enabled/seafile.conf
server {
listen 10.5.1.100:80;
server_name seafile.lan;
index index.html;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_buffering off;
}
}
Перезагружаем Web-сервер Nginx:
sudo service nginx restart
[endtxt]
RSS
- Тест скорости дисков в Linux
- Как запустить команду в фоне в Linux
- Ошибка несоответствие размеров GPT PMBR
- nginx: [warn] protocol options redefined
- Как включить поддержку linux в windows 11