Primeiro, o que é o Seafile?
Seafile é um programa de sincronização de arquivos auto-hospedados que funciona com o modelo de servidor-cliente, em que você tem vários dispositivos como seu laptop e telefone que se conectam a um servidor central.
Ao contrário de algumas alternativas mais populares como NextCloud ou OwnCloud, o Seafile tenta seguir a filosofia de "fazer apenas uma coisa, mas fazer bem". Da mesma forma, o Seafile não tem frescuras extras construÃdas como contatos ou integração de calendário.
Seafile, em vez disso, concentra-se unicamente na sincronização de arquivos, compartilhamento e as coisas que o rodeiam, e é isso. Como resultado disso, acaba fazendo isso extremamente bem.
Implantando o servidor do Seafile com Docker e NginX
Tutorial avançado: A maioria dos tutoriais aqui está focada em iniciantes. Este não é. Destina-se a usuários avançados que se mexem muito com projetos DIY e preferem auto-host.
Este tutorial presume que você está confortável ao usar a linha de comando, e que você é pelo menos decentemente experiente com os programas que estaremos usando.
Embora todo o processo pudesse ser feito sem usar o NGINX, usar o NGINX permitirá uma configuração mais fácil, além de torná-lo significativamente mais fácil de hospedar mais serviços no futuro.
Se você quiser usar uma configuração de docker completa, poderá configurar NGINX dentro do Docker também, mas só tornará as coisas mais complexas e não adicionarão muito benefÃcio, e também não será coberto neste tutorial.
Instalando e configurando o NGINX
Eu estarei usando o Ubuntu neste tutorial e, portanto, estarei usando apt para instalar pacotes. Se você usa Fedora ou alguma outra distribuição não Debian, use o Gerenciador de pacotes.
Nginx, além de ser um servidor da Web, é o que é conhecido como proxy. Ele funcionará como a conexão entre o servidor do Seafile e a Internet, enquanto também facilita várias tarefas.
Para instalar o NginX, use o seguinte comando:
sudo apt install nginx
Se você quiser usar https (aquele pequeno cadeado no seu navegador), você também precisará instalar Certbot:
sudo apt install certbot python3-certbot-nginx
Em seguida, você precisa configurar o NGINX para se conectar à instância do Seafile que configuramos mais tarde.
Primeiro, execute o seguinte comando:
sudo nano /etc/nginx/sites-available/seafile.conf
Digite o seguinte texto no arquivo:
server_name localhost;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
IMPORTANTE: Substitua localhost na linha server_name com o endereço que você estará acessando seu servidor (ou seja, seafile.example.com ou 192.168.0.0). Não tem certeza do que colocar?
- Se você está testando apenas por uma questão de curiosidade, use localhost. Esta configuração só permitirá que você acesse o servidor do seu computador e é isso.
- Se você quiser usar o Seafile em toda a sua conexão WiFi local (qualquer dispositivo na mesma rede WiFi que você), você deve inserir o endereço IP do seu computador. Você também pode querer definir um endereço IP estático, embora não seja necessário.
- Se você tiver um endereço IP público que conhece pontos para o seu sistema, use isso.
- Se você tiver um nome de domÃnio (ou seja,example.com, exemplo.org) e um endereço IP público para o seu sistema, altere suas configurações de DNS para apontar o nome do domÃnio para o endereço IP do seu sistema. Isso também exigirá que o endereço IP público aponte para o seu sistema.
Agora você precisa copiar o arquivo de configuração para o diretório NGINX aparece para arquivos e, em seguida, reiniciar o NGINX:
sudo ln -s /etc/nginx/sites-available/seafile.conf /etc/nginx/sites-enabled/seafile.conf
sudo systemctl restart nginx
Se você configurar o CERTBOT, também precisará executar o seguinte para configurar HTTPS:
sudo certbot
Se solicitado a redirecionar o tráfego HTTP para HTTPS, escolha 2.
Agora seria um bom momento para ter certeza de que tudo o que montamos até agora está funcionando. Se você visitar seu site, você deve obter uma tela que diz algo nas linhas de 502 Bad Gateway
.
Instalar Docker e Docker Compose
Agora começa a parte divertida!
Antes de mais nada, você precisa ter Docker e Docker Compose instalado. O Docker Compose é necessário para utilizar um arquivo docker-compose.yml
, que tornará o gerenciamento dos vários conteineres necessários mais fácil.
O Docker e o Docker Compose podem ser instalados com o seguinte comando:
sudo apt install docker.io docker-compose
Para verificar se o Docker está instalado e em execução, execute o seguinte:
sudo docker run --rm hello-world
Você deve ver algo ao longo das linhas deste em seu terminal se for concluÃdo com sucesso:
Se você quiser evitar adicionar sudo
ao inÃcio do comando docker
, você pode executar os seguintes comandos para adicionar-se ao grupo docker
:
sudo groupadd docker
sudo usermod -aG docker $USER
O resto deste tutorial assume que você executou os dois comandos acima. Se você não fez, adicione sudo
a todos os comandos que começam com docker
ou docker-compose
.
Instalando o servidor do Seafile
Esta parte é significativamente mais fácil do que a parte anterior. Tudo o que você precisa fazer é colocar algum texto em um arquivo e executar alguns comandos.
Abra um terminal. Em seguida, crie um diretório onde você deseja que o conteúdo do servidor Seafile seja armazenado e entre no diretório:
mkdir ~/seafile-server && cd ~/seafile-server
Vá para o diretório que você criou e execute o seguinte:
nano docker-compose.yml
Em seguida, insira o texto abaixo na janela que aparece:
version: '2.0'
services:
db:
image: mariadb
container_name: seafile-mysql
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_LOG_CONSOLE=true
volumes:
- ./data/mariadb:/var/lib/mysql
networks:
- seafile-net
memcached:
image: memcached
container_name: seafile-memcached
entrypoint: memcached -m 256
networks:
- seafile-net
seafile:
image: seafileltd/seafile-mc
container_name: seafile
ports:
- "8080:80"
volumes:
- ./data/app:/shared
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=password
- TIME_ZONE=Etc/UTC
- [email protected]
- SEAFILE_ADMIN_PASSWORD=password
- SEAFILE_SERVER_LETSENCRYPT=false
- SEAFILE_SERVER_HOSTNAME=docs.seafile.com
depends_on:
- db
- memcached
networks:
- seafile-net
networks:
seafile-net:
Antes de salvar o arquivo, algumas coisas precisarão ser alteradas:
- MYSQL_ROOT_PASSWORD: Alterar para uma senha mais forte, você não precisa lembrar disso, então não tente escolher qualquer coisa fácil. Se você precisar de ajuda para fazer um, use um gerador de senha. Eu recomendo 20 caracteres e evitar quaisquer caracteres especiais (todos os sÃmbolos *!@#$%^&**).
- DB_ROOT_PASSWD: Alterar para o valor definido para MYSQL_ROOT_PASSWORD.
- SEAFILE_ADMIN_EMAIL: Define o endereço de e-mail para a conta de administrador.
- SEAFILE_ADMIN_PASSWORD: Define a senha da conta de administrador. Evite tornar isso o mesmo que MYSQL_ROOT_PASSWORD ou DB_ROOT_PASSWD.
- SEAFILE_SERVER_HOSTNAME: Definir para o endereço definido na configuração do Nginx.
Com isso, você pode ligar tudo com docker-compose
:
docker-compose up -d
Pode demorar um ou dois minutos dependendo da sua conexão com a Internet, pois tem que baixar vários contêineres que o Seafile precisa para ser executado.
Depois disso, dê mais alguns minutos para terminar. Você também pode verificar o status dele executando o seguinte:
docker logs seafile
Quando terminar, você verá a seguinte saÃda:
Em seguida, basta digitar o endereço que você definiu para SEAFILE_SERVER_HOSTNAME no seu navegador e você deve estar em uma tela de login.
E aà está! Tudo está agora totalmente funcional e pronto para ser usado com os clientes.
Instalando os clientes do Seafile
O Seafile no celular está disponÃvel em Google Play, F-Droid e na iOS App Store. O Seafile também possui clientes desktop disponÃveis para Linux, Windows e Mac, disponÃveis aqui.
O Seafile está prontamente disponÃvel nos sistemas Ubuntu através do pacote seafile-gui
:
sudo apt install seafile-gui
O Seafile também está no AUR para usuários do Arch através do pacote seafile-client
.
Conclusão
Sinta-se à vontade para explorar os clientes e tudo o que eles têm para oferecer. Eu vou detalhar tudo o que os clientes do Seafile são capazes em um artigo futuro (fique atento 😃).
Se algo não está funcionando direito, ou você só tem uma pergunta em geral, sinta-se à vontade para deixá-la nos comentários abaixo - vou tentar responder sempre que puder!
Via itsfoss.com. Você pode conferir o post original em inglês:
How to Deploy Seafile Server with Docker to Host Your Own File Synchronization and Sharing SolutionÚltima atualização deste artigo: 18 de abril de 2021
