Este é um banco de dados de URL mnemônico, redirecionador e mecanismo de pesquisa.
A função principal desta ferramenta é redirecionar HTTP os usuários diretamente para um URL associado à palavra-chave que eles estavam acessando. URLs são difíceis de lembrar e digitar, mas são mais fáceis de usar se nomeados de forma concisa. Os links são nomeados ou marcados e colocados em listas identificadas por palavras-chave . Essas palavras-chave são sequências bem conhecidas e intuitivas que os usuários criam e que descrevem a lista ou link que está sendo procurado.
A função secundária é fornecer um local para selecionar listas dos links mais atualizados para um determinado assunto.
Se os usuários quiserem pesquisar informações sobre Marte, eles podem digitar go2 mars
na URL/barra de pesquisa do navegador. Isso poderia redirecionar diretamente para um link ou lista de links sobre o planeta. Imagine que existem vários links ou artigos sobre Marte nesta lista. Como um usuário poderia obter mais informações sobre a lua Fobos, acessando-a diretamente em uma pesquisa? Os curadores da lista poderiam marcar um dos links da lista com phobos
. Agora os usuários podem digitar go2 mars/phobos
em sua URL/barra de pesquisa. Esse link agora se tornou o redirecionamento canônico para quem procura mais informações sobre esta lua de Marte.
O redirecionador go2 segue um modelo semelhante ao da Wikipedia de adição, exclusão e curadoria de dados orientada pela comunidade. Se os usuários concordarem coletivamente sobre o significado das palavras-chave e, por sua vez, concordarem sobre qual deveria ser a lista para essa palavra-chave, o resultado será a compreensão mais precisa do grupo dessas palavras-chave mnemônicas em um determinado momento. Quanto mais pessoas usarem o redirecionador, mais editores você terá para manter as coisas atualizadas.
Para configurar o aplicativo, é necessário criar uma configuração inicial e um banco de dados de links vazio. Para fazer isso, execute o script de instalação na linha de comando.
./install.sh
Isso colocará um arquivo godb.json
no disco no diretório raiz do projeto e, em seguida, gravará um arquivo de configuração genérico go2config.json
no mesmo diretório. As configurações padrão no arquivo de configuração são suficientes para começar, mas dê uma olhada para entender as configurações disponíveis.
O redirecionador precisa ser compilado como a segunda e última etapa da configuração. Um simples go build
na raiz do projeto deve gerar um executável. Execute esse executável sem argumentos para ver o redirecionador iniciar, escutando em uma porta efêmera.
Um Dockerfile
de vários estágios está incluído aqui para facilitar o processo de construção do binário e fornecer um contêiner executável. O contêiner de construção inicial é enorme e é descartado em favor de um contêiner de tempo de execução alpino baseado em Linux menor. Existem três elementos para construir e executar o contêiner: construir, persistir o banco de dados de links e executar o contêiner.
A construção do contêiner pode ser feita com: docker build -t go2redirector .
Se desejar inspecionar o próprio contêiner de compilação para verificar/depurar o ambiente de compilação, você pode acessá-lo direcionando o contêiner de compilação pelo nome.
docker build --target builder -t go2build .
Você pode criar um volume localmente para espaço persistente fora do contêiner para godb.json
. Isso permitirá que seu contêiner use o mesmo godb sempre que for executado. Deixe este procedimento de fora se não quiser salvar o banco de dados entre as execuções do contêiner.
docker volume create go2
docker volume inspect go2
Agora execute o contêiner, usando o volume. Isso executará o contêiner no modo daemon e o removerá quando ele parar.
docker run --rm -p 8080:8080 -d -v go2:/home/gouser/data go2redirector
Observe que você não precisa usar um volume como este. Uma montagem vinculada a outro diretório existente também funcionaria.
O redirecionador estará escutando 0.0.0.0:8080
dentro do contêiner, em oposição ao padrão 127.0.0.1
de go2config.json (o padrão).
Para ver os logs do contêiner, todos eles são redirecionados para stdout, então você pode fazer um docker logs <name of running container>
O go2redirector deve estar rodando em localhost:8080
agora. Você pode fazer isso diretamente ou, para facilitar as coisas, pode configurar seu navegador com uma nova palavra-chave de pesquisa como go2
.
Cada navegador possui um procedimento de configuração ligeiramente diferente para ativar mecanismos de pesquisa por palavras-chave.
localhost:8080
(ou qualquer URL em que você execute seu redirecionador) no Firefox.go2
go2
.http://localhost:8080/?keyword=%s
Agora seu navegador pode ser usado para acessar o go2redirector como um mecanismo de busca. Defina a palavra-chave como go2
e use a caixa de pesquisa
go2 wiki/es
Se o seu navegador foi redirecionado para a versão em espanhol da Wikipedia, está tudo pronto.
.
prefixo para qualquer palavra-chave./
na entrada do usuário de uma string de redirecionamento. Por exemplo, go2 planets/mars/weather
teria os campos "planets" (a palavra-chave), "mars" (a tag) e "weather" o parâmetro.A curadoria de uma lista de links começa com a seleção de uma palavra-chave intuitiva. Este é o nome pelo qual as pessoas se lembrarão desta lista de links. Pense na palavra-chave e em quão geral ela é. Isso se aplica a outras listas potenciais? Nesse caso, talvez crie um nome de palavra-chave mais específico ou combine as duas listas.
Uma tag é o nome de um link em uma lista de links. A tag é o segundo campo (opcional) que um usuário digita em um redirecionamento go2. Se você tiver uma lista de luas de Marte, poderá marcar uma com "phobos" e outra com "deimos", resultando em um redirecionamento como go2 mars/phobos
para ir direto para qualquer link que descreva aquela lua. As tags são opcionais. Se um segundo campo for especificado pelo usuário, o redirecionador tentará localizar uma tag na lista com esse nome. Se não conseguir encontrar um, o segundo campo é tratado como um parâmetro de substituição para o link.
Se um link for adicionado com um URL para o qual já temos um link com alguma outra palavra-chave, permitimos que você crie um link completamente novo porque você pode ter outro título e diferentes associações de palavras-chave. Se você tentar adicionar um link duplicado, ele mostrará outras palavras-chave que já usam o link ao olhar a página ponto.
O campo de entrada no canto superior esquerdo da página de índice é o ponto de entrada principal do aplicativo. Este é o campo no qual os usuários podem digitar combinações de palavra-chave/tag/parâmetro para obter um redirecionamento ou criar novos.
Os links podem ter uma data definida que especifica o tempo de vida do link no banco de dados de links. Por padrão, os links nunca expiram. Os usuários podem inserir vários tempos de vida do link. O mais exclusivo de todos os tempos de vida dos links selecionados é “queimar após a leitura”, que é exatamente o que parece. O aplicativo destruirá o link depois que uma única pessoa o usar como redirecionamento. Isso é útil para links que você usará ou compartilhará apenas uma vez. Você deve selecionar uma vida útil razoável para um link se ele não for eterno. Essa é a forma passiva de curadoria do aplicativo, removendo links conforme suas datas de validade vão chegando.
Para forçar o acesso à página da lista de uma palavra-chave (independentemente do comportamento da lista), basta prefixar essa palavra-chave com um ponto ou sufocá-la com uma barra. Fazer isso renderizará a página da lista onde os links podem ser alterados ou marcados.
Os links em uma lista podem ter um {1}
colocado em qualquer lugar da URL para servir como uma string de substituição para um único parâmetro posicional fornecido pelo usuário. No momento, oferecemos suporte apenas a um parâmetro, mas isso poderá mudar se houver uma razão convincente para dois ou mais. Na versão anterior do redirecionador, esses tipos de links com substituições eram chamados de links "especiais" e usavam {*}
como string de substituição. Por exemplo, a palavra-chave go2 planets
pode ter alguns links marcados com vários nomes de planetas. Cada URL de link pode conter a sequência de substituição {1}.
Para a entrada do usuário go2 planets/mars/weather
o go2redirector localizaria a palavra-chave planets
, procuraria o link marcado com mars
, obteria seu URL de www.nasa.gov/planets/mars/{1}.php
e executaria uma substituição para www.nasa.gov/planets/mars/weather.php
. Finalmente, o usuário seria redirecionado para esse URL.
Preciso de toda a ajuda possível para deixar meu golang de nível novato mais bonito. Há novos recursos que queremos adicionar e não há pessoas suficientes para fazer isso. Se você quiser contribuir, basta fazer um fork do repositório e enviar um PR! Registre quaisquer solicitações de melhorias ou bugs no rastreador de problemas aqui no projeto go2redirector.
Consulte CONTRIBUTING.md
para obter mais informações.
O redirecionador f5go original foi projetado por Saul Pwanson, com assistência de Bryce Bockman e Treebird(tm).