GitHub에서 Dillo 프로젝트 이전

1 week ago 2

  • 웹 브라우저 Dillo 프로젝트가 GitHub에서 자체 호스팅 서버로 이전을 진행 중임
  • GitHub의 JavaScript 의존성, 단일 통제 구조, 느린 성능 등이 주요 이전 이유로 제시됨
  • 새 서버는 dillo-browser.org 도메인에서 운영되며, cgit 기반 경량 Git 프런트엔드와 자체 제작 버그 트래커 ‘buggy’ 를 사용함
  • 모든 데이터는 git 저장소로 관리되어 Codeberg와 Sourcehut에 미러링되며, 데이터 손실 위험을 최소화함
  • OpenPGP 서명을 통해 DNS 손실 시에도 신뢰성을 유지할 수 있도록 설계되어, 프로젝트의 독립성과 지속성을 강화함

배경

  • 과거 Dillo의 원래 사이트는 dillo.org였으며, Mercurial 저장소, 메일 서버, 버그 트래커, 메일링 리스트 아카이브를 포함하고 있었음
    • 2022년에 도메인을 잃고, 제3자가 AI 광고로 가득한 유사 사이트를 개설함
    • 일부 자료는 복구되었으나 완전하지 않음
  • 이러한 경험으로 인해 단일 사이트 의존을 피하고, 분산된 백업 구조를 구축하기로 결정함
  • 초기에는 GitHub에 코드를 업로드했으나, 장기적으로 적합하지 않다고 판단함

GitHub의 문제점

  • GitHub는 CI 워크플로와 저장소 관리에 유용했지만, 여러 한계가 있음
    • JavaScript 없이는 프런트엔드가 작동하지 않아, Dillo 브라우저로 이슈나 PR을 열람할 수 없음
    • 페이지가 리소스를 과도하게 사용하며, 단순 HTML 렌더링에 불필요한 부하 발생
  • 단일 통제 주체에 의해 계정이 차단될 위험이 있어, 데이터 접근이 차단될 수 있음
  • 플랫폼이 점점 느려지고, 빠른 인터넷 연결을 요구
  • GitHub의 “푸시 모델” 알림 방식은 오프라인 중심의 개발 방식과 맞지 않음
  • 비개발자 사용자 비율이 높은 프로젝트에서의 커뮤니티 관리 도구 부족으로 개발자 피로도가 증가함
  • GitHub가 LLM 및 생성형 AI 중심으로 전환하면서, 사이트들이 LLM 크롤러를 막기 위해 JavaScript 벽이나 브라우저 지문 추적을 강화함
    • 이로 인해 Dillo 사용자 접근이 차단되는 부작용 발생

자체 호스팅 구축

  • 기존 포지토리 서비스들이 단일 장애점 제거와 경량 운영을 동시에 만족하지 못함
    • 이에 따라 직접 서버를 운영하고, 여러 미러를 유지하기로 결정
  • dillo-browser.org 도메인을 구입하고, 소형 VPS 서버를 구축
    • 예상보다 안정적으로 운영 중이며, 주로 AI 봇 트래픽을 처리함
  • Git 프런트엔드로 cgit을 선택
    • C 언어로 작성되어 RAM과 CPU 사용량이 적고, JavaScript 없이 작동
    • Dillo에서 잘 보이도록 CSS를 일부 수정함
    • https://git.dillo-browser.org/ 에서 접근 가능
  • 버그 트래커는 직접 개발한 ‘buggy’ 사용
    • Markdown 파일을 파싱해 HTML 페이지 생성, 각 버그는 git 저장소에 저장
    • 커밋 시 git hook이 자동으로 페이지를 갱신
    • 오프라인 편집 가능, 보안 취약점 우려 없음
    • https://bug.dillo-browser.org/ 에서 확인 가능
  • 메일링 리스트 아카이브는 3개의 외부 서비스에 분산 저장, 향후 자체 복사본 추가 예정

미러 설정

  • 모든 핵심 데이터가 git 저장소 형태로 관리되어, Codeberg와 Sourcehut에 미러링됨
    • 특정 포지토리가 중단되더라도 낮은 전환 비용으로 다른 미러로 이동 가능
  • 단일 실패 지점은 DNS(dillo-browser.org)
    • DNS 손실 시 메일링 리스트, Fediverse, IRC 등을 통해 사용자에게 알림 가능
    • 데이터는 git에 복제되어 있어 치명적 손실은 발생하지 않음

OpenPGP 서명

  • 본 페이지는 Rodrigo Arias Mallo의 GPG 키(32E65EC501A1B6FDF8190D293EE6BA977EB2A253) 로 서명됨
    • Dillo의 최신 릴리스와 동일한 키이며, GitHub 계정에도 등록되어 있음
    • 서명 파일(index.html.asc)은 <link rel=signature>로 연결됨
  • OpenPGP 서명은 DNS 손실에도 신뢰 유지 가능
    • TLS 인증서 체인 대신 서명 신뢰 기반으로 소유권 증명
    • 모든 git 미러에 서명을 포함시켜 데이터 손실 내성 강화

마이그레이션 진행 및 전망

  • GitHub 저장소는 즉시 삭제되지 않으며, 마이그레이션 완료 전까지 계속 업데이트됨
    • 완료 후에는 저장소를 ‘archived’ 상태로 전환하고 공식 사이트에 공지 예정
    • 기존 커밋과 릴리스 파일은 하위 빌드 호환성을 위해 유지
  • 새 인프라는 낮은 비용과 에너지 소비로 독립 운영 가능
    • 현재 기부금과 서버 비용 기준으로 최소 3년간 유지 가능
    • 후원을 원할 경우 Liberapay를 통해 지원 가능 (https://liberapay.com/dillo/)

Read Entire Article