TL;DR
- EtherPK는 일반 Markdown, 일지와 페이지, 위키링크 기반 지식 그래프를 제공하는 개인 지식 베이스이며, Obsidian·Logseq 대안으로 제시됨.
- 편집기인 Client는
SvelteKit앱으로, 컴퓨터의 폴더에 있는 그래프나 종단 간 암호화를 적용한 Sync Server의 그래프를 엶. - Headless Client는 편집기 없이 그래프를 AI 에이전트에 제공하는 MCP 서버이며,
@appsoftwareltd/etherpk-mcp로 npm에 배포됨. - 데모는 etherpk.com에서 계정 없이 브라우저로 실행되며, 작성 내용은 해당 브라우저에만 저장됨.
- 소프트웨어는 Elastic License 2.0으로 제공되며, 사용·복사·수정·자체 호스팅은 허용하지만 호스팅 또는 관리형 서비스로 타인에게 제공하는 것은 허용하지 않음.
EtherPK Client
- EtherPK Client와 Headless Client의 소스 코드 저장소이며, Elastic License 2.0으로 제공됨.
- etherpk.com에서 데모를 실행할 수 있으며, 계정이 필요 없고 작성 내용은 실행한 브라우저에만 저장됨.
- EtherPK는 일반 Markdown을 사용하는 개인 지식 베이스임. 일지 항목은 일일 생각을 담고, 페이지는 하루를 넘어 유지되는 내용을 담으며,
[[wikilinks]]가 항목을 지식 그래프로 연결함. - Client는 편집기 역할을 하는
SvelteKit앱으로, 컴퓨터의 폴더에 있는 그래프 또는 Sync Server에 저장된 그래프를 엶. Sync Server의 그래프는 종단 간 암호화되며 서버는 내용을 읽을 수 없음. - Headless Client는 같은 엔진에서 편집기를 제외한 구성으로, AI 에이전트에 그래프 하나를 제공하는 MCP 서버임.
- 사용자 문서는 https://docs.etherpk.com 에서 확인할 수 있음.
라이선스
- Elastic License 2.0은 소프트웨어의 사용, 복사, 수정 및 자체 호스팅을 허용함.
- 소프트웨어를 호스팅 또는 관리형 서비스로 다른 사람에게 제공하는 것은 허용하지 않음. 이는 소스 공개 라이선스이며 오픈소스 라이선스는 아님.
저장소 구성
apps/client: Clientapps/mcp: Headless Client / MCP Server. npm 패키지 이름은@appsoftwareltd/etherpk-mcp이며, README는apps/mcp/README.md임.packages/shared: Client와 Sync Server가 공유하는 동기화 프로토콜, UI 컴포넌트 및 인증 페이지 코드packages/themes: 배포자가 번들에 포함하는 사이트 테마
실행 방법
Docker 이미지
- Docker 이미지
ghcr.io/appsoftwareltd/etherpk-client:latest를 포트 3000에 연결해 실행할 수 있음. - 이미지의 모든 태그는 이미지 패키지 페이지에 나열됨.
- http://localhost:3000 에 접속하면 Client를 사용할 수 있음. 설정이 없으면 컴퓨터의 그래프 폴더를 사용하며, Sync Server 주소를 입력하는 Custom server 양식을 제공함.
- Client가 읽는 설정값과 기본값은
apps/client/.env.example에 있으며,--env-file로 전달함.
Node.js 번들
- 각 릴리스에는 Windows, macOS, Linux에서 실행 가능한
etherpk-client-<version>.tar.gz가 포함됨. Node.js 22 이상이 필요하며 별도 설치 항목은 없음. - 번들을 압축 해제하고
etherpk-client디렉터리로 이동한 뒤,HOST=127.0.0.1 PORT=3000 node build명령으로 실행함. - Windows 명령을 포함한 전체 안내는 Running EtherPK On Your Own Computer 문서에 있음.
Headless Client / MCP 서버
@appsoftwareltd/etherpk-mcp이름으로 npm에 배포됨.npx @appsoftwareltd/etherpk-mcp --help명령으로 도움말을 확인함.- 그래프 종류별 설정 안내는
apps/mcp/README.md에 있음.
소스에서 빌드
- Node.js 22 이상과
pnpm이 필요함.corepack enable을 실행하면package.json에 지정된pnpm버전을 사용할 수 있음. pnpm install --frozen-lockfile로 의존성을 설치하고,pnpm dev로http://localhost:5174에서 Client를 실행함.pnpm check는 타입 검사,pnpm lint는 린트,pnpm test는 Vitest 단위 테스트 실행에 사용됨.pnpm build는 Client와 Headless Client를 빌드하며,docker build -f apps/client/Dockerfile -t etherpk-client .로 Docker 이미지를 빌드함.- 개발 설정을 변경하려면
apps/client/.env.example을apps/client/.env로 복사함.
버전 및 릴리스
main브랜치의 모든 커밋은edge와sha-<commit>태그가 붙은 이미지를 게시함.- 릴리스는
v<version>태그로 생성됨. 릴리스는<version>,<major>.<minor>,latest태그의 이미지, Node 번들이 첨부된 GitHub Release, 같은 버전의@appsoftwareltd/etherpk-mcpnpm 패키지를 게시함. - Client와 Headless Client는 EtherPK Sync Server와 버전 번호를 공유하며, 버전이 일치하는 조합만 함께 테스트됨.
- Client와 Sync Server의 동기화 프로토콜 버전이 다르면 동기화를 거부하고, Client가 어느 쪽을 업그레이드해야 하는지 표시함.
저장소 관리 방식
- 이 저장소는 App Software의 비공개 EtherPK 저장소를 한 방향으로 복사한 것으로, 비공개 저장소의 변경 때마다 내보내기됨.
- 이 저장소의 각 커밋은 하나의 내보내기에 해당하며,
GitOrigin-RevId트레일러가 원본 비공개 커밋을 가리킴. - 코드 주석은 비공개 저장소에 있으며 여기에는 공개되지 않은 설계 기록(ADR 0072)과 용어집 항목(
[[Knowledge Graph]])을 참조함. - 이슈 제보는 환영하지만 이 저장소에서 풀 리퀘스트를 병합하지 않음. 그 이유와 이후 처리 방식은
CONTRIBUTING.md에 설명되어 있으며, 보안 문제는SECURITY.md의 안내에 따라 제보함.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요