Устанавливаем облачный сервис Seafile на Ubuntu

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




2022-07-12T13:18:49
Cloud