프라이빗 인프라 / 신분증 불필요프라이버시 원칙 읽기
KoalaVPS 필드 노트

직접 다시 구축할 수 있는 작은 포지.

Git 서비스를 통해 저장소와 협업을 직접 통제할 수 있습니다. 코드, 데이터베이스, 빌드 시스템을 각각 별도로 보호하세요.

협업 계층을 선택하세요

Forgejo와 Gitea는 경량 포지 소프트웨어의 예시이며, 소규모 워크플로에는 일반 SSH Git으로 충분할 수 있습니다. 이슈, 리뷰, 패키지 저장소 및 신원 요구 사항을 프로젝트에 맞추세요. 현재 지원되는 버전과 라이선스를 확인하세요.

포지에서 빌드를 분리하세요

CI 러너는 프로젝트가 제어하는 코드를 실행하므로 무제한의 포지 또는 호스트 자격 증명을 보유해서는 안 됩니다. 러너를 격리하고 토큰 범위를 제한하며, 저장소 서비스와 동일한 권한 계정에서 신뢰할 수 없는 작업을 실행하지 마세요.

액세스 및 등록 보호

서비스가 비공개인 경우 공개 가입을 비활성화하세요. 개별 계정, 강력한 인증 및 신중하게 범위가 지정된 배포 키를 사용하세요. SSH 포트와 호스트 키를 문서화하세요. 사용자가 호스트 키 경고를 무시하도록 조용히 훈련시키지 마세요.

전체 서비스 백업

저장소만으로는 이슈, 계정, 첨부 파일 및 구성이 포함되지 않을 수 있습니다. 포지의 일관된 백업 절차를 따르고 파일 권한과 애플리케이션 비밀이 그대로 유지된 상태로 복원을 테스트하세요.

포지 복구 체크리스트

데이터베이스를 일관되게 내보내고 리포지토리 스토리지, 첨부 파일, 활성화된 경우 대용량 파일 스토리지, 구성 및 암호화 비밀을 보존하세요. 복원 후 의도한 SSH 또는 HTTPS 경로를 통해 클론을 검증하세요. 빌드가 서비스 자체의 구성을 다시 작성할 수 없도록 포지와 모든 CI 워커를 격리하세요.

배포 권한을 좁게 유지하세요

코드만 가져오는 서버라면 읽기 전용 배포 키로 충분할 수 있습니다. 릴리스 자동화에는 약간의 추가 범위가 필요할 수 있습니다. 서로 다른 머신에는 독립적인 키를 사용하고, 용도를 기록하며, 머신을 폐기할 때 키를 제거하세요.

상황에 맞는 가장 작은 협업 서비스를 사용하세요

소수의 비공개 저장소의 경우 제한된 SSH를 통한 베어 Git으로 충분할 수 있습니다. Forgejo 또는 Gitea는 데이터베이스, 애플리케이션 업데이트 및 더 많은 영구 상태를 대가로 계정, 풀 리퀘스트, 이슈 및 선택적 패키지를 추가합니다. 팀이 실제로 사용할 기능을 기록하세요. 저장소 성장, 대용량 파일 객체, 첨부 파일 및 빌드 아티팩트를 별도로 예산에 반영하세요. CI 컴퓨팅이 포지 자체를 초과할 수 있습니다.

  • 표준 HTTPS 이름을 선택하고 해당 DNS 계정을 보호하세요.
  • 가입을 폐쇄할지, 초대 기반으로 할지, 승인제로 할지 결정하세요.
  • 포지 서비스에 비권한 ID와 내구성 있는 프라이빗 스토리지를 부여하십시오.

웹, SSH 및 데이터베이스 경로를 분리하세요

선택한 릴리스의 업스트림 구성을 사용하고 의도한 이미지 버전을 고정하세요. TLS 리버스 프록시는 내부 웹 리스너에 도달해야 하며, 데이터베이스는 forge에서만 접근할 수 있어야 합니다. Git SSH이 컨테이너 포트를 사용하는 경우, 공지된 호스트와 외부 포트를 매핑과 일치시키세요. forge를 변경하는 동안 호스트 관리자 SSH 리스너를 교체하거나 실수로 노출하지 마세요. 초기 소유자가 생성되면 설치/설정 접근을 닫으세요.

  • 애플리케이션을 시작하기 전에 영구 볼륨 소유권을 확인하세요.
  • forge 데이터베이스로 제한된 데이터베이스 사용자를 사용하세요.
  • 특히 신뢰할 수 없는 저장소의 경우 CI 러너를 별도의 신뢰 경계에 유지하세요.

클론, 푸시 및 거부된 작업을 확인하세요

일회용 비공개 저장소를 만들고 일반 개발자 계정에서 HTTPS 또는 SSH 클론 URL을 테스트하세요. 무해한 파일을 커밋하고 푸시한 다음, 다른 권한 있는 읽기 사용자가 이를 가져올 수 있는지 확인하세요. 초대받지 않은 계정은 비공개 저장소를 읽지 못해야 합니다. 대용량 파일 처리 및 알림 이메일이 활성화된 경우 이를 확인하세요. 배포 전용 머신의 경우 읽기 전용 키가 가져오기는 가능하고 푸시는 불가능한지 테스트하세요. 인증 성공만으로는 의도한 권한 경계가 입증되지 않습니다.

# Use the disposable repository URL advertised by your forge:
git clone ssh://[email protected]:2222/team/check.git
# In a clone, inspect which remote is configured:
git remote -v

저장소뿐 아니라 토론도 복구하세요

일관된 애플리케이션/데이터베이스 백업, 저장소 스토리지, 첨부 파일, LFS 데이터, 구성 및 필요한 암호화 비밀을 확보하세요. 설치된 포지 버전의 백업 절차를 따르세요. Gitea 백업 명령은 모든 Forgejo 릴리스와 자동으로 호환되지 않습니다. 격리된 환경에서 재구축하고 이슈, 첨부 파일, 로그인 및 클론을 검증하세요. 이전 후 푸시가 실패하면 저장소 권한을 전역으로 변경하기 전에 SSH 호스트/포트, 키 매핑, 스토리지 권한 및 광고된 클론 URL을(를) 확인하세요.

인프라를 구성하세요

직접 통제하세요.
원하는 방식으로 배포하세요.

신원 서류 없음. 전체 관리자 액세스. 암호화폐 기반 결제.