CodexDrake é um motor de busca de código aberto, que permite navegar na Internet de forma segura e anônima, encontrando uma diversidade de resultados baseados em diferentes categorias como: Imagens, Notícias, Sites da Internet, Livros, entre outros...
O software é escrito principalmente em JavaScript, usando NodeJS como backend e Vite + React no frontend. Dentro do backend é utilizada a biblioteca "cdrake-se" publicada pela NPM, que em termos simples permite incorporar o motor de busca que torna este software possível a qualquer aplicação que tenha.
Vá para o pacote “cdrake-se” no NPM.
Dentro da biblioteca são utilizados os mais diversos motores de busca para poder resolver os pedidos efectuados, entre eles: Google, Bing, Yahoo, Ask, Qwant, Youtube, entre outros... Além disso, permite encontrar sugestões de acordo com um termo entregue e realizar pesquisas na Wikipédia.
Considere que 'cdrake-se' não está isento de um erro HTTP 429 (Too Many Requests), que pode ser causado se um grande número de solicitações for feito em um período de tempo relativamente curto. Porém, ao utilizar a busca automática (você pode saber mais sobre isso na documentação da biblioteca), utiliza-se "Promise.any", que se traduz em algo como "De todas as solicitações feitas aos motores de busca para resolver a consulta, aquela que terminar primeiro será o que será retornado." Ou seja, levando em consideração a variedade de motores de busca que integram a biblioteca, caso ocorra algum erro de qualquer espécie, inclusive HTTP 429, não será problema, pois haverá outros motores que retornarão uma resposta. O referido conceito é o que torna o motor de busca rápido e eficiente em grande medida.
Quanto ao nome "CodexDrake", tem seu significado por trás, a interpretação do nome é "Ganância de Resultados", Codex do latim é ganância e Drake interpretando sabendo que é uma equação que permite encontrar o número de civilizações em uma certa galáxia. (acho que não sou louco).
O software é projetado para que possa ser auto-hospedado em qualquer servidor que você preparar para ele, tem suporte para você implantar com Docker ou realizar instalação manual, ou seja, instalar os módulos npm tanto do cliente quanto do servidor e então dê um início de execução npm ... você sabe.
Conforme mencionado na biblioteca que permite o funcionamento deste software 'cdrake-se', os resultados das pesquisas dependerão da área geográfica onde o servidor está localizado. No momento em que escrevo isto, a instância está implantada em um servidor na Alemanha. Tenha em mente que se você implantar o software localmente em seu computador e, por exemplo, estiver em um país diferente como o Chile, os resultados serão diferentes. Acho que isso está relacionado aos mecanismos de busca correspondentes e à forma como funciona o serviço backend, acho que eles pegam o IP, extraem o país e retornam uma resposta de acordo com o contexto do país.
Seguro e amigável com seus dados
UI Web responsiva
Sem taxas ou assinaturas (sem APIs pagas)
Experiência de usuário rica
Arquitetura fácil de usar
Ridiculamente rápido
Modo escuro e modo claro
Suporte Docker
Existem duas maneiras de implantar sua instância: manualmente ou por meio do Docker. Ambos são relativamente simples, a seguir iremos implantar manualmente, apenas alguns comandos no terminal serão suficientes.
# Clonando o repositóriogit clone https://github.com/codewithrodi/CodexDrake/# Acessando a pasta geradacd CodexDrake# Inicializando a configuração do servidor e do cliente usando o arquivo 'Setup.py' que será explicado posteriormentepython3 Setup.py# Agora você deve espere que 'Setup.py' faça seu trabalho, tente aceitar tudo o que ele propõe.# Iniciar Web UIcd Client && npm run dev# Iniciar Backend Servercd Server && início da execução npm
# Clonando o repositóriogit clone https://github.com/codewithrodi/CodexDrake/# Acessando a pasta geradacd CodexDrake# Executando dockerdocker compose up -d
Os arquivos do ambiente ".env" não possuem muita ciência por trás deles, dentro da pasta "Server/" existe o arquivo ".env" que contém definições utilizadas na hora de executá-lo, algumas como certificados SSL ou o endereço na rede do servidor eles são declarados lá. Nesta seção vou me concentrar em mostrar o que realmente importa: vincular a aplicação cliente ao servidor. O arquivo de ambiente do servidor é bastante descritivo em termos de nomenclatura de variáveis, além de conter comentários, apesar de nada ser dado como certo, não há necessidade de explicar esse arquivo para você, você entenderá por si mesmo.
Dentro da pasta "Client/", onde está localizada a aplicação Vite + React, existe um arquivo chamado ".env", onde você deve prestar atenção na variável "VITE_CDRAKE_SERVER_ENDPOINT" cujo valor deve ser o endpoint do servidor backend do seu instance , por padrão é http://0.0.0.0:8000, mas pode ser, por exemplo, http://backend.mycodexdrakeinstance.com.
# <Cliente/.env> VITE_CDRAKE_REPOSITORY = https://github.com/codewithrodi/CodexDrake/VITE_CDRAKE_VERSION = Estável v1.0.3VITE_CDRAKE_SERVER_ENDPOINT = http://0.0.0.0:8000/api/v1
Considere adicionar /api/v1 ao seu endpoint.
Dentro da pasta que foi gerada quando o repositório foi clonado, existe um arquivo chamado "Setup.py", que permite executar diversas instruções que vão te poupar um pouco de tempo, a seguir serão explicados os argumentos que este arquivo pode receber para você.
# Dentro da pasta gerada ao clonar o repositório.# (( /CodexDrake/ )# Instale automaticamente os "node_modules" do servidor e aplicativos cliente.python3 Setup.py# Remova os "node_modules" para o aplicativo cliente e servidor.python3 Setup .py DeleteModules# Remova apenas os "node_modules" do aplicativo cliente.python3 Setup.py DeleteClientModules# Remova apenas os "node_modules" do servidor application.python3 Setup.py DeleteServerModules# Remova todo o código-fonte do servidor application.python3 Setup.py DeleteServerSource# Remova todo o código-fonte do cliente application.python3 Setup.py DeleteClientSource
A licença MIT (Massachusetts Institute of Technology License) é uma licença permissiva de software de código aberto. Ele permite que os desenvolvedores usem, modifiquem, distribuam e sublicenciem o software sem restrições materiais. A licença MIT caracteriza-se pela sua simplicidade e não impõe muitas restrições legais aos usuários.
Quebre e aprenda com o software, extraia pedaços dele e construa coisas melhores. Boa sorte!
Site
NPM
Codepen
GitHub