CodexDrake는 오픈 소스 검색 엔진으로, 이미지, 뉴스, 인터넷 사이트, 책 등과 같은 다양한 카테고리를 기반으로 다양한 결과를 찾아 익명으로 안전하게 인터넷을 검색할 수 있습니다.
소프트웨어는 대부분 JavaScript로 작성되었으며 NodeJS를 백엔드로 사용하고 Vite + React를 프런트엔드로 사용합니다. 백엔드 내부에는 NPM에서 게시한 "cdrake-se" 라이브러리가 사용됩니다. 간단히 말해서 이 소프트웨어를 사용하는 모든 애플리케이션에 사용할 수 있는 검색 엔진을 내장할 수 있습니다.
NPM의 "cdrake-se" 패키지로 이동합니다.
라이브러리 내에서는 Google, Bing, Yahoo, Ask, Qwant, Youtube 등 다양한 검색 엔진을 사용하여 요청을 해결합니다. 또한 제안 사항도 찾을 수 있습니다. 전달된 용어에 따라 Wikipedia에서 검색을 수행합니다.
'cdrake-se'는 상대적으로 짧은 시간에 많은 요청이 이루어질 경우 발생할 수 있는 HTTP 429(너무 많은 요청) 오류에서 면제되지 않습니다. 그러나 자동 검색을 사용하는 경우(라이브러리 문서에서 이에 대해 자세히 알아볼 수 있음) "Promise.any"가 사용됩니다. 이는 "질의를 해결하기 위해 검색 엔진에 보낸 모든 요청 중에서 먼저 끝나는 것이 반환될 것입니다." 즉, 라이브러리를 통합하는 다양한 검색 엔진을 고려하면 HTTP 429를 포함하여 어떤 종류의 오류가 발생하더라도 응답을 반환하는 다른 엔진이 있기 때문에 문제가 되지 않습니다. 앞서 언급한 개념은 검색 엔진을 대부분 빠르고 효율적으로 만드는 것입니다.
"CodexDrake"라는 이름은 뒤에 나오는 의미를 가지고 있으며, 이름의 해석은 "Greed of Results"이고 라틴어의 Codex는 탐욕이며 Drake는 그것이 문명의 수를 구할 수 있는 방정식임을 알고 해석합니다. 특정 은하계. (내 생각엔 내가 미친 게 아닌 것 같아).
소프트웨어는 귀하가 준비한 모든 서버에서 자체 호스팅될 수 있도록 설계되었으며 Docker를 사용하여 배포하거나 수동 설치를 수행할 수 있도록 지원합니다. 즉, 클라이언트와 서버 모두의 npm 모듈을 설치하고 그런 다음 npm 실행을 시작하세요... 알잖아요.
이 소프트웨어 'cdrake-se'의 작동을 허용하는 라이브러리에 언급된 바와 같이 검색 결과는 서버가 위치한 지리적 영역에 따라 달라집니다. 이 글을 쓰는 시점에는 독일의 서버에 인스턴스가 배포되어 있습니다. 예를 들어 칠레와 같은 다른 국가에 있는 경우 컴퓨터에 로컬로 소프트웨어를 배포하면 결과가 달라질 수 있다는 점을 명심하세요. 나는 이것이 해당 검색 엔진 및 백엔드 서비스 작동 방식과 관련이 있다고 생각합니다. IP를 가져와 국가를 추출하고 국가 컨텍스트에 따라 응답을 반환하는 것 같습니다.
귀하의 데이터를 안전하고 친근하게 다루세요
반응형 웹 UI
수수료나 구독 없음(유료 API 없음)
풍부한 사용자 경험
사용하기 쉬운 아키텍처
엄청나게 빠르다
다크 모드와 라이트 모드
도커 지원
인스턴스를 배포하는 방법에는 수동으로 또는 Docker를 통해 두 가지가 있습니다. 둘 다 상대적으로 간단합니다. 아래에서는 수동으로 배포하겠습니다. 터미널에서 몇 가지 명령만으로 충분합니다.
# 저장소 복제git clone https://github.com/codewithrodi/CodexDrake/# 생성된 폴더에 접근cd CodexDrake# 나중에 설명할 'Setup.py' 파일을 사용하여 서버 및 클라이언트 설정 초기화python3 Setup.py# 이제 해야 할 작업 'Setup.py'가 작업을 수행할 때까지 기다렸다가 제안하는 모든 것을 수락해 보세요.# 웹 UIcd 클라이언트 시작 && npm run dev# 백엔드 서버cd 서버 시작 && npm run 시작
# 저장소 복제git clone https://github.com/codewithrodi/CodexDrake/# 생성된 폴더에 액세스cd CodexDrake# 실행 dockerdocker compose up -d
".env" 환경 파일에는 과학적인 내용이 별로 없습니다. "Server/" 폴더 안에는 SSL 인증서나 서버 네트워크의 주소와 같이 실행할 때 사용되는 정의가 포함된 ".env" 파일이 있습니다. 거기에 선언되어 있습니다. 이 섹션에서는 정말 중요한 것이 무엇인지 보여주는데 초점을 맞추겠습니다. 즉, 클라이언트 애플리케이션을 서버와 연결하는 것입니다. 서버 환경 파일은 주석이 있는 것 외에도 변수 명명법 측면에서 상당히 설명적입니다. 아무것도 당연하게 여겨서는 안 된다는 사실에도 불구하고 해당 파일을 사용자에게 설명할 필요가 없으며 사용자가 스스로 이해할 것입니다.
Vite + React 애플리케이션이 있는 "Client/" 폴더 안에는 ".env"라는 파일이 있습니다. 여기서 값이 백엔드 서버의 엔드포인트여야 하는 "VITE_CDRAKE_SERVER_ENDPOINT" 변수에 주의해야 합니다. 인스턴스, 기본적으로 http://0.0.0.0:8000이지만 예를 들어 http://backend.mycodexdrakeinstance.com일 수 있습니다.
# <클라이언트/.env> VITE_CDRAKE_REPOSITORY = https://github.com/codewithrodi/CodexDrake/VITE_CDRAKE_VERSION = 안정 v1.0.3VITE_CDRAKE_SERVER_ENDPOINT = http://0.0.0.0:8000/api/v1
엔드포인트에 /api/v1을 추가하는 것을 고려해보세요.
저장소가 복제될 때 생성된 폴더 안에는 "Setup.py"라는 파일이 있습니다. 이를 통해 몇 가지 명령을 실행하여 약간의 시간을 절약할 수 있습니다. 그런 다음 이 파일이 수신할 수 있는 인수에 대해 설명합니다. 당신에게.
# 저장소 복제 시 생성된 폴더 내부.# (( /CodexDrake/ )# 서버 및 클라이언트 애플리케이션의 "node_modules"를 자동으로 설치합니다.python3 Setup.py# 클라이언트 및 서버 애플리케이션의 "node_modules"를 제거합니다.python3 설정 .py DeleteModules# 클라이언트에서 "node_modules"만 제거 application.python3 Setup.py DeleteClientModules# 클라이언트에서 "node_modules"만 제거 서버 application.python3 Setup.py DeleteServerModules# 서버에서 모든 소스 코드 제거 application.python3 Setup.py DeleteServerSource# 클라이언트에서 모든 소스 코드 제거 application.python3 Setup.py DeleteClientSource
MIT 라이선스(Massachusetts Institute of Technology License)는 허용적인 오픈 소스 소프트웨어 라이선스입니다. 이를 통해 개발자는 물질적 제한 없이 소프트웨어를 사용, 수정, 배포 및 재라이센스할 수 있습니다. MIT 라이선스는 단순함이 특징이며 사용자에게 많은 법적 제한을 가하지 않습니다.
소프트웨어를 깨고 배우고, 그로부터 조각을 추출하여 더 나은 것을 구축하십시오. 행운을 빌어요!
웹사이트
NPM
코드펜
Github