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 -y Alguns 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 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.

Tela de Login do Seafile

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.

Painel do Seafile

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

Botão de Upload de Arquivos do Seafile

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.

Progresso do Upload de Arquivo do Seafile

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

Botão de Admin do Sistema do Seafile

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

Painel de Administração do Seafile

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.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.