Instalação Seafile · 17 min read · Dec 14, 2025
Como Instalar o Armazenamento em Nuvem Auto-Hospedado Seafile com Nginx no Ubuntu 22.04

Seafile é uma plataforma de sincronização e compartilhamento de arquivos auto-hospedada e de código aberto. Permite que os usuários armazenem e criptografem dados em seus servidores sem depender de provedores de nuvem de terceiros. O Seafile permite compartilhar arquivos e pastas usando sincronização multiplataforma e links protegidos por senha para arquivos com datas de expiração. O Seafile também versiona arquivos, permitindo que um usuário restaure arquivos ou pastas deletados e modificados.
Neste tutorial, você aprenderá a instalar o Seafile em um servidor Ubuntu 22.04, MySQL e Nginx como servidor proxy reverso.
Pré-requisitos
- Um servidor rodando Ubuntu 22.04 com um mínimo de 2 núcleos de CPU e 2GB de RAM.
- Um usuário não-root com privilégios sudo.
- Um nome de domínio totalmente qualificado (FQDN) como
seafile.example.com. - Certifique-se de que tudo está atualizado.
$ sudo apt update $ sudo apt upgrade - Alguns pacotes que seu sistema precisa.
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -yAlguns desses pacotes podem já estar instalados em seu sistema.
Passo 1 - Configurar o Firewall
O primeiro passo é configurar o firewall. O Ubuntu vem com o ufw (Uncomplicated Firewall) por padrão.
Verifique se o firewall está em execução.
$ sudo ufw status
Você deve obter a seguinte saída.
Status: inactive
Permita a porta SSH para que o firewall não interrompa a conexão atual ao ativá-lo.
$ sudo ufw allow OpenSSH
Permita também as portas HTTP e HTTPS.
$ sudo ufw allow http
$ sudo ufw allow https
Ative o Firewall
$ sudo ufw enable
Comando pode interromper conexões ssh existentes. Prosseguir com a operação (y|n)? y
Firewall está ativo e habilitado na inicialização do sistema
Verifique o status do firewall novamente.
$ sudo ufw status
Você deve ver uma saída semelhante.
Status: active
Para Ação De
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Passo 2 - Instalando Dependências do Seafile
Como o Seafile é escrito no framework Python Django, você precisa instalar suas dependências e pacotes Python para fazê-lo funcionar.
Execute o seguinte comando para instalar ferramentas Python, gerenciador de pacotes Pip, bibliotecas SQL e Memcached.
$ sudo apt install -y python3 python3-setuptools python3-pip libmysqlclient-dev memcached libmemcached-dev
Execute o seguinte comando para instalar dependências do Python.
$ sudo pip3 install --timeout=3600 django==3.2.* future==0.18.* mysqlclient==2.1.* \
pymysql pillow==9.3.* pylibmc captcha==0.4 markupsafe==2.0.1 jinja2 sqlalchemy==1.4.3 \
psd-tools django-pylibmc django_simple_captcha==0.5.* djangosaml2==1.5.* pysaml2==7.2.* pycryptodome==3.16.* cffi==1.15.1 lxml
Passo 3 - Instalar MySQL
O Ubuntu 22.04 vem com a versão mais recente do MySQL. Você pode instalá-lo com um único comando.
$ sudo apt install -y mysql-server
Verifique a versão do MySQL.
$ mysql --version
mysql Ver 8.0.32-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))
Este passo é necessário para versões do MySQL 8.0.28 e superiores. Entre no Shell do MySQL.
$ sudo mysql
Execute o seguinte comando para definir a senha do seu usuário root. Certifique-se de que tenha uma mistura de números, letras maiúsculas, minúsculas e caracteres especiais.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';
Saia do shell.
mysql> exit
Execute o script de instalação segura do MySQL.
$ sudo mysql_secure_installation
Primeiro, você será solicitado a inserir sua senha root. Digite-a. Em seguida, você será solicitado a instalar o Componente de Validação de Senha. Ele verifica a força das senhas usadas no MySQL. Pressione Y para instalá-lo. Em seguida, você será solicitado a definir o nível da política de validação de senha. Escolha 2, pois é o mais forte.
Proteger a implantação do servidor MySQL.
Digite a senha para o usuário root:
O COMPONENTE DE VALIDAÇÃO DE SENHA pode ser usado para testar senhas
e melhorar a segurança. Ele verifica a força da senha
e permite que os usuários definam apenas aquelas senhas que são
seguras o suficiente. Você gostaria de configurar o componente de VALIDAÇÃO DE SENHA?
Pressione y|Y para Sim, qualquer outra tecla para Não: Y
Existem três níveis de política de validação de senha:
BAIXO Comprimento >= 8
MÉDIO Comprimento >= 8, numérico, letras maiúsculas e minúsculas, e caracteres especiais
FORTE Comprimento >= 8, numérico, letras maiúsculas e minúsculas, caracteres especiais e arquivo de dicionário
Por favor, insira 0 = BAIXO, 1 = MÉDIO e 2 = FORTE: 2
Usando a senha existente para root.
Força estimada da senha: 100
Em seguida, digite N para recusar a alteração da sua senha root. Além disso, digite Y para remover usuários anônimos, desabilitar logins remotos de root, remover o banco de dados de teste e recarregar as tabelas de privilégios.
Mudar a senha para root? ((Pressione y|Y para Sim, qualquer outra tecla para Não) : N
... pulando.
Por padrão, uma instalação do MySQL tem um usuário anônimo,
permitindo que qualquer pessoa faça login no MySQL sem ter
uma conta de usuário criada para ela. Isso é destinado apenas para
testes, e para tornar a instalação um pouco mais suave.
Você deve removê-los antes de passar para um ambiente de produção.
Remover usuários anônimos? (Pressione y|Y para Sim, qualquer outra tecla para Não) : Y
Sucesso.
Normalmente, o root deve ser permitido apenas conectar-se a partir de
'localhost'. Isso garante que alguém não possa adivinhar a
senha root pela rede.
Desabilitar login remoto de root? (Pressione y|Y para Sim, qualquer outra tecla para Não) : Y
Sucesso.
Por padrão, o MySQL vem com um banco de dados chamado 'teste' que
qualquer um pode acessar. Isso também é destinado apenas para testes,
e deve ser removido antes de passar para um ambiente de produção.
Remover banco de dados de teste e acesso a ele? (Pressione y|Y para Sim, qualquer outra tecla para Não) : Y
- Removendo banco de dados de teste...
Sucesso.
- Removendo privilégios no banco de dados de teste...
Sucesso.
Recarregar as tabelas de privilégios garantirá que todas as mudanças
feitas até agora tenham efeito imediato.
Recarregar tabelas de privilégios agora? (Pressione y|Y para Sim, qualquer outra tecla para Não) : Y
Sucesso.
Tudo pronto!
Passo 4 - Configurar MySQL
Faça login no shell do MySQL. Digite sua senha root quando solicitado.
$ sudo mysql -u root -p
Crie os seguintes três bancos de dados.
mysql> CREATE DATABASE ccnet_db CHARACTER SET utf8;
mysql> CREATE DATABASE seafile_db CHARACTER SET utf8;
mysql> CREATE DATABASE seahub_db CHARACTER SET utf8;
Crie uma conta de usuário SQL para acessar esses bancos de dados. O Seafile só funciona com o plugin de autenticação mysql_native_password e como o MySQL 8 não o usa por padrão, você precisa especificá-lo ao criar.
mysql> CREATE USER 'seafile'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Your_password2';
Conceda todos os privilégios nos três bancos de dados ao usuário.
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;
Atualize os privilégios do usuário.
mysql> FLUSH PRIVILEGES;
Saia do shell.
mysql> exit
Passo 5 - Criar um diretório e usuário do Seafile
Crie o diretório para os arquivos do programa do Seafile.
$ sudo mkdir /opt/seafile
Crie o usuário para o Seafile.
$ sudo adduser --home /opt/seafile --shell /bin/bash seafile
Altere a propriedade do diretório para o novo usuário.
$ sudo chown -R seafile: /opt/seafile
Passo 6 - Baixar e Instalar o Seafile
Faça login como o usuário Seafile. Digite sua senha de usuário quando solicitado.
$ su seafile
Visite a página de download do Seafile e pegue o link de download para a versão mais recente do Seafile. No momento da redação deste tutorial, a versão mais recente é 10.0.1.
Baixe o arquivo do servidor Seafile.
$ wget https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_10.0.1_x86-64.tar.gz
Extraia o arquivo.
$ tar xf seafile-server_10.0.1_x86-64.tar.gz
Mude para o diretório do Seafile.
$ cd seafile-server-10.0.1/
Execute o script de instalação do Seafile.
$ ./setup-seafile-mysql.sh
O script de instalação começará. Pressione a tecla ENTER para continuar.
Verificando python nesta máquina ...
-----------------------------------------------------------------
Este script irá guiá-lo para configurar seu servidor seafile usando MySQL.
Certifique-se de que leu o manual do servidor seafile em
https://download.seafile.com/published/seafile-manual/home.md
Pressione ENTER para continuar
-----------------------------------------------------------------
Em seguida, configure seu servidor Seafile fornecendo um nome para seu servidor, um nome de domínio (seafile.example.com) e a porta. Você pode deixar o campo da porta vazio para que o Seafile use a porta 8082 como padrão. Uma vez configurado, pressione a tecla ENTER para continuar.
Qual é o nome do servidor? Ele será exibido no cliente.
3 - 15 letras ou dígitos
[ nome do servidor ] Howtoforge
Qual é o ip ou domínio do servidor?
Por exemplo: www.minhaempresa.com, 192.168.1.101
[ IP ou domínio deste servidor ] seafile.example.com
Qual porta você deseja usar para o servidor de arquivos seafile?
[ padrão "8082" ]
Em seguida, você será solicitado a escolher uma forma de inicializar os bancos de dados do Seafile. Como já criamos o banco de dados, escolha a 2ª opção.
-------------------------------------------------------
Por favor, escolha uma forma de inicializar os bancos de dados seafile:
-------------------------------------------------------
[1] Criar novos bancos de dados ccnet/seafile/seahub
[2] Usar bancos de dados ccnet/seafile/seahub existentes
[ 1 ou 2 ] 2
Em seguida, você será solicitado a inserir os detalhes do banco de dados para o Seafile. Deixe os campos de host e porta vazios para que o Seafile selecione os valores padrão. Insira os outros valores conforme configurado no Passo 4.
Qual é o host do servidor mysql?
[ padrão "localhost" ]
Qual é a porta do servidor mysql?
[ padrão "3306" ]
Qual usuário mysql usar para seafile?
[ usuário mysql para seafile ] seafile
Qual é a senha para o usuário mysql "seafile"?
[ senha para seafile ]
verificando a senha do usuário seafile ... feito
Digite o nome do banco de dados existente para ccnet:
[ banco de dados ccnet ] ccnet_db
verificando o acesso do usuário "seafile" ao banco de dados ccnet_db ... feito
Digite o nome do banco de dados existente para seafile:
[ banco de dados seafile ] seafile_db
verificando o acesso do usuário "seafile" ao banco de dados seafile_db ... feito
Digite o nome do banco de dados existente para seahub:
[ banco de dados seahub ] seahub_db
verificando o acesso do usuário "seafile" ao banco de dados seahub_db ... feito
Em seguida, você verá suas configurações do Seafile. Pressione a tecla ENTER para continuar a instalação.
---------------------------------
Esta é sua configuração
---------------------------------
nome do servidor: Howtoforge
ip/domínio do servidor: seafile.example.com
diretório de dados do seafile: /opt/seafile/seafile-data
porta do servidor de arquivos: 8082
banco de dados: usar existente
banco de dados ccnet: ccnet_db
banco de dados seafile: seafile_db
banco de dados seahub: seahub_db
usuário do banco de dados: seafile
---------------------------------
Pressione ENTER para continuar, ou Ctrl-C para abortar
---------------------------------
Você verá a seguinte tela se a instalação for bem-sucedida.
Gerando configuração do ccnet ...
Gerando configuração do seafile ...
feito
Gerando configuração do seahub ...
----------------------------------------
Agora criando tabelas do banco de dados ccnet ...
----------------------------------------
----------------------------------------
Agora criando tabelas do banco de dados seafile ...
----------------------------------------
----------------------------------------
Agora criando tabelas do banco de dados seahub ...
----------------------------------------
criando link simbólico seafile-server-latest ... feito
-----------------------------------------------------------------
Sua configuração do servidor seafile foi concluída com sucesso.
-----------------------------------------------------------------
execute o servidor seafile: ./seafile.sh { start | stop | restart }
execute o servidor seahub: ./seahub.sh { start | stop | restart }
-----------------------------------------------------------------
Se você estiver atrás de um firewall, lembre-se de permitir a entrada/saída dessas portas tcp:
-----------------------------------------------------------------
porta do servidor de arquivos seafile: 8082
porta do seahub: 8000
Quando problemas ocorrerem, consulte
https://download.seafile.com/published/seafile-manual/home.md
para informações. Passo 7 - Iniciar o Servidor Seafile
Mude para o diretório /opt/seafile/seafile-server-latest.
$ cd /opt/seafile/seafile-server-latest
Execute o seguinte comando para iniciar o servidor Seafile.
$ ./seafile.sh start
Você obterá a seguinte saída.
Iniciando o servidor seafile, por favor aguarde ...
** Mensagem: 04:42:32.937: seafile-controller.c(621): No seafevents.
Servidor Seafile iniciado
Feito.
Execute o seguinte comando para iniciar o Seahub.
$ ./seahub.sh start
Na primeira vez que o Seahub iniciar, você será solicitado a inserir os detalhes da conta de administrador.
LC_ALL não está definido no ENV, definido como en_US.UTF-8
Iniciando seahub na porta 8000 ...
----------------------------------------
É a primeira vez que você inicia o servidor seafile. Agora vamos criar a conta de administrador
----------------------------------------
Qual é o e-mail para a conta de administrador?
[ e-mail do administrador ] [email protected]
Qual é a senha para a conta de administrador?
[ senha do administrador ]
Digite a senha novamente:
[ senha do administrador novamente ]
----------------------------------------
Conta de administrador seafile criada com sucesso
----------------------------------------
Seahub foi iniciado
Feito.
Pare os servidores Seafile e Seahub.
$ ./seafile.sh stop
$ ./seahub.sh stop
Passo 8 - Configurar Seafile
Abra o arquivo /opt/seafile/conf/seafile.conf para edição.
$ nano /opt/seafile/conf/seafile.conf
Adicione o parâmetro host = 127.0.0.1 na seção [fileserver].
[fileserver]
host = 127.0.0.1
porta = 8082
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Abra o arquivo /opt/seafile/conf/seahub_settings.py para edição.
$ nano /opt/seafile/conf/seahub_settings.py
Modifique o valor de SERVICE_URL para refletir o protocolo HTTPS.
SERVICE_URL = "https://seafile.example.com/"
Adicione a seguinte linha abaixo dele.
FILE_SERVER_ROOT = "https://seafile.example.com/seafhttp"
Adicione o seguinte código ao final do arquivo.
CACHES = {
'default': {
'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
'LOCATION': '127.0.0.1:11211',
},
}
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Saia do shell do usuário Seafile.
$ exit
Passo 9 - Criar Serviço Systemd
Para garantir que o Seafile inicie automaticamente na inicialização e possa suportar reinicializações, você precisa criar arquivos de unidade de serviço Systemd para ele.
Crie e abra o arquivo /etc/systemd/system/seafile.service para edição.
$ sudo nano /etc/systemd/system/seafile.service
Cole o seguinte código nele.
[Unit]
Description=Seafile
# adicione mysql.service ou postgresql.service dependendo do seu banco de dados na linha abaixo
After=network.target mysql.service
[Service]
Type=forking
ExecStart=/opt/seafile/seafile-server-latest/seafile.sh start
ExecStop=/opt/seafile/seafile-server-latest/seafile.sh stop
LimitNOFILE=infinity
User=seafile
Group=seafile
[Install]
WantedBy=multi-user.target
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Crie e abra o arquivo /etc/systemd/system/seahub.service para edição.
$ sudo nano /etc/systemd/system/seahub.service
Cole o seguinte código nele.
[Unit]
Description=Seafile hub
After=network.target seafile.service
[Service]
Type=forking
# mude start para start-fastcgi se você quiser executar fastcgi
ExecStart=/opt/seafile/seafile-server-latest/seahub.sh start
ExecStop=/opt/seafile/seafile-server-latest/seahub.sh stop
User=seafile
Group=seafile
[Install]
WantedBy=multi-user.target
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Recarregue o daemon do Systemctl.
$ sudo systemctl daemon-reload
Execute os seguintes comandos para habilitar e iniciar os serviços Seafile e Seahub.
$ sudo systemctl enable --now seafile
$ sudo systemctl enable --now seahub
Verifique o status de ambos os serviços.
$ sudo systemctl status seafile
? seafile.service - Seafile
Loaded: loaded (/etc/systemd/system/seafile.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-04-19 07:20:38 UTC; 24s ago
Tasks: 19 (limit: 1026)
Memory: 11.6M
CPU: 102ms
CGroup: /system.slice/seafile.service
??3601 /opt/seafile/seafile-server-10.0.1/seafile/bin/seafile-controller -c /opt/seafile/ccnet -d /opt/seafile/seafile-data -F /opt/seafile/conf
Em seguida, verifique o status do Seahub.
$ sudo systemctl status seahub
? seahub.service - Seafile hub
Loaded: loaded (/etc/systemd/system/seahub.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-04-19 07:20:54 UTC; 19s ago
Process: 3655 ExecStart=/opt/seafile/seafile-server-latest/seahub.sh start (code=exited, status=0/SUCCESS)
Main PID: 3668 (python3)
Tasks: 6 (limit: 1026)
Memory: 85.8M
CPU: 1.177s
CGroup: /system.slice/seahub.service
??3668 python3 /opt/seafile/seafile-server-10.0.1/seahub/thirdpart/bin/gunicorn seahub.wsgi:application -c /opt/seafile/conf/gunicorn.conf.py --preload
Passo 10 - Instalar Nginx
O Ubuntu 22.04 vem com uma versão mais antiga do Nginx. Para instalar a versão mais recente, você precisa baixar o repositório oficial do Nginx.
Importe a chave de assinatura do Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Adicione o repositório para a versão estável do Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Atualize os repositórios do sistema.
$ sudo apt update
Instale o Nginx.
$ sudo apt install nginx
Verifique a instalação.
$ nginx -v
nginx version: nginx/1.24.0
Inicie o servidor Nginx.
$ sudo systemctl start nginx
Passo 11 - Instalar SSL
Precisamos instalar o Certbot para gerar o certificado SSL. Você pode instalar o Certbot usando o repositório do Ubuntu ou pegar a versão mais recente usando a ferramenta Snapd. Usaremos a versão Snapd.
O Ubuntu 22.04 vem com o Snapd instalado por padrão. Execute os seguintes comandos para garantir que sua versão do Snapd esteja atualizada.
$ sudo snap install core && sudo snap refresh core
Instale o Certbot.
$ sudo snap install --classic certbot
Use o seguinte comando para garantir que o comando Certbot possa ser executado criando um link simbólico para o diretório /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Execute o seguinte comando para gerar um Certificado SSL.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d seafile.example.com
O comando acima fará o download de um certificado para o diretório /etc/letsencrypt/live/seafile.example.com em seu servidor.
Gere um certificado de grupo Diffie-Hellman.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Verifique o serviço do agendador de renovação do Certbot.
$ sudo systemctl list-timers
Você encontrará snap.certbot.renew.service como um dos serviços agendados para execução.
NEXT LEFT LAST PASSED UNIT ACTIVATES
Wed 2023-04-19 10:31:47 UTC 2h 55min left Wed 2023-04-19 03:31:58 UTC 4h 3min ago ua-timer.timer ua-timer.service
Wed 2023-04-19 12:02:42 UTC 4h 26min left Wed 2023-04-19 03:19:20 UTC 4h 16min ago motd-news.timer motd-news.service
Wed 2023-04-19 18:19:56 UTC 10h left Wed 2023-04-19 07:19:52 UTC 16min ago apt-daily.timer apt-daily.service
Wed 2023-04-19 22:51:00 UTC 15h left n/a n/a snap.certbot.renew.timer snap.certbot.renew.service
Faça um teste do processo para verificar se a renovação do SSL está funcionando bem.
$ sudo certbot renew --dry-run
Se você não ver erros, está tudo pronto. Seu certificado será renovado automaticamente.
Passo 12 - Configurar Nginx
Crie e abra o arquivo /etc/nginx/conf.d/seafile.conf para edição.
$ sudo nano /etc/nginx/conf.d/seafile.conf
Cole o seguinte código nele.
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;
listen [::]:80;
server_name seafile.example.com;
rewrite ^ https://$http_host$request_uri? permanent; # Redirecionamento forçado de HTTP para HTTPS
server_tokens off; # Impede que a versão do Nginx seja exibida no cabeçalho da resposta HTTP
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/seafile.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/seafile.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/seafile.example.com/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
resolver 8.8.8.8;
server_name seafile.example.com;
server_tokens off;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $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;
proxy_set_header X-Forwarded-Proto https;
# usado para visualizar/editar arquivo de escritório 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;
# Descomente a linha a seguir se você quiser suportar uploads > 4GB
# proxy_request_buffering off;
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 o arquivo pressionando Ctrl + X e digitando Y quando solicitado após terminar.
Abra o arquivo /etc/nginx/nginx.conf para edição.
$ sudo nano /etc/nginx/nginx.conf
Adicione a seguinte linha antes da linha include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Verifique a sintaxe do arquivo de configuração do Nginx.
$ sudo nginx -t
nginx: o arquivo de configuração /etc/nginx/nginx.conf a sintaxe está ok
nginx: teste do arquivo de configuração /etc/nginx/nginx.conf bem-sucedido
Reinicie o serviço Nginx.
$ sudo systemctl restart nginx
Passo 13 - Acessar Seafile
Abra a URL https://seafile.example.com em seu navegador e você verá a seguinte tela de login.

Digite as credenciais que você criou no passo 7 e clique no botão Log in para prosseguir. Você será recebido pela seguinte página.

Clique em My Library para abrir a biblioteca padrão.

Clique no botão Upload e selecione a opção Upload files. Selecione o arquivo que você deseja fazer upload e clique no botão Open.
A barra de progresso será carregada e seu arquivo será enviado em breve.

Para acessar o painel de Administração, clique no ícone da foto do perfil na área superior direita.

Selecione a opção System Admin para abrir o painel de administração.

A partir daqui, você pode mudar a marca do seu site, habilitar senhas mais fortes e autenticação de dois fatores, desabilitar registros e gerenciar vários usuários, entre outras opções.
Conclusão
Isso conclui nosso tutorial sobre a instalação do armazenamento em nuvem auto-hospedado Seafile em um servidor Ubuntu 22.04. Se você tiver alguma dúvida, poste nos comentários abaixo.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.