CodexDrake es un motor de búsqueda de código abierto, que permite navegar en Internet de forma segura y anónima, encontrando diversidad de resultados basados en diferentes categorías como: Imágenes, Noticias, Sitios de Internet, Libros, entre otras...
El software está escrito principalmente en JavaScript, utilizando NodeJS como backend y Vite + React en el frontend. Dentro del backend se utiliza la biblioteca "cdrake-se" publicada por NPM, que en términos simples permite incrustar el motor de búsqueda que hace posible este software en cualquier aplicación que tengas.
Vaya al paquete "cdrake-se" en NPM.
Dentro de la biblioteca se utilizan una gran variedad de buscadores para poder solucionar las solicitudes realizadas, entre ellos: Google, Bing, Yahoo, Ask, Qwant, Youtube, entre otros… Además, permite encontrar sugerencias. según un término entregado y realizar búsquedas en Wikipedia.
Considere que 'cdrake-se' no está exento de un error HTTP 429 (Demasiadas solicitudes), que puede ocurrir si se realiza una gran cantidad de solicitudes en un período de tiempo relativamente corto. Sin embargo, cuando se utiliza la búsqueda automática (puede obtener más información sobre esto en la documentación de la biblioteca), se utiliza "Promise.any", que se traduce como "De todas las solicitudes realizadas a los motores de búsqueda para resolver la consulta, la que que termine primero será el que será devuelto." Es decir, teniendo en cuenta la variedad de buscadores que integra la biblioteca, si se produce algún error de cualquier tipo, incluido el HTTP 429, no será un problema ya que habrá otros motores que sí devuelvan respuesta. El concepto antes mencionado es lo que hace que el buscador sea rápido y eficiente en gran medida.
En cuanto al nombre “CodexDrake”, tiene su significado de atrás, la interpretación del nombre es “Codicia de Resultados”, Codex del latín es avaricia y Drake interpretándolo sabiendo que es una ecuación que permite encontrar el número de civilizaciones en cierta galaxia. (Creo que no estoy loco).
El software está diseñado para que pueda autohospedarse en cualquier servidor que le prepares, tiene soporte para que lo despliegues con Docker o realices una instalación manual, es decir, instales los módulos npm tanto del cliente como del servidor y luego inicie la ejecución de npm... ya sabes.
Como se menciona en la biblioteca que permite el funcionamiento de este software 'cdrake-se', los resultados de las búsquedas dependerán de la zona geográfica donde se encuentre el servidor. En el momento en que escribo esto, tengo la instancia implementada en un servidor en Alemania. Ten en cuenta que si implementas el software localmente en tu computadora y, por ejemplo, estás en un país diferente como Chile, los resultados serán diferentes. Creo que esto está relacionado con los motores de búsqueda correspondientes y la forma en que funciona el servicio backend. Supongo que toman la IP, extraen el país y devuelven una respuesta acorde al contexto del país.
Seguro y amigable con tus datos
Interfaz de usuario web responsiva
Sin tarifas ni suscripciones (sin API pagas)
Rica experiencia de usuario
Arquitectura fácil de usar
ridículamente rápido
Modo oscuro y modo claro.
Soporte para ventana acoplable
Hay dos formas de implementar su instancia, manualmente o mediante Docker. Ambos son relativamente simples, a continuación los implementaremos manualmente, solo un par de comandos en la terminal serán suficientes.
# Clonando el repositoriogit clone https://github.com/codewithrodi/CodexDrake/# Accediendo a la carpeta generadacd CodexDrake# Inicializando la configuración del servidor y del cliente usando el archivo 'Setup.py' que se explicará más adelantepython3 Setup.py# Ahora debes espere a que 'Setup.py' haga lo suyo, intente aceptar todo lo que propone.# Iniciar Web UIcd Client && npm run dev# Iniciar Backend Servercd Server && inicio de ejecución de npm
# Clonando el repositoriogit clone https://github.com/codewithrodi/CodexDrake/# Accediendo a la carpeta generadacd CodexDrake# Ejecutando dockerdocker compose up -d
Los archivos de entorno ".env" no tienen mucha ciencia detrás, dentro de la carpeta "Server/" se encuentra el archivo ".env" el cual contiene definiciones utilizadas al ejecutarlo, algunas como los certificados SSL o la dirección en la red del servidor. allí están declarados. En esta sección me centraré en mostrarte lo que realmente importa, y es vincular la aplicación cliente con el servidor. El archivo de entorno del servidor es bastante descriptivo en cuanto a nomenclatura de variables, además de tener comentarios, a pesar de que no se debe dar nada por sentado, no es necesario que te expliques ese archivo, lo entenderás por tu cuenta.
Dentro de la carpeta "Cliente/", donde se encuentra la aplicación Vite + React, hay un archivo llamado ".env", donde debes prestar atención a la variable "VITE_CDRAKE_SERVER_ENDPOINT" cuyo valor debe ser el punto final del servidor backend de tu instancia, de forma predeterminada es http://0.0.0.0:8000, pero puede ser, por ejemplo, http://backend.mycodexdrakeinstance.com.
# <Cliente/.env> VITE_CDRAKE_REPOSITORY = https://github.com/codewithrodi/CodexDrake/VITE_CDRAKE_VERSION = Estable v1.0.3VITE_CDRAKE_SERVER_ENDPOINT = http://0.0.0.0:8000/api/v1
Considere agregar /api/v1 a su punto final.
Dentro de la carpeta que se ha generado al clonar el repositorio, hay un archivo llamado “Setup.py”, el cual te permite ejecutar varias instrucciones que te ahorrarán un poco de tiempo, a continuación se explicarán los argumentos que puede recibir este archivo. A usted.
# Dentro de la carpeta generada al clonar el repositorio.# (( /CodexDrake/ )# Instalar automáticamente los "node_modules" de las aplicaciones de servidor y cliente.python3 Setup.py# Eliminar los "node_modules" de la aplicación de cliente y servidor.python3 Setup .py DeleteModules# Elimina solo los "node_modules" de la aplicación cliente.python3 Setup.py DeleteClientModules# Elimina solo los "node_modules" de la aplicación del servidor.python3 Setup.py DeleteServerModules# Elimina todo el código fuente de la aplicación del servidor.python3 Setup.py DeleteServerSource# Elimina todo el código fuente de la aplicación cliente.python3 Setup.py DeleteClientSource
La licencia MIT (Licencia del Instituto de Tecnología de Massachusetts) es una licencia de software de código abierto permisiva. Permite a los desarrolladores usar, modificar, distribuir y sublicenciar el software sin restricciones materiales. La licencia MIT se caracteriza por su sencillez y no impone muchas restricciones legales a los usuarios.
Rompe y aprende del software, extrae piezas de él y construye mejores cosas. ¡Buena suerte!
Sitio web
MNP
codepen
GitHub