Pesquisa de site

Instalando Seafile (Secure Cloud Storage) com banco de dados MySQL em RHEL/CentOS/SL 7.x/6.x


Seafile é um aplicativo avançado de armazenamento em nuvem colaborativo de código aberto escrito em Python com suporte para compartilhamento e sincronização de arquivos, colaboração em equipe e proteção de privacidade usando criptografia no lado do cliente. É construído como uma sincronização de arquivos multiplataforma com clientes que roda em todas as principais plataformas (Linux, Raspberry Pi, Windows, Mac, iPhone e Android) e pode ser facilmente integrado com serviços locais como LDAP e WebDAV ou pode ser implantado usando recursos avançados serviços de rede e bancos de dados como MySQL, SQLite, PostgreSQL, Memcached, Nginx ou Apache Web Server.

Este tutorial irá guiá-lo passo a passo na instalação do Seafile Server no RHEL/CentOS/Scientific Linux 7.x/6.x implantado com banco de dados MySQL, com inicialização init scripts para executar o servidor na porta Seafile padrão (8000/TCP) e na porta de transação HTTP padrão (80/TCP), crie as regras de Firewall necessárias para abrir as portas necessárias.

Requisitos

  1. Instalação mínima do CentOS 6.5 com endereço IP estático.
  2. Banco de dados MySQL/MariaDB
  3. Python 2.6.5+ ou 2.7
  4. Ferramentas de configuração do Python
  5. Python-simplejson
  6. Imagem Python
  7. Python-mysqldb

Este procedimento de instalação foi testado no sistema CentOS 6.4 de 64 bits, mas também pode ser usado em outras distribuições Linux com a especificação de que os scripts de inicialização init diferem de uma distribuição para outra. .

Etapa 1: instalar módulos Python

1. Primeiro faça uma atualização do sistema e, em seguida, instale todos os módulos Python necessários usando os comandos a seguir.

yum upgrade
yum install python-imaging MySQL-python python-simplejson python-setuptools

2. Se você usa um servidor Debian ou Ubuntu, instale todos os módulos Python com os próximos comandos.

sudo apt-get update
sudo apt-get install python2.7 python-setuptools python-simplejson python-imaging python-mysqldb

Etapa 2: instalar o servidor Seafile

3. Depois que todos os módulos Python forem instalados, crie um novo usuário do sistema com uma senha forte que será usada para hospedar a configuração do servidor Seafile e todos os dados em seu diretório inicial e, em seguida, mude para a conta de usuário recém-criada.

adduser seafile
passwd seafile
su - seafile

4. Em seguida, faça login no banco de dados MySQL e crie três bancos de dados, um para cada componente do Seafile Server: ccnet server, seafile server e seahub com um único usuário para todos os bancos de dados.

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 'password';
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;

5. Agora é hora de baixar e instalar o Seafile Server. Vá para a página oficial de download do Seafile e pegue a última versão do arquivo .Tar Linux para a arquitetura do seu servidor usando o comando wget, em seguida, extraia-o para o usuário inicial do Seafile criado anteriormente e digite Seafile diretório extraído.

wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.0.4_x86-64.tar.gz
tar xfz seafile-server_3.0.4_x86-64.tar.gz
cd seafile-server_3.0.4/

6. Para instalar o Seafile Server usando o banco de dados MySQL, execute o script de inicialização setup-seafile-mysql.sh e responda todas as perguntas usando as seguintes opções de configuração, após o script verificar a existência de todos os módulos necessários do Python.

./setup-seafile-mysql.sh
  1. Qual é o nome do seu servidor?=escolha um nome descritivo (não são permitidos espaços).
  2. Qual é o IP ou domínio do servidor?=insira o endereço IP do seu servidor ou o seu nome de domínio válido.
  3. Qual porta você deseja usar para o servidor ccnet?=pressione [Enter] – deixe o padrão – 10001.
  4. Onde você deseja colocar os dados do arquivo marítimo?=pressione [Enter] – o local padrão será seu diretório $HOME/seafile-data.
  5. Qual porta você deseja usar para o servidor seafile?=pressione [Enter] – deixe o padrão – 12001.

  1. Qual porta você deseja usar para o seafile httpserver?=pressione [Enter] – deixe o padrão – 8082.
  2. Por favor, escolha uma maneira de inicializar os bancos de dados seafile:=escolha 1 e forneça as credenciais padrão do MySQL: localhost, 3306 e senha root.
  3. Digite o nome do usuário MySQL do seafile:=seafile (se você criou outro nome de usuário, digite esse nome de usuário) e a senha do usuário MySQL do seafile.
  4. Nos bancos de dados ccnet-server, seafile-server e seahub, basta pressionar a tecla [Enter] – padrão.

Após a instalação bem-sucedida do Seafile Server, ele gerará algumas informações úteis, como quais portas precisam ser abertas em seu Firewall para permitir conexão externa e quais scripts devem ser manipulados para iniciar o servidor.

Etapa 3: Abra o Firewall e crie o script de inicialização do Seafile

7. Antes de iniciar o servidor Seafile a partir do script local para um teste, volte para a conta root e abra o arquivo de configuração do firewall iptables localizado em /etc/sysconfig/ caminho do sistema e adicione as seguintes regras de linha antes da primeira linha REJECT e reinicie o iptables para aplicar novas regras.

su - root
nano /etc/sysconfig/iptables

Anexe as seguintes regras.

-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

Reinicie o iptables para aplicar regras usando o seguinte comando.

service iptables restart

NOTA: Se você alterou as portas padrão do Seafile no processo de instalação, atualize as regras de iptables do Firewall de acordo.

8. Agora é hora de testar o Seafile Server. Mude para o usuário Seafile e o diretório seafile-server e inicie o servidor usando os scripts seafile.sh e seahub.sh.

Na primeira vez que você iniciar o script seahub.sh, crie uma conta administrativa para o Seafile Server usando seu endereço de e-mail e escolha uma senha forte para a conta de administrador, especialmente se você estiver implantando esta configuração em um ambiente de produção.

su - seafile
cd seafile-server-latest/
./seafile.sh start
./seahub.sh start

9. Depois que o servidor for iniciado com sucesso, abra um navegador e navegue até o endereço IP ou nome de domínio do servidor na porta 8000 usando o protocolo HTTP e faça login usando sua conta de administrador criada na etapa acima.

http://system_IP:8000

OR 

http://domain_name:8000

10. Após os primeiros testes de configuração, pare o servidor Seafile e crie um script init que o ajudará a gerenciar mais facilmente todo o processo, assim como qualquer outro processo daemon do sistema Linux.

./seafile.sh stop
./seahub.sh stop
su - root
nano /etc/init.d/seafile

Adicione o seguinte conteúdo neste script init – Se o Seafile estiver instalado em outro usuário do sistema, certifique-se de atualizar o usuário e os caminhos de acordo nas linhas su – $USER -c.

#!/bin/sh
#chkconfig: 345 99 10
#description: Seafile auto start-stop script.

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

start() {
        echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
su - seafile -c "seafile-server-latest/seahub.sh start"
}

stop() {
        echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
su - seafile -c "seafile-server-latest/seahub.sh stop"
}

restart() {
        echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
su - seafile -c "seafile-server-latest/seahub.sh stop"

         echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
su - seafile -c "seafile-server-latest/seahub.sh start"
}

case "$1" in
    start)
       start
        ;;
    stop)
       stop
        ;;
    restart)
       restart
        ;;
        *)
      echo "Usage: $0 start stop restart"
        ;;
esac

11. Após a criação do arquivo init, certifique-se de que ele tenha permissões de execução e gerencie o processo usando start, stop e reiniciar. Agora você pode adicionar o serviço Seafile na inicialização do sistema usando o comando chkconfig.

chmod +x /etc/init.d/seafile
service seafile start 
service seafile stop 
service seafile restart
chkconfig seafile on | off
chkconfig --list seafile

12. Por padrão, o servidor Seafile usa a porta HTTP 8000/TCP para transações na web. Se você deseja acessar o Seafile Server a partir do navegador na porta HTTP padrão, use o seguinte script init que inicia o servidor na porta 80 (esteja ciente de que iniciar um serviço nas portas abaixo de b>1024 requer privilégios de root).

nano /etc/init.d/seafile

Adicione o seguinte conteúdo neste script init para iniciar o Seafile na porta HTTP padrão. Se o Seafile estiver instalado em outro usuário do sistema, certifique-se de atualizar o usuário e os caminhos de acordo nas linhas su – $USER -c e $HOME.

#!/bin/sh
#chkconfig: 345 99 10
#description: Seafile auto start-stop script.

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

start() {
                echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
                ## Start on port default 80 http port ##
/home/seafile/seafile-server-latest/seahub.sh start 80
}

stop() {
                echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
/home/seafile/seafile-server-latest/seahub.sh stop
}

restart() {
      echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
/home/seafile/seafile-server-latest/seahub.sh stop
                 echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
/home/seafile/seafile-server-latest/seahub.sh start 80
}

case "$1" in
    start)
       start
        ;;
    stop)
       stop
        ;;
     restart)
       restart
        ;;
                *)
        echo "Usage: $0 start stop restart"
        ;;
Esac

13. Se você iniciou anteriormente o Seafile na porta 8000, certifique-se de que todos os processos foram eliminados, inicie o servidor na porta 80.

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

Abra um navegador e direcione-o para o seguinte endereço.

http://system_ip 

OR

http://domain_name.tld

14. Você também pode verificar em quais portas o Seafile está executando usando o comando netstat.

netstat -tlpn

É isso! Seafile pode felizmente substituir outras plataformas colaborativas em nuvem e de sincronização de arquivos, como Dropbox público, Owncloud, Pydio, OneDrive, etc. na sua organização, sendo projetado para melhor trabalho em equipe e controle total sobre seu armazenamento com segurança avançada no espaço do usuário.

Em meu próximo artigo, abordarei como instalar o cliente Seafile em sistemas Linux e Windows e também mostrarei como conectar-se ao Seafile Server. Até então fique ligado na Tecmint e não se esqueça de deixar seus valiosos comentários.