Tag: cells

  • Pydio Cells: uma plataforma de colaboração

    Esse foi um pouco diferente, mas para dar um contexto de como eu cheguei aqui: além da minha instância Nextcloud, eu mantenho outra para o meu pai, com um HD dele. Meu pai também é da área de Tecnologia da Informação mas com uma vivência muito mais forte em ambiente Windows.

    Então eu fiquei me perguntando se não havia alguma alternativa ao Nextcloud que pudesse hospedar no Windows, preferencialmente usando o IIS.

    Infelizmente, não consegui nada para IIS, mas consegui algo para Windows – mas não exclusivamente. Pydio Cells é uma plataforma de código aberto para hospedagem e compartilhamento de arquivos, com foco em colaboração.

    Pydio Cells tem uma configuração relativamente simples, não sendo necessário configurar servidor web ou interpretador PHP, só um banco de dados MySQL ou MariaDB. Por baixo dos panos, Pydio Cells é escrito em Go e utiliza o servidor web Caddy. É também compatível com Linux mas dessa vez vamos abordar a configuração em Windows.

    O Pydio Cells pode ser encontrado para download aqui e o MariaDB aqui.

    Comece instalando o MariaDB. Basta seguir o wizard de instalação com as opções recomendadas. Ele vai instalar junto um programa chamado HeidiSQL, um cliente SQL. Abra-o e conecte no seu banco de dados com o root e a senha definida durante a instalação.

    Crie um usuário para o Pydio Cells, um banco de dados e dê todos os privilégios sobre o banco de dados a esse usuário:

    CREATE USER 'pydio_admin'@'localhost' IDENTIFIED BY 'senha123';
    CREATE DATABASE pydio_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    GRANT ALL PRIVILEGES ON pydio_db.* TO 'pydio_admin'@'localhost';
    FLUSH PRIVILEGES;

    Feito isso, crie uma pasta para a execução e os arquivos de configuração do Pydio Cells:

    C:\Users\daniel> mkdir C:\pydio_cells

    Extraia o executável do Pydio Cells da pasta zipada e copie-o para esse diretório.

    Crie a seguinte variável para o Windows e reinicie o sistema operacional para que a alteração tenha efeito:

    C:\Windows\System32> setx CELLS_WORKING_DIR "C:\pydio_cells" /M

    Após reiniciar, instale o Pydio Cells:

    C:\Users\daniel> C:\pydio_cells\cells.exe configure

    O instalador irá perguntar pelo modo de instalação. Você pode selecionar pelo navegador web e seguir por lá. Conecte no seu banco de dados com o usuário e a senha que você criou no HeidiSQL e crie o seu usuário para login no Pydio Cells. Você pode acompanhar o progresso pelo terminal. Ao fim da instalação, a página de login deverá aparecer.

    Você vai ver que ele abre por padrão na porta 8080 com HTTPS, lembre-se de abrir essa porta no firewall do Windows para acesso através de outros clientes:

    C:\Windows\System32> netsh advfirewall firewall add rule name="PydioCells" localport=8080 protocol=tcp dir=in action=allow

    Você já deve conseguir acessar o servidor através de outros dispositivos na sua rede.

    Para integrar à minha infraestrutura existente, esse servidor também foi colocado atrás do proxy reverso, e a configuração de diferentes proxys, incluindo o nginx, são abordadas na própria documentação do Pydio Cells.

    Use o seguinte comando para determinar o endereço onde ele escuta por conexões e o endereço externo utilizado para o proxy reverso:

    C:\pydio_cells\cells.exe configure sites

    Nesse caso, foi configurado como:

    • BIND: https://0.0.0.0:8080
    • TLS: auto-assinado
    • URL externa: https://pydio.exemplo.com

    Note que uma porta diferente pode ser utilizada para a URL externa. Caso pretenda configurar a integração com o Collabora, como foi feito para o Nextcloud, mantenha o acesso na URL externa pela porta padrão, visto que o Collabora retorna erro 403 quando usado com portas alternativas.

    O domínio do Collabora também deve ser o mesmo que o do Pydio Cells, como collabora.exemplo.com e pydio.exemplo.com, resultando também em erro 403 quando configurado com domínios diferentes.

    Agora, o Pydio Cells não se inicia automaticamente junto com o Windows, precisando ser iniciado manualmente com:

    C:\Users\daniel> C:\pydio_cells\cells.exe start

    Você pode no entanto configurar o Pydio Cells para ser executado como um serviço do Windows, iniciando junto com o sistema operacional.

    O Windows tem 3 usuários para serviços: Local System, Network Service e Local Service, do maior ao menor nível de acesso ao sistema. Para utilizar Local Service, precisamos dar permissão de acesso à pasta do Pydio Cells e suas subpastas.

    C:\Windows\System32> icacls C:\pydio_cells /grant LocalService:(OI)(CI)(F) /T

    Então, basta criar o serviço:

    C:\Windows\System32> sc create PydioCellsService binPath="C:\pydio_cells\cells.exe start" start=delayed-auto obj="NT AUTHORITY\LocalService"

    Uma desvantagem (para mim) que eu encontrei no Pydio Cells em relação ao Nextcloud é que, ao fazer upload de arquivos, eles são armazenados no Windows sob um nome diferente, utilizando UUIDs, e sem estrutura de pastas separando os arquivos por usuários ou replicando a estrutura de pastas existente dentro da plataforma, armazenando informações referentes à organização de pastas e arquivos apenas no banco de dados.

    A integração com um servidor Collabora existente é feita através do Cells Console. Ative a chave no topo da página para mostrar as configurações avançadas e, no fim da lista aparece a área “All Plugins”, onde a conexão com o Collabora é configurada e o plugin do Collabora deve ser ativado.