Сегодня в статье разберём настройку и установку облачного сервиса 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 сервиса:

  1. seafile fileserver — сервер, принимающий запросы от клиентов.
  2. 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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

5 1 голос
Рейтинг статьи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов cookie) с использованием трекеров "Google Analytics" и "Yandex.Metrics". Порядок обработки Ваших персональных данных, а также реализуемые требования к их защите, содержатся в Политике конфиденциальности.
Принять