Установка облачного хранилища Seafile в Unix/Linux

Установка облачного хранилища Seafile в Unix/Linux

Сейчас покажу в своей статье «Установка облачного хранилища Seafile» как я создал свое облачное хранилище Seafile на Debian, но вы можете смело устанавливать его на Ubuntu, Mint —  все будет работать. Так же проверялось на CentOS.

Установка облачного хранилища Seafile в Debian/Ubuntu/Mint

Устанавливаем все необходимое ПО для Debian/Ubuntu/Mint, выполните:

$ sudo apt-get update
$ sudo apt-get install python2.7 python-setuptools python-simplejson python-imaging python-mysqldb mysql-server mysql mysql-client

Установка облачного хранилища Seafile в CentOS/RedHat/Fedora

Устанавливаем все необходимое ПО для CentOS/RedHat/Fedora, выполните:

# yum update -y
# yum install python-imaging MySQL-python python-simplejson python-setuptools mysql-server mysql mysql-client -y

В процессе  установки сервера с mysql, установщик попросит ввести (установить) пароль для пользователя рут, устанавливаем какой вам будет удобно, пример ‘mysql-root’.

Далее что мы сделаем, так создадим пользователя для нашего облачного хранилища и выставим на него права:

# adduser seafile
# passwd seafile
# su -seafile

С только что созданного пользователя нужно будет запустить скрипт установки, по этому перезайдем на пользователя seafile:

# su - seafile

Затем войдите в базу данных MySQL и создайте три базы данных, по одному на каждые компонентов Seafile сервера: ccnet server, seafile server и seahub с одного пользователя для всех баз данных.

$ mysql -u root -p

mysql> create database `ccnet-db`;
mysql> create database `seafile-db`;
mysql> create database `seahub-db`;
mysql> create user 'seafile'@'localhost' identified by 'pw_for_user_seafile';
mysql> GRANT ALL PRIVILEGES ON `ccnet-db`.* to `seafile`@`localhost`;
mysql> GRANT ALL PRIVILEGES ON `seafile-db`.* to `seafile`@`localhost`;
mysql> GRANT ALL PRIVILEGES ON `seahub-db`.* to `seafile`@`localhost`;
mysql> FLUSH PRIVILEGES;
mysql> exit;

Все необходимое уже установлено и осталось зайти на официальный сайт и скачать исходный код программы Seafile, переходим сюда http://www.seafile.com/en/download/, скачиваем самую последнюю версию сервера, на момент написания была 3.1:

# mkdir /usr/local/src/seafile && cd /usr/local/src/seafile

Для x64 битной ОС:

# wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.1.7_x86-64.tar.gz

Для x32 (x86) битной ОС:

# wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.1.7_i386.tar.gz

Следующим действием распаковываем скачанный архив:

# tar -xzf seafile-server_*

Переходим в директорию и запускаем скрипт:

# cd /usr/local/src/seafile/seafile-server-*

Для установки Seafile сервера с использованием MySQL стоит запустить скрипт для установки setup-seafile-mysql.sh и ответить на все вопросы:

# ./setup-seafile-mysql.sh
  • What is the name of your server? = прописываем имя сервера ( я ввел себе seafile-server).
  • What is the IP or domain of the server? = введите IP адрес сервера или доменное имя.
  • Which port do you want to use for ccnet server? = нажимаем [Enter] – если хотите использовать порт по умолчанию – 10001.
  • Where do you want to put seafile data? =нажимаем [Enter] – местоположение по умолчанию будет ваша $HOME/seafile-data директория.
  • Which port do you want to use for seafile server? =нажимаем [Enter] –если хотите использовать порт по умолчанию – 12001.
  • Which port do you want to use for seafile httpserver? =нажимаем [Enter] –если хотите использовать порт по умолчанию – 8082.
  • Please choose a way to initialize seafile databases: = выбираем 1 выбираем MySQL и вводим: localhost, 3306 и root пароль.
  • Enter the name for MySQL user of seafile: = seafile (если вы создали другие имя пользователя используйте его) и введите seafile MySQL пользовательский пароль.
  • On ccnet-server, seafile-server и seahub databases просто нажимаем  [Enter]  – для использования по умолчанию.

После всего что мы повводили, стоит нажать «ENTER» для продолжения установки. После успешной устанавки, он будет генерировать некоторую полезную информацию, например, какие порты должны быть открыты в брандмауэре, чтобы работало все.

вывод полезной информации после установки seafile

Открытие брандмауэра и создание скрипта для запуска Seafile

Перед запуском сервера Seafile из локального скрипта для теста, нужно вернутся к пользователю root и прописать правила Iptables для брандмауэра. Для начала, залогинимся от root- а:

$ su - root

После чего отредактируем файл конфигурации (добавим правила) Iptables:

# vim /etc/sysconfig/iptables

Добавьте следующие правила:

[...]
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8082 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 12001 -j ACCEPT
[...]

Перезапустим IPTables чтобы применились правила с помощью следующей команды:

# service iptables restart

ПРИМЕЧАНИЕ: Если вы изменили стандартные порты в процессе установки Seafile, то пропишите правила вIptables именно для вашего брандмауэра.

Теперь пришло время, проверить Seafile сервер. Переключитесь на пользователя seafile и запустите сервер с помощью скриптов seafile.sh и seahub.sh.
Первый раз, когда вы запустите seahub.sh скрипт, он создать учетную запись администратора для Seafile сервера, используя свой адрес электронной почты и выбрать надежный пароль для учетной записи администратора, особенно если вы устанавливаете эту конфигурацию в производственной среде.

# su - seafile
$ cd /usr/local/src/seafile/seafile-server-latest/
$ ./seafile.sh start
$ ./seahub.sh start

Вас попросят ввести емейл и пароль. Он нужен для входа на сервер.

После того как сервер успешно запущен, откройте браузер и перейдите на свой IP-адрес сервера или имя домена (порт 8000, по протоколу HTTP), а затем войдите с помощью вашей учетной записи администратора, которую вы указывали свыше.

http://server_IP:8000

или

http://your_domain-name:8000

вход в seafile

вход в seafile

Я ввел свои данные и попал на рабочий сервер seafile.

домашний каталог в seafile

домашний каталог в seafile

После первых успешных тестов, остановите сервер Seafile и создайте сценарий (скрипт), который поможет вам управлять вашими процессами, как и любые другие процессы демонов система Linux.

Останавливаем сервер:

$ /usr/local/src/seafile/seafile-server-latest/seafile.sh stop
$/usr/local/src/seafile/seafile-server-latest/seahub.sh stop

Снова логинимся от рута:

$ su - root

Сейчас перейдем в нужную директорию и скачаем скрипт для работы запуска, остановки, перезапуска seafile,  можно было его выложить, но зачем усложнять, проще же скачать его.)))

Перейдем в нужную директорию:

# cd /etc/init.d

Теперь мы скачаем скрипт:

# wget http://linux-notes.org/wp-content/uploads/files/seafile/seafile

СТОИТ ОТМЕТИТЬ! Нужно поменять путь и пользователя (там где лежит сервер и его скрипты для запуска).

Если есть желание прочитать его, то это можно сделать, перейдя по ссылке тут.

После инициализации файла, убедитесь, что он имеет права на выполнения и управление процессом запуска, остановки и перезапуска. Теперь вы можете добавить услугу Seafile в запуск системы, используя команду chkconfig.

# chmod +x /etc/init.d/seafile

Чтобы управлять сервером seafile:

# service seafile.sh start
# service seafile stop
# service seafile restart

Так же можно добавить его в автозагрузку ОС, или убрать:

# chkconfig seafile on
# chkconfig seafile off

Посмотреть список:

# chkconfig --list seafile

По умолчанию сервер Seafile использует / TCP HTTP порт 8000 для веб-транзакций. Если вы хотите получить доступ Seafile сервер от браузера на стандартном HTTP порту (80м) с помощью следующего скрипта, который будет запускает сервер по 80-му порту (ЗНАЙ, чтобы запустить сервисы на порты ниже 1024 требует привилегий суперпользователя).

# vim /etc/init.d/seafile

Нужно добавить запуск по 80-му порту. Я создам новый скрипт и выложу его, вы можете его скачать:

# cd /etc/init.d/
# wget  http://linux-notes.org/wp-content/uploads/files/seafile/seafile_shange_ports
# mv seafile_shange_ports /etc/init.d/seafile

В данном скрипте я изменил порт и домашнюю папку где лежат все необходимые файлы для запуска сервера seafile, так же я закоменнтировал строчку:

# source function library
#. /etc/rc.d/init.d/functions

У меня с ней не работало! Я проверял на Debian, по этому, если будете использовать на CentOS (  проверялось и работало) — расскоментируйте ее.

Если вы ранее запустили Seafile на 8000 порту убедитесь, что все процессы будут убиты, запустить сервер на порту 80.

# chmod +x /etc/init.d/seafile
# service seafile start | stop | restart

Вы также можете проверить на каких портах  работает Seafileс использованием NETSTAT команды:

# netstat -tlpn

Можно изменить директорию с сервером( перенести в другое место), но не забываем поменять в скрипте путь! В идеале, нужно сделать следующее:

# cp -r /usr/local/src/seafile/seafile-server-latest /home/seafile

После этого сделать изменения в скрипте для запуска. Я не стал этого делать, меня устраивало и такая работа, а вы смотрите сами.

Полезное чтиво:

Увеличить Max Open File Limit в Unix/Linux

Использовать 8000-й порт — это нормально, но как по мне, не очень удобного каждый раз его вводить в браузерной строке. По этому, можно создать (установить) прокси-сервер (Apache/Nginx/HAproxy или что-то на ваш вкус). Я выберу nginx, одно из самых простых решений.

Установка Nginx с расширениями php5 и с поддержкой MySQL на CentOS

Установка PHP 7(php-fpm) с nginx 1.9 в Debian 8

Установка Nginx, PHP-FPM, MariaDB на CentOS 7 / RHEL 7

Вот и все! Я рассказал в теме «Установка облачного хранилища Seafile в Unix/Linux» все что требовалось, если есть вопросы, задавайте мне их. Можете писать на форуме, буду очень благодарен за это!

6 thoughts on “Установка облачного хранилища Seafile в Unix/Linux

  1. Описание не полное
    . /etc/rc.d/init.d/functions
    Этого нет не в Дебе ни в Убунту
    Нуи далее полная лажа!

  2. А все остальное повторяет ман насайте!
    create user ‘seafile’@’localhost’ identified by ‘pw_for_user_seafile’;
    Ошибка -пришлось лезть и копать маны

  3. Итог-начали за здравиие кончили за упакой!
    Тема установки описана-что есть насайте. Не описано нормальный запуск, и ни Создание своего скрипта автозапуска !
    Итог не годится!

  4. Ничего умнее не придумал:
    Добавил в /etc/rc.local

    /usr/local/src/seafile/seafile-server-latest/seafile.sh start
    /usr/local/src/seafile/seafile-server-latest/seahub.sh start
    Так работает

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.