
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.
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).

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.
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:

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.

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.

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).

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 lá .
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.

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:

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.