이것은 니모닉 URL 데이터베이스, 리디렉터 및 검색 엔진입니다.
이 도구의 주요 기능은 사용자가 액세스하고 있는 키워드와 관련된 URL로 직접 HTTP 리디렉션을 수행하는 것입니다. URL은 기억하고 입력하기 어렵지만 이름을 간결하게 지정하면 사용하기가 더 쉽습니다. 링크에는 이름이 지정되거나 태그가 지정 되며 키워드 로 식별되는 목록에 배치됩니다. 이러한 키워드는 사용자가 찾고 있는 목록이나 링크를 설명하는 잘 알려진 직관적인 문자열입니다.
두 번째 기능은 특정 주제에 대한 최신 링크 목록을 선별할 수 있는 장소를 제공하는 것입니다.
사용자가 화성에 대한 정보를 검색하려면 브라우저의 URL/검색 창에 go2 mars
입력하면 됩니다. 이것은 행성에 관한 링크나 링크 목록으로 직접 리디렉션될 수 있습니다. 이 목록에 화성에 관한 여러 링크나 기사가 있다고 상상해 보세요. 사용자가 한 번의 검색으로 포보스 달에 대한 자세한 정보를 어떻게 직접 얻을 수 있습니까? 목록 큐레이터는 목록의 링크 중 하나에 phobos
태그를 지정할 수 있습니다. 이제 사용자는 URL/검색 창에 go2 mars/phobos
입력할 수 있습니다. 해당 링크는 이제 이 화성의 달에 대한 더 많은 정보를 찾는 모든 사람을 위한 표준 리디렉션이 되었습니다.
go2 리디렉터는 Wikipedia와 유사한 커뮤니티 기반 데이터 추가, 삭제 및 큐레이션 모델을 따릅니다. 사용자가 키워드의 의미에 대해 집단적으로 동의하고 해당 키워드의 목록이 무엇이어야 하는지에 대해 동의한다면, 그 결과 그룹은 특정 순간에 이러한 니모닉 키워드를 가장 정확하게 이해하게 됩니다. 리디렉터를 사용하는 사람이 많을수록 최신 상태로 유지하는 편집자가 많아집니다.
애플리케이션을 설정하려면 초기 구성과 빈 링크 데이터베이스를 생성해야 합니다. 이렇게 하려면 명령줄에서 설치 스크립트를 실행하세요.
./install.sh
그러면 프로젝트 루트 디렉터리의 디스크에 godb.json
파일이 배치되고, 동일한 디렉터리에 일반 구성 파일인 go2config.json
작성됩니다. 구성 파일의 기본 설정만으로도 시작하기에 충분하지만, 사용 가능한 설정을 이해하려면 자세히 살펴보세요.
리디렉터는 설치의 두 번째이자 마지막 단계로 컴파일되어야 합니다. 프로젝트 루트에서 간단한 go build
수행하면 실행 파일이 생성됩니다. 인수 없이 해당 실행 파일을 실행하면 리디렉터가 시작되고 임시 포트에서 수신 대기하는 것을 볼 수 있습니다.
바이너리 빌드 프로세스를 쉽게 하고 실행 가능한 컨테이너를 제공하기 위해 다단계 Dockerfile
여기에 포함되어 있습니다. 초기 빌드 컨테이너는 거대하며 더 작은 Alpine Linux 기반 런타임 컨테이너를 위해 버려졌습니다. 컨테이너를 구축하고 실행하는 데는 세 가지 요소, 즉 링크 데이터베이스 구축, 유지 및 컨테이너 실행이 있습니다.
컨테이너 빌드는 docker build -t go2redirector .
빌드 환경을 확인/디버깅하기 위해 빌드 컨테이너 자체를 검사하려면 이름으로 빌드 컨테이너를 대상으로 지정하여 액세스할 수 있습니다.
docker build --target builder -t go2build .
godb.json
에 대한 컨테이너 외부 영구 공간을 위해 로컬로 볼륨을 생성할 수 있습니다. 이렇게 하면 컨테이너가 실행될 때마다 동일한 godb를 사용할 수 있습니다. 컨테이너 실행 사이에 데이터베이스를 저장하지 않으려면 이 절차를 생략하세요.
docker volume create go2
사용하여 로컬 스토리지 볼륨 생성docker volume inspect go2
이제 볼륨을 사용하여 컨테이너를 실행합니다. 그러면 컨테이너가 데몬 모드로 실행되고 중지되면 제거됩니다.
docker run --rm -p 8080:8080 -d -v go2:/home/gouser/data go2redirector
이와 같은 볼륨을 사용하지 않는다는 점에 유의하세요. 다른 기존 디렉토리에 대한 바인드 마운트도 작동합니다.
리디렉터는 go2config.json의 기본값(기본값) 127.0.0.1
과 달리 컨테이너 내부의 0.0.0.0:8080
을 수신합니다.
컨테이너의 로그를 보려면 모두 stdout으로 리디렉션되므로 docker logs <name of running container>
수행할 수 있습니다.
go2redirector는 이제 localhost:8080
에서 실행되어야 합니다. 직접 수행할 수도 있고 작업을 더 쉽게 하기 위해 go2
와 같은 새로운 검색 키워드로 브라우저를 구성할 수도 있습니다.
각 브라우저에는 키워드 검색 엔진을 활성화하는 구성 절차가 약간 다릅니다.
localhost:8080
(또는 리디렉터를 실행하는 URL)을 엽니다.go2
라는 키워드를 설정하세요 go2
사용하세요.http://localhost:8080/?keyword=%s
입력합니다. 이제 브라우저를 사용하여 검색 엔진처럼 go2redirector에 액세스할 수 있습니다. 키워드를 go2
로 설정하고 검색창을 이용하세요
go2 wiki/es
브라우저가 Wikipedia의 스페인어 버전으로 리디렉션되면 모든 준비가 완료된 것입니다.
.
키워드 앞에 접두사를 붙입니다./
사이의 요소입니다. 예를 들어 go2 planets/mars/weather
"planets"(키워드), "mars"(태그) 및 "weather" 매개변수 필드가 있습니다.링크 목록 큐레이션은 직관적인 키워드를 선택하는 것부터 시작됩니다. 사람들이 이 링크 목록을 기억하는 이름입니다. 키워드와 그것이 얼마나 일반적인지 생각해 보세요. 다른 잠재적 목록에도 적용됩니까? 그렇다면 좀 더 구체적인 키워드 이름을 찾거나 두 목록을 결합해 보세요.
태그는 링크 목록 내의 링크 이름입니다. 태그는 사용자가 go2 리디렉션에서 입력하는 두 번째(선택 사항) 필드입니다. 화성의 달 목록이 있는 경우 하나는 "phobos"로, 다른 하나는 "deimos"로 태그를 지정하면 go2 mars/phobos
와 같은 리디렉션이 해당 달을 설명하는 모든 링크로 바로 이동하게 됩니다. 태그는 선택사항입니다. 사용자가 두 번째 필드를 지정하면 리디렉터는 목록에서 해당 이름으로 태그를 찾으려고 시도합니다. 하나를 찾지 못하면 두 번째 필드가 링크의 대체 매개변수로 처리됩니다.
다른 키워드 아래에 이미 링크가 있는 URL에 링크가 추가된 경우, 다른 제목과 다른 키워드 연결이 있을 수 있으므로 완전히 새로운 링크를 생성할 수 있습니다. 중복된 링크를 추가하려고 하면 도트페이지를 볼 때 이미 해당 링크를 사용하고 있는 다른 키워드가 표시됩니다.
색인 페이지의 왼쪽 상단에 있는 입력 필드는 애플리케이션의 기본 진입점입니다. 이는 사용자가 키워드/태그/매개변수 콤보를 입력하여 리디렉션을 얻거나 새 리디렉션을 생성할 수 있는 필드입니다.
링크에는 링크 데이터베이스에서 링크의 수명을 지정하는 날짜 세트가 있을 수 있습니다. 기본적으로 링크는 만료되지 않습니다. 사용자는 다양한 링크 수명을 입력할 수 있습니다. 선택된 모든 링크 수명 중 가장 독특한 것은 "읽은 후 굽기"입니다. 이는 말 그대로입니다. 한 사람이 해당 링크를 리디렉션으로 사용한 후에는 응용 프로그램에서 해당 링크를 삭제합니다. 이는 한 번만 사용하거나 공유할 링크에 유용합니다. 링크가 영원하지 않을 경우 링크에 대해 합리적인 수명을 선택해야 합니다. 이는 만료 날짜가 다가올 때 링크를 제거하는 애플리케이션의 수동적 형태의 큐레이션입니다.
(목록 동작에 관계없이) 키워드의 목록 페이지에 강제로 액세스하려면 해당 키워드 앞에 마침표를 붙이거나 접미사에 슬래시를 붙이면 됩니다. 그렇게 하면 링크를 변경하거나 태그를 지정할 수 있는 목록 페이지가 렌더링됩니다.
목록의 링크에는 사용자가 제공한 단일 위치 매개변수에 대한 대체 문자열 역할을 하기 위해 URL의 어느 곳에나 배치된 {1}
있을 수 있습니다. 현재는 하나의 매개변수만 지원하지만 두 개 이상의 매개변수에 대한 타당한 이유가 있는 경우 변경될 수 있습니다. 이전 버전의 리디렉터에서는 대체가 포함된 이러한 유형의 링크를 "특수" 링크라고 불렀으며 {*}
대체 문자열로 사용했습니다. 예를 들어, 키워드 go2 planets
다양한 행성 이름이 태그된 몇 개의 링크가 있을 수 있습니다. 각 링크 URL에는 대체 문자열 {1}이 포함될 수 있습니다.
go2 planets/mars/weather
의 사용자 입력에 대해 go2redirector는 planets
키워드를 찾고 mars
태그가 지정된 링크를 찾아 www.nasa.gov/planets/mars/{1}.php
라는 URL을 가져온 다음 다음을 수행합니다. www.nasa.gov/planets/mars/weather.php
로 대체하세요. 마지막으로 사용자는 해당 URL로 리디렉션됩니다.
초보자 수준의 golang을 더 멋지게 보이도록 만들 수 있는 모든 도움이 필요합니다. 추가하고 싶은 새로운 기능이 있지만 이를 수행할 사람이 충분하지 않습니다. 기여하고 싶다면 저장소를 포크하고 PR을 제출하세요! go2redirector 프로젝트의 이슈 트래커에 대한 개선 요청이나 버그를 제출하세요.
자세한 내용은 CONTRIBUTING.md
참조하세요.
원래 리디렉터 f5go는 Bryce Bockman 및 Treebird(tm)의 도움을 받아 Saul Pwanson이 설계했습니다.