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 updateAgora 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-devDigite ‘ Y ‘ para confirmar a instalação.

Após a instalação ser concluída, verifique o servidor MariaDB com o comando abaixo.
sudo systemctl is-enabled mariadb
sudo systemctl status mariadbNa saída a seguir, você pode ver que o servidor MariaDB está habilitado e em execução.

Agora verifique o serviço Nginx usando o seguinte comando.
sudo systemctl is-enabled nginx
sudo systemctl status nginxVocê pode ver abaixo que o servidor web Nginx está em execução e habilitado.

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
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-installationAgora 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 -pCrie 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;
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.

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
Agora crie um novo diretório de instalação ‘ /opt/seafile ‘ e mude para ele.
mkdir -p /opt/seafile; cd /opt/seafileExecute 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
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
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/seafileBaixando 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/seafileBaixe 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.gzAgora ative o ambiente virtual ‘ venv ‘ com o seguinte:
source venv/bin/activateVá 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.shAgora 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.


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.pyAdicione 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 startQuando 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.

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/seafileInsira 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 -tPor fim, execute o comando abaixo para reiniciar o servidor web Nginx e aplicar suas alterações.
sudo systemctl restart nginx
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
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
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.localApó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 ‘.

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

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).
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.