엘라스틱서치나 알고리아와 같은 검색 엔진이며 무려 오픈소스입니다.
typesense 서버를 구동하는 방법에는 세 가지가 있습니다.
이중에서 윈도우에서 작동하며 추가적인 비용이 발생하지 않는 도커를 이용하는 방법을 채택했습니다.
그런데 문서에 생략된 부분과 예기치 못한 오류들로 꽤 난항을 겪어서 이 해결법들에 대해 공유하고자 글을 썼습니다.
WSL은 리눅스용 윈도우 하위 시스템입니다.
윈도우에서 리눅스를 사용할 수 있게 해줍니다.
docker가 이를 이용해 윈도우 속의 리눅스(?!)에서 typesense 서버를 실행하기 때문에 필요합니다.
좋은 글이 있어서 대체합니다!
1번부터 4번까지 따라하시면 됩니다.
https://suzxc2468.tistory.com/211
WSL와 docker가 원활하게 동작하려면 WSL 2 버전이 필요합니다.
그런데 저만 그런진 모르겠지만 WSL에 리눅스를 설치하고 버전을 변경하려고 하면 변경이 안됩니다.
그래서 리눅스를 설치하기 전에 처음부터 버전 2로 설치될 수 있도록 사전에 설정해줍니다.
명령 프롬프트에 다음을 입력합니다.
wsl --set-default-version 2
마이크로 소프트 스토어에서 원하는 리눅스를 검색해 설치하고 실행해서 이름, 비밀번호 등을 설정하면 됩니다.
저는 Ubuntu-20.04.5 LTS를 사용했습니다.
정상적으로 설치가 되었다면 윈도우 키를 누르고 WSL을 검색해서 실행하면 리눅스 쉘이 실행됩니다.
docker for desktop을 설치해줍니다.
아마 설정되어 있을텐데 혹시 모르니 확인해줍니다.
Settings > Resources > WSL Integration > Enable integration with my default WSL distro
체크 박스가 채워져 있어야 합니다.
명령 프롬프트에 다음을 입력합니다.
wsl docker --version
# Docker version 20.10.21, build baeda1f
WSL을 실행하고 다음을 입력합니다.
docker pull typesense/typesense:0.23.1
WSL을 실행하고 다음을 입력합니다.
# xyz 자리에 원하는 임의의 키 값 입력
export TYPESENSE_API_KEY=xyz
mkdir $(pwd)/typesense-data
docker run -p 8108:8108 -v$(pwd)/typesense-data:/data typesense/typesense:0.23.1 --data-dir /data --api-key=$TYPESENSE_API_KEY --enable-cors
WSL을 실행하고 다음을 입력하면 정상적으로 실행되어 있는지 확인할 수 있습니다.
curl http://localhost:8108/health
# response: {"ok":true}
서버를 구동했으면 원하는 API 클라이언트를 이용해 검색 엔진을 사용하면 됩니다.
공식 API 클라이언트는 javascript, php, python, ruby가 있으며
커뮤니티 기여 API 클라이언트는 Go, Dart, C# 등이 있습니다.
아쉽게도 대시보드 등의 GUI는 타입센스 클라우드 서비스에서만 지원하는 것 같습니다.
그래서 오픈소스 타입센스 대시보드를 찾았습니다!
끝!
감사합니다~