Instalação Seafile · 11 min read · Sep 14, 2025

Como Instalar o Armazenamento em Nuvem Auto-Hospedado Seafile no Debian 12

Seafile é um sistema de hospedagem de arquivos de código aberto escrito no framework web Django. É um software multiplataforma que oferece um conjunto de recursos de armazenamento em nuvem e permite que os usuários armazenem, gerenciem e compartilhem arquivos dentro do ecossistema Seafile.

No Seafile, os arquivos são armazenados no servidor central e podem ser sincronizados com clientes em vários dispositivos e telefones celulares. Seafile é uma alternativa a serviços de hospedagem de arquivos como Google Drive, Dropbox e Mega.nz. Com o Seafile, você pode construir uma solução de compartilhamento de arquivos para suas aplicações de nuvem privada.

Este artigo irá guiá-lo na instalação do Seafile em um servidor Debian 12 com MariaDB como banco de dados, Nginx como proxy reverso e HTTPS através do Letsencrypt e UFW (Firewall Descomplicado) para proteger o Seafile.

Pré-requisitos

Para começar com este guia, certifique-se de que você possui os seguintes requisitos:

  • Um servidor Debian 12
  • Um usuário não-root com privilégios de administrador
  • Um nome de domínio apontado para o endereço IP do servidor

Instalando dependências

Seafile é escrito no framework web Django, que é baseado em Python. Para instalar o Seafile, você deve garantir que o Python esteja instalado. Além disso, você precisará de dependências como MariaDB/MySQL como banco de dados, Nginx como proxy reverso e Memcached ou Redis para gerenciamento de sessão e cache. Nesta seção, você instalará esses pacotes através do gerenciador de pacotes APT.

Primeiro, execute o comando abaixo para atualizar o índice de pacotes do Debian.

sudo apt update

Agora execute o seguinte comando para instalar dependências como Python3, servidor MariaDB, servidor web Nginx, Memcached e algumas bibliotecas adicionais em seu sistema.

sudo apt install mariadb-server nginx python3 python3-dev python3-setuptools python3-pip libmariadb-dev-compat ldap-utils libldap2-dev libsasl2-dev python3.11-venv memcached libmemcached-dev

Digite ‘ Y ‘ para confirmar a instalação.

instalar dependências

Após a instalação ser concluída, verifique o servidor MariaDB com o comando abaixo.

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

Na saída a seguir, você pode ver que o servidor MariaDB está habilitado e em execução.

verificar serviço mariadb

Agora verifique o serviço Nginx usando o seguinte comando.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

Você pode ver abaixo que o servidor web Nginx está em execução e habilitado.

verificar status do serviço nginx

Por fim, verifique o serviço Memcached para garantir que ele esteja em execução. O serviço Memcached deve estar em execução e habilitado.

sudo systemctl is-enabled memcached  
sudo systemctl status memcached

Verificar serviço memcached

Configurando o servidor MariaDB

Agora que você instalou o MariaDB, o próximo passo será configurar e proteger a implantação do servidor MariaDB. Em seguida, você criará um novo usuário MariaDB com vários bancos de dados que serão usados pelo Seafile. Você protegerá o MariaDB com o comando ‘ mariadb-secure-installation ‘ e usará o cliente ‘ mariadb ‘ para criar novos usuários e bancos de dados.

Execute o comando ‘ mariadb-secure-installation ‘ abaixo para proteger sua instalação do servidor MariaDB.

sudo mariadb-secure-installation

Agora você será questionado sobre as seguintes configurações:

  • Para a instalação padrão do servidor MariaDB sem uma senha root, pressione ENTER quando perguntado sobre a senha.
  • A autenticação local para usuários root do MariaDB é protegida por padrão, insira ‘ n ‘ quando perguntado se deseja alterar o método de autenticação para ‘ unix_socket ‘.
  • Insira ‘ Y ‘ para criar uma nova senha root do MariaDB. Em seguida, insira a senha forte para seu usuário root do MariaDB e repita.
  • Quando perguntado se deseja desabilitar a autenticação remota para o usuário root do MariaDB, insira ‘ Y ‘ para concordar.
  • Insira ‘ Y ‘ para remover o banco de dados padrão ‘test’ e remover o privilégio anônimo.
  • Por fim, insira ‘ Y ‘ para confirmar o recarregamento dos privilégios da tabela.

Agora que você configurou a senha root do MariaDB e protegeu o MariaDB, você criará novos bancos de dados e um usuário para a instalação do Seafile.

Execute o comando ‘ mariadb ‘ abaixo para fazer login no servidor MariaDB. Digite sua senha root do MariaDB quando solicitado.

sudo mariadb -u root -p

Crie um novo usuário ‘ seafile ‘ com a seguinte consulta. Certifique-se de alterar a seguinte senha para uma nova senha segura.

create user 'seafile'@'localhost' identified by 'password';

Execute as seguintes consultas para criar novos bancos de dados ‘ ccnet_db ‘, ‘ seafile_db ‘ e ‘ seahub_db ‘.

create database ccnet_db character set = 'utf8';  
create database seafile_db character set = 'utf8';  
create database seahub_db character set = 'utf8';

Em seguida, execute as consultas abaixo para permitir que o usuário ‘ seafile ‘ acesse os bancos de dados Seafile.

GRANT ALL PRIVILEGES ON ccnet_db.* to seafile@localhost;  
GRANT ALL PRIVILEGES ON seafile_db.* to seafile@localhost;  
GRANT ALL PRIVILEGES ON seahub_db.* to seafile@localhost;

criar banco de dados e usuário

Agora verifique os privilégios do usuário ‘ seafile ‘ para garantir acesso e privilégios aos bancos de dados ‘ ccnet_db ‘, ‘ seafile_db ‘ e ‘ seahub_db ‘.

SHOW GRANTS FOR seafile@localhost;

Por fim, digite ‘ quit ‘ para sair do servidor MariaDB.

verificar privilégios do usuário e sair

Instalando dependências do Python

Nesta seção, você criará um novo usuário do sistema para executar o Seafile, criará um diretório de instalação e um ambiente virtual Python, e então instalará as dependências do Python usando o comando ‘ pip ‘.

Primeiro, adicione um novo usuário ‘ seafile ‘ com o seguinte comando.

sudo adduser seafile

adicionar usuário

Agora crie um novo diretório de instalação ‘ /opt/seafile ‘ e mude para ele.

mkdir -p /opt/seafile; cd /opt/seafile

Execute o comando abaixo para criar um ambiente virtual Python ‘ venv ‘ e ativá-lo. Uma vez ativado, seu shell deve se tornar como ‘ (venv) user@hostname # ‘.

python3 -m venv venv  
source venv/bin/activate

configurando venv

Em seguida, execute o comando ‘ pip3 ‘ abaixo para instalar as dependências do Python para o Seafile. Esses pacotes devem ser instalados dentro do ambiente virtual ‘ venv ‘.

pip3 install --timeout=3600 django==4.2.* future==0.18.* mysqlclient==2.1.* pymysql pillow==10.0.* pylibmc captcha==0.4 markupsafe==2.0.1 jinja2 sqlalchemy==2.0.18 psd-tools django-pylibmc django_simple_captcha==0.5.* djangosaml2==1.5.* pysaml2==7.2.* pycryptodome==3.16.* cffi==1.15.1 lxml python-ldap==3.4.3

Instalar dependências do Python

Após a instalação ser concluída, altere a propriedade do diretório ‘ /opt/seafile ‘ para o usuário ‘ seafile ‘ usando o comando abaixo.

sudo chown -R seafile: /opt/seafile

Baixando e instalando o Seafile

Neste ponto, você está pronto para instalar o Seafile. Agora você fará o download do código-fonte do Seafile, instalá-lo com o MariaDB e Memcached, adicionar o nome de domínio do Seafile através da configuração padrão e, em seguida, iniciar o processo do Seafile manualmente.

Execute o seguinte comando para fazer login como usuário ‘ seafile ‘ e ir para o diretório ‘ /opt/seafile ‘.

su seafile  
cd /opt/seafile

Baixe o código-fonte do Seafile e extraia-o usando o seguinte comando. Neste exemplo, você estará instalando Seafile 11, certifique-se de verificar a página de download do Seafile para obter a versão mais recente.

wget https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_11.0.12_x86-64.tar.gz  
tar xf seafile-server_11.0.12_x86-64.tar.gz

Agora ative o ambiente virtual ‘ venv ‘ com o seguinte:

source venv/bin/activate

Vá para o diretório ‘ seafile-server-11.0.12 ‘ e execute o script ‘ setup-seafile-mysql.sh ‘. Com isso, você estará instalando o Seafile em seu sistema com o MariaDB como banco de dados.

cd seafile-server-11.0.12  
./setup-seafile-mysql.sh

Agora você será questionado sobre as seguintes configurações do Seafile:

  • Insira o nome do seu servidor Seafile.
  • Insira seu domínio para a instalação do Seafile.
  • Digite ‘ 2 ‘ para integrar o Seafile com bancos de dados e usuários MySQL/MariaDB existentes.
  • Insira os detalhes do host MariaDB, porta, usuário e a senha.
  • Insira o banco de dados para ccnet como ‘ ccnet_db ‘, seafile como ‘ seafile_db ‘ e seahub como ‘ seahub_db ‘.
  • Pressione ENTER para confirmar a instalação e concluir a configuração.

instalando seafile com MySQL/MariaDB

instalação completa

Após a configuração ser concluída, você modificará a configuração do Seafile para executá-lo sob o proxy reverso Nginx.

Vá para o diretório ‘ /opt/seafile/conf ‘ e abra o arquivo ‘ seahub_settings.py ‘ com o editor ‘ nano ‘.

cd /opt/seafile/conf  
nano seahub_settings.py

Adicione seu nome de domínio à opção ‘ SERVICE_URL ‘ e certifique-se de incluir o ‘ https ‘ no início.

SERVICE_URL = 'https://seafile.howtoforge.local'

Adicione a opção ‘ FILE_SERVER_ROOT ‘ como a seguinte com seu nome de domínio.

FILE_SERVER_ROOT = 'https://seafile.howtoforge.local/seafhttp'

Por fim, adicione a configuração ‘ CACHES ‘ para integrar o Seafile com o sistema de cache Memcached.

CACHES = {  
'default': {  
'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',  
'LOCATION': '127.0.0.1:11211',  
},  
}

Quando terminar, salve o arquivo e saia do editor.

Agora volte para o diretório ‘ /opt/seafile/seafile-server-latest/ ‘ e execute os scripts ‘ seafile.sh ‘ e ‘ seahub.sh ‘ para executar o Seafile.

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

Quando o Seafile iniciar, você verá uma saída ‘ Seafile server started ‘. Você também será solicitado a configurar um usuário administrador para o Seafile, então certifique-se de inserir seu nome de usuário, e-mail e senha.

Iniciar Seafile e Seahub

Configurando o Nginx como um proxy reverso

Agora que o Seafile está em funcionamento com o MariaDB e Memcached, o próximo passo é configurar o Nginx como um proxy reverso para o Seafile. Portanto, certifique-se de que você tenha um nome de domínio pronto e apontado para o endereço IP do seu servidor.

Crie uma nova configuração de bloco de servidor Nginx ‘ /etc/nginx/sites-available/seafile ‘ com o editor ‘ nano ‘.

sudo nano /etc/nginx/sites-available/seafile

Insira a configuração abaixo e certifique-se de alterar a opção ‘ server_name ‘ com seu nome de domínio.

log_format seafileformat '$http_x_forwarded_for $remote_addr [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $upstream_response_time';  
  
server {  
listen 80;  
server_name seafile.howtoforge.local;  
  
proxy_set_header X-Forwarded-For $remote_addr;  
  
location / {  
proxy_pass http://127.0.0.1:8000;  
proxy_set_header Host $http_host;  
proxy_set_header X-Real-IP $remote_addr;  
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
proxy_set_header X-Forwarded-Host $server_name;  
proxy_read_timeout 1200s;  
  
# usado para visualizar/editar arquivos do Office via Office Online Server  
client_max_body_size 0;  
  
access_log /var/log/nginx/seahub.access.log seafileformat;  
error_log /var/log/nginx/seahub.error.log;  
}  
  
location /seafhttp {  
rewrite ^/seafhttp(.*)$ $1 break;  
proxy_pass http://127.0.0.1:8082;  
client_max_body_size 0;  
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  
proxy_connect_timeout 36000s;  
proxy_read_timeout 36000s;  
proxy_send_timeout 36000s;  
  
send_timeout 36000s;  
  
access_log /var/log/nginx/seafhttp.access.log seafileformat;  
error_log /var/log/nginx/seafhttp.error.log;  
}  
location /media {  
root /opt/seafile/seafile-server-latest/seahub;  
}  
}

Salve e saia do arquivo quando terminar.

Agora execute o comando abaixo para ativar o bloco de servidor ‘seafile’ e verificar sua sintaxe Nginx. Você verá uma saída ‘ syntax is ok - test is successful ‘ quando você tiver uma configuração Nginx adequada.

sudo ln -s /etc/nginx/sites-available/seafile /etc/nginx/sites-enabled/  
sudo nginx -t

Por fim, execute o comando abaixo para reiniciar o servidor web Nginx e aplicar suas alterações.

sudo systemctl restart nginx

configurar Nginx como um proxy reverso

Protegendo o Seafile com UFW e HTTPS

Depois de configurar o Nginx como um proxy reverso, você protegerá o Seafile com HTTPS e UFW (Firewall Descomplicado). Você instalará o UFW e o Certbot, abrirá serviços como SSH, HTTP e HTTPS, e então gerará novos certificados SSL com o Certbot do Letsencrypt.

Primeiro, execute o comando abaixo para instalar os pacotes ‘ ufw ‘ e ‘ certbot ‘.

sudo apt install ufw certbot -y

instalar certbot e ufw

Agora execute o comando abaixo para habilitar os perfis ‘ OpenSSH ‘ e ‘ Nginx Full ‘. O perfil ‘ OpenSSH ‘ abrirá a porta SSH padrão ‘ 22 ‘, e o perfil ‘ Nginx Full ‘ permitirá conexões HTTP e HTTPS ao servidor.

sudo ufw allow OpenSSH  
sudo ufw allow 'Nginx Full'

Em seguida, execute o seguinte comando para iniciar e habilitar o UFW. Digite ‘ y ‘ para confirmar, e você verá uma saída ‘ Firewall is active and enabled at system startup ‘.

sudo ufw enable

habilitar ufw

Por fim, você pode agora gerar certificados SSL e proteger sua instalação do Seafile com o comando ‘ certbot ‘ abaixo. Certifique-se de alterar o nome de domínio e o endereço de e-mail com suas informações.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d seafile.howtoforge.local

Após o processo ser concluído, seu Seafile deve estar protegido com HTTPS e seus certificados estarão disponíveis no diretório ‘ /etc/letsencrypt/live/domain.com ‘.

Acessando o Seafile

Abra seu navegador web e visite seu nome de domínio Seafile, como https://seafile.howtoforge.local. Se a instalação for bem-sucedida, você será solicitado a acessar a página de login do Seafile.

Digite seu endereço de e-mail de administrador e senha, em seguida, clique em ‘ Log in ‘.

Login Seafile

Se você tiver as credenciais de administrador corretas, poderá ver o seguinte painel do Seafile.

painel

Agora você pode tentar fazer upload de arquivos para o Seafile para garantir que a instalação seja bem-sucedida.

Conclusão

Parabéns! Você completou a instalação do Armazenamento em Nuvem Auto-Hospedado Seafile no servidor Debian 12. Você tem o Seafile em funcionamento com o servidor de banco de dados MariDB e Nginx como proxy reverso. Você também protegeu o Seafile com UFW (Firewall Descomplicado) e SSL via Certbot e Letsencrypt. Agora que o Seafile está instalado, você pode integrar o Seafile com outras aplicações como ONLYOFFICE Document Server ou LibreOffice Online (Collabora Online).

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.