Nuvem pessoal


O armazenamento em nuvem permite não apenas armazenar dados, mas também fornecer colaboração com eles no NAS .


Possíveis soluções


Existem várias opções para serviços em nuvem: NextCloud, Seafile, Pydio, etc ...
Alguns deles são considerados abaixo.


Implementações de serviços em nuvem.

Owncloud



Implementado em PHP / Javascript.


Recursos:


  • É possível expandir a funcionalidade instalando aplicativos do repositório na nuvem.
  • Há integração com o escritório de Collabora e OnlyOffice.
  • É possível usar repositórios existentes, como FTP, Swift, S3, Dropbox, etc.,
    compartilhando dados entre eles e a nuvem local.
  • Criptografia no cliente.
  • A capacidade de fornecer arquivos para usuários externos por email.
  • Há automação de operações com arquivos (por exemplo, adição automática de tags).
  • LDAP
  • Há um reprodutor de áudio, uma coleção de músicas, uma galeria de plugins de leitores de PDF.
  • Integração com Zimbra.
  • Existem calendários, listas de tarefas, editores de texto etc.
  • Antivírus e proteção contra ransomware.
  • Autenticação de dois fatores.
  • A capacidade de se representar para outro usuário (para fins de depuração).

NextCloud



Forquilha OwnCloud. Implementado em PHP / Javascript.


Recursos:


  • Armazenamento de arquivos usando estruturas de diretório regulares ou usando WebDAV.
  • Existe o NextCloud Talk, através do qual é possível fazer chamadas de vídeo e videoconferência.
  • Sincronização entre clientes executando o Windows (Windows XP, Vista, 7 e 8), Mac OS X (10.6 e posterior) ou Linux.
  • Sincronize com dispositivos móveis.
  • Calendário (também como CalDAV).
  • Agendador de tarefas.
  • Catálogo de endereços (igual ao CardDAV).
  • Mídia de streaming (usada pelo Ampache).
  • Ele suporta diferentes provedores de autorização: LDAP, OpenID, Shibboleth.
  • Autorização de dois fatores.
  • Compartilhando conteúdo entre grupos ou usando URLs públicos. Ajustando as regras.
  • Um editor de texto online com destaque de sintaxe e dobra. Foi anunciado o suporte para versões online dos editores do LibreOffice.
  • Favoritos
  • Mecanismo de redução de URL.
  • Galeria de Fotos
  • Visualizador de PDF (usando PDF.js)
  • Integração com Collabora e OnlyOffice.
  • Módulo de registro.
  • Capacidade de criar seus próprios sites (no PicoCMS).
  • Integração com o Outlook e o Thunderbird.
  • Integração com o cliente no Gnome.
  • Capacidade de usar armazenamento externo.
  • Pesquisa de texto completo.
  • Integração com antivírus.

Sparkleshare


Implementado em C #.


Recursos:


  • Versionamento
  • Criptografia no cliente.
  • Sincronização transparente entre vários usuários: alterações remotas aparecerão no diretório local dedicado ao SparkleShare.

Características:


  • Usa o git como back-end.

Seafile



Implementado em C / Javascript.


Recursos:


  • Os arquivos podem ser organizados em bibliotecas que podem ser sincronizadas entre dispositivos.
  • Existe um cliente que permite criar um "disco" local, mapeado para a nuvem.
  • Criptografia embutida. Todos os arquivos são criptografados pelo cliente e armazenados na nuvem criptografada.
  • Suporte para dispositivo móvel.
  • Criptografia HTTS / TLS.
  • Existe LDAP.
  • Direitos de sintonia fina.
  • Arquivos de versão.
  • Capacidade de criar um instantâneo de diretório, que pode ser retornado.
  • Desduplicação.
  • Suporte para bloqueio de arquivos.
  • Co-edição de arquivos online.
  • Antivírus.
  • Direitos de sintonia fina.
  • Backup periódico através do rsync.
  • WebDAV
  • API REST
  • Capacidade de integração com o Collabora.

Características:


  • Rápido e pouco exigente para os recursos.
  • É considerado confiável.
  • A definição de direitos para subdiretórios é suportada apenas na versão Pro paga.
  • Integração com antivírus - apenas na versão Pro.
  • Auditoria - apenas na versão Pro.
  • Pesquisa de texto completo - apenas na versão Pro.
  • Integração com S3 e Ceph - apenas na versão Pro.
  • Visualização on-line de Doc / PPT / Excel - apenas na versão Pro.

Pydio



Implementado em PHP / Javascript.


Recursos:


  • Compartilhamento de arquivos não apenas entre usuários, mas também entre várias instâncias do Pydio.
  • Criptografia SSL / TLS.
  • WebDAV
  • Capacidade de criar vários espaços de trabalho.
  • Compartilhamento de arquivos com usuários externos, com compartilhamento de ajuste fino (por exemplo, links diretos, senha etc.).
  • Escritório interno de Collabora.
  • Visualizar e editar imagens.
  • Há um player de áudio e vídeo embutido.

Projectend



Implementado em PHP / Javascript.


Recursos:


  • É possível compartilhar arquivos, tanto entre usuários específicos quanto entre grupos.
  • Relatório completo sobre operações de arquivo.
  • A capacidade de usuários externos fazer upload de arquivos (com o objetivo de compartilhar, por exemplo, aplicar relatórios de erros).

SpiderOak



Recursos:


  • Economize espaço de armazenamento e tempo de upload de arquivos, deduplicando e fazendo alterações nos arquivos existentes (em vez de substituir o arquivo inteiro).
  • Sincronização multiplataforma personalizável.
    O DropBox para sincronização cria uma pasta especial na qual é necessário colocar todos os arquivos sincronizados. SpiderOak pode trabalhar com qualquer diretório.
  • Salve todas as versões históricas dos arquivos e arquivos excluídos
  • Compartilhando pastas usando os chamados ShareRooms, que definem uma senha.
    Os arquivos atualizados no computador local são atualizados automaticamente no repositório. Os usuários são notificados de alterações via RSS.
  • Receba arquivos de qualquer dispositivo conectado à Internet.
  • Criptografia completa de dados com base no princípio de “zero conhecimento”.
  • Suporte para um número ilimitado de dispositivos.
  • Criptografia de dados do lado do cliente.
  • Autenticação de dois fatores.

Características:


Sistema proprietário fechado.


Dado que este software é pago e parcialmente fechado, seu uso é excluído.


Instale o NextCloud


Inicialmente, havia um desejo de usar o Seafile: a parte do servidor é implementada em C, é eficiente e estável. Mas aconteceu que a versão gratuita não tem tudo.


Portanto, tentei o Nextcloud e fiquei satisfeito. Ele fornece mais recursos e é totalmente gratuito.


Você pode ver como ele funciona no modo de demonstração aqui .


Aqui estão as interfaces comuns entre o armazenamento em nuvem e o sistema:


  • /tank0/apps/cloud/nextcloud - armazenamento de serviço em nuvem.
  • /tank0/apps/onlyoffice - dados do escritório.
  • https://cloud.NAS.cloudns.cc - interface de serviço em nuvem WEB.

Porque A configuração do NextCloud é bastante volumosa e consiste em vários arquivos, não os listarei aqui.


Tudo o que você precisa pode ser encontrado no repositório no Github .


A configuração do SeaFile também está disponível .


Primeiro instale e inicie o NextCloud.


Para fazer isso, copie a configuração no /tank0/docker/services/nextcloud e execute:


 # docker-compose up -d 

Uma nova imagem baseada no Nextcloud 13.0.7 será criada. Se você deseja alterar a versão da imagem base, faça-o em app/Dockerfile . Eu uso a versão 15, mas vale a pena notar que muitos plug-ins, como o carregador e notas do ocDownloader, não funcionam nele e ainda não restaurei a funcionalidade do OnlyOffice.


Não notei nenhuma diferença importante ou uma forte melhoria de desempenho.


Abaixo, acredito que você esteja usando a versão 13+.


Em seguida, vá para NextCloud e selecione "Aplicativos" no menu no canto superior direito, conclua a instalação dos plug-ins necessários.


Aplicações


Obrigatório:


  • Usuário LDAP e back - end de grupo - emparelhamento com LDAP.
  • Suporte de armazenamento externo - suporte para armazenamento externo. Será necessário ainda mais, com o objetivo de integrar o NextCloud e os arquivos compartilhados, além de emparelhar com o armazenamento em nuvem externo. Vou falar sobre a configuração de armazenamento externo em outro artigo.
  • ocDownloader - download de arquivos. Estende a funcionalidade da nuvem. A imagem do Docker é especialmente reconstruída para funcionar.
  • ONLYOFFICE - integração de escritório. Sem esse aplicativo, os arquivos de documentos não serão abertos na nuvem.
  • Criptografia de ponta a ponta - Criptografia de ponta a ponta no cliente. Se vários usuários usam a nuvem, é necessário um plug-in para garantir convenientemente a segurança de seus arquivos.

Aplicações desejadas:


  • Configurações de força bruta - proteção contra a seleção de credenciais. O NextCloud está navegando na Internet, por isso é melhor instalá-lo.
  • Representar - permite que o administrador efetue login com outros usuários. Útil para depuração e solução de problemas.
  • Conversa - bate-papo por vídeo.
  • Calendário - fala por si, permite manter calendários na nuvem.
  • Controle de acesso a arquivos - permite que os usuários restrinjam o acesso a arquivos e diretórios com base em tags e regras.
  • Soma de verificação - permite calcular e visualizar somas de verificação de arquivos.
  • Sites externos - cria links para sites arbitrários no painel na parte superior.

Recursos do contêiner:


  • Aria2 bootloader instalado.
  • Carregador de inicialização do YouTube-DL instalado.
  • Inotify-tools instalado.
  • Limites de memória aumentados para PHP.
  • O servidor da web está configurado para funcionar melhor com LDAP.

Observo que, se você instalar a versão 13+, mas decidir atualizar para a versão 15, poderá fazer isso e muito mais usando o utilitário occ .


LDAP


A configuração do LDAP não é trivial, porque vou lhe contar mais.


Vá para "Configurações-> Integração com LDAP / AD".
Adicione o servidor 172.21.0.1 com a porta 389.
Login: cn=admin,dc=nas,dc=nas .
O NextCloud pode gerenciar usuários no banco de dados LDAP e, para isso, precisará de um administrador.



Pressione o botão "Verificar configuração do DN" e, se o indicador de verificação estiver verde, o botão "Avançar".


Cada usuário possui um atributo inetOrgPerson e é um membro do grupo users_cloud .


O filtro ficará assim:


 (&(|(objectclass=inetOrgPerson))(|(memberof=cn=users_cloud,ou=groups,dc=nas,dc=nas))) 

Clique em "Verificar o banco de dados de configurações e recontar usuários" e, se tudo estiver correto, o número de usuários deverá ser exibido. Clique em Avançar.


Na próxima página, um filtro de usuário será configurado pelo qual o NextCloud irá procurá-los.


Filtro:


 (&(objectclass=inetOrgPerson)(uid=%uid)) 

Nesta página, você precisa digitar o login de um usuário e clicar em "Verificar configurações".
Última vez "Próximo".


Em seguida, clique em "Avançado" e verifique se o campo "Base da árvore do grupo" é igual ao campo "Base da árvore do usuário" e tem o valor dc=nas,dc=nas .


Retorne aos grupos e marque a caixa "Somente essas classes de groupOfUniqueNames " ao lado de groupOfUniqueNames .


O filtro final aqui é este:


 (&(|(objectclass=groupOfUniqueNames))) 

O campo "Somente desses grupos" não defini, porque Quero ver todos os usuários na interface NextCloud e aqueles que não são users_cloud grupo users_cloud são users_cloud pelo filtro no estágio anterior.


Onlyoffice



O OnlyOffice é um excelente pacote de escritório multiplataforma que suporta documentos do MS Office. É gratuito e aberto, além do LibreOffice e também é capaz de funcionar como servidor.


Mas, ao mesmo tempo, o suporte ao formato original é implementado muito melhor, quase como no escritório original da MS, é mais estável, tem uma interface mais cuidadosa.


Ele também se integra imediatamente ao NextCloud .


A propósito, existe uma versão para desktop do OnlyOffice, inclusive para Linux. Em geral, tendo sido atormentado com o pesado e instável Collabora (este é o LibreOffice), escolhi o OnlyOffice e até agora estou bastante satisfeito.


A configuração OnlyOffice está disponível no Github e abaixo, abaixo do spoiler.


O Github também tem uma configuração para o Collabora .


/tank0/docker/services/office/onlyoffice/docker-compose.yml
 version: '2' # https://helpcenter.onlyoffice.com/ru/server/docker/document/docker-installation.aspx networks: onlyoffice: driver: 'bridge' docker0: external: name: docker0 services: onlyoffice-redis: container_name: onlyoffice-redis image: redis restart: always networks: - onlyoffice expose: - '6379' onlyoffice-rabbitmq: container_name: onlyoffice-rabbitmq image: rabbitmq restart: always networks: - onlyoffice expose: - '5672' onlyoffice-postgresql: container_name: onlyoffice-postgresql image: postgres environment: - POSTGRES_DB=onlyoffice - POSTGRES_USER=onlyoffice networks: - onlyoffice restart: always expose: - '5432' volumes: - /tank0/apps/onlyoffice/postgresql_data:/var/lib/postgresql onlyoffice-documentserver-data: container_name: onlyoffice-documentserver-data image: onlyoffice/documentserver:latest environment: - ONLYOFFICE_DATA_CONTAINER=true - POSTGRESQL_SERVER_HOST=onlyoffice-postgresql - POSTGRESQL_SERVER_PORT=5432 - POSTGRESQL_SERVER_DB_NAME=onlyoffice - POSTGRESQL_SERVER_USER=onlyoffice - RABBITMQ_SERVER_URL=amqp://guest:guest@onlyoffice-rabbitmq - REDIS_SERVER_HOST=onlyoffice-redis - REDIS_SERVER_PORT=6379 stdin_open: true restart: always networks: - onlyoffice volumes: - /tank0/apps/onlyoffice/document-server-data/data:/var/www/onlyoffice/Data - /tank0/apps/onlyoffice/document-server-data/logs:/var/log/onlyoffice - /tank0/apps/onlyoffice/document-server-data/cache:/var/lib/onlyoffice/documentserver/App_Data/cache/files - /tank0/apps/onlyoffice/document-server-data/files:/var/www/onlyoffice/documentserver-example/public/files - /usr/share/fonts onlyoffice-documentserver: image: onlyoffice/documentserver:latest depends_on: - onlyoffice-postgresql - onlyoffice-redis - onlyoffice-rabbitmq - onlyoffice-documentserver-data environment: - ONLYOFFICE_DATA_CONTAINER_HOST=onlyoffice-documentserver-data - BALANCE=uri depth 3 - EXCLUDE_PORTS=443 - HTTP_CHECK=GET /healthcheck - EXTRA_SETTINGS=http-check expect string true - JWT_ENABLED=true - JWT_SECRET=<JWT_SECRET_TOKEN> # Uncomment the string below to redirect HTTP request to HTTPS request. #- FORCE_SSL=true - VIRTUAL_HOST=office.* - VIRTUAL_PORT=80 - VIRTUAL_PROTO=http - CERT_NAME=NAS.cloudns.cc stdin_open: true restart: always networks: - onlyoffice - docker0 expose: - '80' volumes: - /tank0/apps/onlyoffice/document-server/logs:/var/log/onlyoffice - /tank0/apps/onlyoffice/document-server/data:/var/www/onlyoffice/Data - /tank0/apps/onlyoffice/document-server/lib:/var/lib/onlyoffice - /tank0/apps/onlyoffice/document-server/db:/var/lib/postgresql volumes_from: - onlyoffice-documentserver-data 

Vou explicar alguns pontos:


  • Você precisa alterar <JWT_SECRET_TOKEN> para o seu, bem como o NAS no nome da sua zona DNS.
  • O HTTPS não precisa ser incluído aqui, porque, embora o escritório seja visível do lado de fora, a troca é feita por meio de um proxy reverso, que trabalha com o usuário exclusivamente via HTTPS. É assim que a arquitetura NAS é construída.

Agora você precisa elevar o escritório:


 docker-compose up -d 

E, se tudo funcionar, a seguinte página estará no office.NAS.cloudns.cc:


Apenas Tela ServidorOffice


Em seguida, nas configurações do NextCloud, você precisa selecionar o item "Administration-> ONLYOFFICE" e inserir o endereço do servidor de documentos nos dois primeiros campos: https://office.NAS.cloudns.cc/ e seu token JWT.


No terceiro campo, insira o endereço da nuvem.


É possível gerar um token JWT, por exemplo aqui .


Se o servidor estiver configurado corretamente, itens adicionais para documentos do escritório aparecerão no menu para criação de documentos na nuvem e os arquivos .docx serão abertos no escritório.


Conclusões


O armazenamento em nuvem é o link central para a interação do usuário entre eles e outros serviços.


Nesta função, o NextCloud é muito conveniente e possui ampla funcionalidade.


Ele possui seu próprio processo de atualização entre versões, mas, em geral, esse repositório pode ser recomendado.

Source: https://habr.com/ru/post/pt430970/


All Articles