프로젝트 소개
Gopad는 작성자에 의해 마크다운 기반 문서 작성 및 업데이트를 위한 단순한 웹 인터페이스로 설명되며, Etherpad와 비슷하지만 마크다운 작성과 서식 지정에 집중하고 있습니다. 이 저장소인 gopad-api는 Go로 구현된 프로젝트의 서버 측을 담당하며, 사용자 인터페이스는 VueJS로 구축되었습니다. 유지 관리자는 이 프로젝트가 활발히 개발 중이며, 아직 안정적인 릴리스가 없으므로 첫 정식 릴리스 전까지는 중대한 변경 사항이 발생할 수 있음을 명시적으로 알리고 있습니다.
설치 및 패키징. 사전 빌드된 바이너리는 GitHub 릴리스와 전용 다운로드 사이트를 통해 제공됩니다. 또한 Cloudsmith에서 호스팅하는 DEB 및 RPM 패키지 저장소, GHCR, Docker Hub 및 Quay에 게시된 컨테이너 이미지, macOS 사용자를 위한 Homebrew 포뮬러를 준비하고 있으며, gopad.eu에서 문서를 제공합니다. 패키지 저장소의 호스팅 제공업체로는 Cloudsmith가 명시되어 있습니다.
빌드 프로세스. 도구 버전은 mise로 관리됩니다. 저장소 내부에서 mise trust와 mise install을 실행하여 이를 활성화하고 mise.toml에 정의된 모든 항목을 설치합니다. 빌드 단계 자체는 go-task taskfile의 일부이므로, 문서화된 순서는 저장소를 클론한 후 task fe:install fe:build be:build를 실행하고 최종적으로 결과 바이너리를 실행하는 것입니다. 모든 정적 자산은 바이너리에 내장되어 있어, 실행 파일을 시작하는 것 외에 추가적인 웹 서버가 필요하지 않습니다.
개발 워크플로우. DevContainer 설정이 제공되므로, 이를 사용하는 기여자는 자신의 시스템에 mise를 설치하지 않고도 시작할 수 있습니다. 활발한 개발 시에는 별도의 터미널 탭이나 창에서 task watch:server와 task watch:frontend라는 두 개의 watch 태스크를 실행합니다. 백엔드 개발 서버는 localhost:8080에서, 프론트엔드는 localhost:5173에서 실행되는 것으로 문서화되어 있으며, 핫 리로딩 기능이 있어 코드 변경 시 서비스가 자동으로 재시작되거나 다시 로드됩니다.
기여 및 릴리스. 이 프로젝트는 릴리스별로 변경 로그를 생성할 수 있도록 conventional commits를 따르며, 새로운 기능이나 수정 사항은 풀 리퀘스트(pull request)를 통해 통합될 것을 요청합니다. 릴리스 번호는 버그 수정, 기능 추가 또는 중대한 변경 사항 도입 여부를 알리기 위해 유의적 버전(semantic versioning)을 따릅니다. mise를 통해 도구를 설치한 후, 기여자는 prek(mise로 관리됨)를 사용하여 pre-commit 및 commit-msg 훅 유형의 pre-commit 훅을 설정합니다. 풀 리퀘스트가 병합되고 빌드에 성공하면, 최소 일주일에 한 번 새로운 릴리스가 자동으로 생성됩니다.
보안 보고서는 먼저 gopad@webhippie.de로 보내야 합니다. 이 프로젝트는 Apache-2.0 라이선스 하에 있으며, 저작권은 2018년부터 Thomas Boerger에게 귀속됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.