Data

14 fev, 2018

Sua própria plataforma Wiki usando JS, Git e MongoDB

Publicidade

Recentemente comecei uma busca por uma solução alternativa ao famoso Confluence, solução empresarial paga da Atlassian para gestão do conhecimento utilizando o bom e velho formato wiki. Não me entendam mal, eu gosto bastante da ferramenta, mas seu preço é bem salgado.

Meus critérios para encontrar a ferramenta perfeita eram os seguintes:

  • Fácil de instalar e usar
  • Ter suporte a Markdown
  • Ser um projeto open source
  • Ter a possibilidade de gerenciar permissões de usuários e artigos
  • Possuir um sistema de busca eficaz

Procurei bastante e me deparei com uma série de alternativas interessantes. Dentre as que encontrei, a mais bacana foi o Wiki.js. Este projeto de código aberto é uma solução completíssima de Wiki bem fácil de instalar e sair usando. Vamos ver como ela funciona.

Versão em vídeo

Além das instruções que darei abaixo, você também pode acompanhar todos os passos que serão feitos neste vídeo:

Conheça a plataforma

Como o próprio nome já entrega, toda a solução foi desenvolvida em JavaScript. Além disso, o serviço utiliza o Node.js no back-end e o MongoDB para armazenar os dados. Porém, o que considero mais bacana sobre a plataforma é que ele não utiliza o banco para armazenar os artigos, mas sim o git.

git + nodejs + mongoDB = ❤

A ideia central é que todos os artigos que são escritos na plataforma são gerenciados dentro de um repositório git, e não no banco. Isso é uma grande mão na roda, pois é possível utilizar o GitHub, GitLab ou até mesmo os repositórios privados do BitBucket para administrar os dados.

Isso é muito bacana porque além de não ter que gastar espaço com armazenamento em banco, conseguimos todo o histórico de edições. Sem contar que isso também nos dá a possibilidade de alterar os textos fora da plataforma, já que todos são escritos em Markdown.

Outro ponto forte da plataforma é que ela foi criada já pensando em ambientes responsivos. Isso significa que o seu layout fica bastante agradável em qualquer aparelho, desde notebooks, desktops até tablets e celulares.

Janela do Wiki.js

Como citei anteriormente, uma das funcionalidades essenciais que eu precisava, era poder ter o controle de quem acessa o conteúdo. Com o Wiki.js, conseguimos restringir acesso a determinados usuários ou mesmo apenas partes do seu conteúdo. Além disso, ele se conecta com provedores de autenticação externos, como conta Microsoft, Google ID, Facebook, GitHub, Slack ou mesmo LDAP para fornecer uma experiência de login transparente.

Serviços externos de login disponíveis no Wiki.js

Mas de nada adianta ter um conteúdo rico se não conseguimos encontrá-lo em nossa base. Por sorte, a plataforma também contém um sistema de busca poderoso e preciso. Ao digitar parte do termo na barra de busca, ele provê resultados e sugestões relevantes analisando os metadados das entradas e seus respectivos conteúdos.

Barra de buscas do Wiki.js

Por fim, mas não menos importante, o Wiki.js também oferece um gerenciador de conteúdos, como vídeos, músicas, imagens, documentos e outros tipos de conteúdos digitais. Temos a liberdade de administrar os caminhos dos conteúdos para utiliza-los dentro dos artigos em Markdown.

Gerenciador de assets do Wiki.js

O projeto é inteiramente gratuito e está disponível sob a licença GNU AGPLv3. Temos a liberdade de espiar o código-fonte e contribuir com novas funcionalidades. Junto a isso, conseguimos subir todo o serviço em um servidor ou mesmo na nuvem em pouquíssimos passos. Vamos ver como.

Subindo uma instância na nuvem

Subir uma instância do Wiki.js na sua empresa ou para uso pessoal é muito fácil, graças a facilidade do botão Deploy to Heroku disponível no repositório oficial do projeto.

Acesse o repositório do projeto e procure pelo botão.

Botão Deploy to Heroku

Ao clica-lo, você será direcionado para o painel do Heroku, onde você deve preencher uma série de parâmetros que serão utilizados para configurar seu Wiki.

Os parâmetros são bastante auto explicativos. Você irá configurar o nome, a url de acesso, a linguagem, se ele é público ou não, o repositório git que ele deverá usar, qual credencial git ele usará e as informações do administrador. Junto a isso, você notará que o Heroku já irá te oferecer um add-on.

Este adicional é uma instância do mongoDB na nuvem, através do serviço mLab. A instância de sandbox nos oferece gratuitamente 0.5 GB. É mais do que o suficiente. Ao preencher tudo, basta clicar no botão deploy app.

O Heroku fará todo o processo necessário para subir a aplicação, lembrando que este passo está todo descrito no arquivo Procfile.

Primeiro acesso

Se tudo estiver certo, a aplicação irá subir sem problemas. Ao acessá-la, você cairá na tela de primeiro acesso. Use o seu e-mail de administrador com a senha padrão, admin123.

Com o login efetuado, você será convidado a criar sua primeira página.

E pronto! Você já tem sua aplicação wiki no ar!

Referências