Se trata de una base de datos mnemotécnica de URL, un redirector y un motor de búsqueda.
La función principal de esta herramienta es redirigir HTTP a los usuarios directamente a una URL asociada con la palabra clave a la que estaban accediendo. Las URL son difíciles de recordar y escribir, pero son más fáciles de usar si se nombran de manera concisa. Los enlaces reciben nombres o etiquetas y se colocan en listas identificadas por palabras clave . Estas palabras clave son cadenas intuitivas y bien conocidas que crean los usuarios y que describen la lista o el enlace que se busca.
La función secundaria es proporcionar un lugar para seleccionar listas de los enlaces más actualizados a un tema determinado.
Si los usuarios desean buscar información sobre Marte, pueden escribir go2 mars
en la URL/barra de búsqueda de su navegador. Esto podría redirigir directamente a un enlace o una lista de enlaces sobre el planeta. Imagine que hay varios enlaces o artículos sobre Marte en esta lista. ¿Cómo podría un usuario obtener más información sobre la luna Fobos, accediendo directamente a ella en una sola búsqueda? Los curadores de la lista podrían etiquetar uno de los enlaces de la lista con phobos
. Ahora los usuarios pueden escribir go2 mars/phobos
en su URL/barra de búsqueda. Ese enlace ahora se ha convertido en la redirección canónica para cualquiera que busque más información sobre esta luna de Marte.
El redirector go2 sigue un modelo similar a Wikipedia de adición, eliminación y conservación de datos impulsada por la comunidad. Si los usuarios se ponen de acuerdo colectivamente sobre lo que significan las palabras clave y, a su vez, acuerdan cuál debería ser la lista para esa palabra clave, el resultado es la comprensión más precisa del grupo de estas palabras clave mnemotécnicas en un momento dado. Cuantas más personas utilicen el redirector, más editores tendrá para mantener las cosas actualizadas.
Para configurar la aplicación, es necesario crear una configuración inicial y una base de datos de enlaces vacía. Para hacer esto, ejecute el script de instalación desde la línea de comando.
./install.sh
Esto colocará un archivo godb.json
en el disco en el directorio raíz del proyecto, luego escribirá un archivo de configuración genérico go2config.json
en el mismo directorio. La configuración predeterminada en el archivo de configuración es suficiente para comenzar, pero revísela para comprender las configuraciones disponibles.
El redirector debe compilarse como segundo y último paso de la configuración. Una simple go build
en la raíz del proyecto debería producir un ejecutable. Ejecute ese ejecutable sin argumentos para ver iniciarse el redirector, escuchando en un puerto efímero.
Aquí se incluye un Dockerfile
de varias etapas para facilitar el proceso de creación del binario y proporcionar un contenedor ejecutable. El contenedor de construcción inicial es enorme y se desecha en favor de un contenedor de tiempo de ejecución alpino más pequeño basado en Linux. Hay tres elementos para construir y ejecutar el contenedor: construir, conservar la base de datos de enlaces y ejecutar el contenedor.
La construcción del contenedor se puede realizar con: docker build -t go2redirector .
Si desea inspeccionar el contenedor de compilación para comprobar/depurar el entorno de compilación, puede acceder a él apuntando al contenedor de compilación por su nombre.
docker build --target builder -t go2build .
Puede crear un volumen localmente para espacio persistente fuera del contenedor para godb.json
. Esto permitirá que su contenedor utilice el mismo diosb cada vez que se ejecute. Omita este procedimiento si no desea guardar la base de datos entre ejecuciones del contenedor.
docker volume create go2
docker volume inspect go2
Ahora ejecute el contenedor, usando el volumen. Esto ejecutará el contenedor en modo demonio y lo eliminará cuando se detenga.
docker run --rm -p 8080:8080 -d -v go2:/home/gouser/data go2redirector
Tenga en cuenta que no debe utilizar un volumen como este. Un montaje vinculado a otro directorio existente también funcionaría.
El redirector escuchará 0.0.0.0:8080
dentro del contenedor, a diferencia del valor predeterminado 127.0.0.1
de go2config.json (el valor predeterminado).
Para ver los registros del contenedor, todos se redirigen a la salida estándar, por lo que puede hacer un docker logs <name of running container>
El go2redirector debería estar ejecutándose en localhost:8080
ahora. Puede hacerlo directamente o, para facilitar las cosas, puede configurar su navegador con una nueva palabra clave de búsqueda como go2
.
Cada navegador tiene un procedimiento de configuración ligeramente diferente para habilitar los motores de búsqueda de palabras clave.
localhost:8080
(o cualquier URL en la que ejecute su redirector) en Firefox.go2
go2
.http://localhost:8080/?keyword=%s
Ahora puede utilizar su navegador para acceder a go2redirector como si fuera un motor de búsqueda. Establezca la palabra clave en go2
y use el cuadro de búsqueda.
go2 wiki/es
Si su navegador redirige a la versión en español de Wikipedia, ya está todo listo.
.
prefijo a cualquier palabra clave./
en la entrada del usuario de una cadena de redireccionamiento. Por ejemplo, go2 planets/mars/weather
tendría los campos "planetas" (la palabra clave), "marte" (la etiqueta) y "weather" como parámetro.La curación de una lista de enlaces comienza con la selección de una palabra clave intuitiva. Este es el nombre por el que la gente recordará esta lista de enlaces. Piense en la palabra clave y en su generalidad. ¿Se aplica a otras listas potenciales? Si es así, quizás piense en un nombre de palabra clave más específico o combine las dos listas.
Una etiqueta es un nombre para un enlace dentro de una lista de enlaces. La etiqueta es el segundo campo (opcional) que un usuario escribe en una redirección de go2. Si tiene una lista de lunas de Marte, puede etiquetar una con "phobos" y otra con "deimos", lo que resultará en una redirección como go2 mars/phobos
para ir directamente a cualquier enlace que describa esa luna. Las etiquetas son opcionales. Si el usuario especifica un segundo campo, el redirector intenta localizar una etiqueta en la lista con ese nombre. Si no encuentra uno, el segundo campo se trata como un parámetro de sustitución del enlace.
Si se agrega un enlace con una URL para la que ya tenemos un enlace bajo alguna otra palabra clave, le permitimos crear un enlace completamente nuevo porque es posible que tenga otro título y diferentes asociaciones de palabras clave. Si intenta agregar un enlace duplicado, le mostrará otras palabras clave que ya utilizan el enlace cuando mire la página de puntos.
El campo de entrada en la parte superior izquierda de la página de índice es el punto de entrada principal para la aplicación. Este es el campo en el que los usuarios pueden escribir combinaciones de palabras clave/etiquetas/parámetros para obtener una redirección o crear una nueva.
Los enlaces pueden tener una fecha establecida que especifica la vida útil del enlace en la base de datos de enlaces. De forma predeterminada, los enlaces nunca caducan. Los usuarios pueden ingresar varias duraciones de enlaces. La duración más singular de todos los enlaces seleccionados es "quemar después de leer", que es exactamente lo que parece. La aplicación destruirá el enlace después de que una sola persona lo haya utilizado como redireccionamiento. Esto es útil para enlaces que solo usarás o compartirás una vez. Debe seleccionar una vida útil razonable para un enlace si no va a ser eterno. Esta es la forma pasiva de curación en la aplicación, eliminando enlaces a medida que se acercan sus fechas de vencimiento.
Para forzar el acceso a la página de lista de una palabra clave (independientemente del comportamiento de la lista), simplemente anteponga esa palabra clave con un punto o agregue una barra diagonal como sufijo. Al hacerlo, se mostrará la página de lista donde los enlaces se pueden cambiar o etiquetar.
Los enlaces de una lista pueden tener un {1}
colocado en cualquier lugar de la URL para que sirva como cadena de sustitución para un único parámetro posicional proporcionado por el usuario. En este momento, solo admitimos un parámetro, pero esto podría cambiar si hay una razón de peso para dos o más. En la versión anterior del redirector, este tipo de enlaces con sustituciones se llamaban enlaces "especiales" y usaban {*}
como cadena de sustitución. Por ejemplo, la palabra clave go2 planets
puede tener algunos enlaces etiquetados con varios nombres de planetas. Cada URL de enlace puede contener la cadena de sustitución {1}.
Para la entrada del usuario de go2 planets/mars/weather
go2redirector ubicaría la palabra clave planets
, buscaría el enlace etiquetado con mars
, obtendría su URL www.nasa.gov/planets/mars/{1}.php
y realizaría una sustitución por www.nasa.gov/planets/mars/weather.php
. Finalmente, el usuario sería redirigido a esa URL.
Necesito toda la ayuda que pueda conseguir para que mi golang de nivel principiante se vea mejor. Hay nuevas funciones que queremos agregar y no hay suficientes personas para hacerlo. Si desea contribuir, simplemente bifurque el repositorio y envíe un PR. Presente cualquier solicitud de mejora o error en el rastreador de problemas aquí en el proyecto go2redirector.
Consulte CONTRIBUTING.md
para obtener más información.
El redirector f5go original fue diseñado por Saul Pwanson, con la ayuda de Bryce Bockman y Treebird(tm).