모든 시스템 정상 작동 중 21 종 암호화폐 지원 · 모네로 환영 KYC 없음 정책
ChainVPS

Dev · KYC 없음

Gitea를 해외 VPS에 호스팅

KYC 없는 암호화폐 결제 VPS에서 나만의 가벼운 Git 포지를 직접 운영하고, 모든 저장소·이슈·CI 파이프라인을 서드파티 클라우드 밖에 두세요.

설명

Gitea는 Go로 작성된 셀프 호스팅 Git 서비스입니다 — 저장소, 풀 리퀘스트, 이슈, 위키, 릴리스, Actions(CI/CD)를 제공하는 가벼운 GitHub/GitLab 대안입니다. 단일 바이너리 또는 Docker 이미지로 제공되며 메모리 사용량이 적어, 소스 코드에 대한 완전한 통제권을 원하는 팀에게 이상적입니다.

왜 해외에서 호스팅해야 할까요

소스 코드는 팀이 보유한 가장 민감한 데이터 중 하나입니다. 신원 정보 없는 해외 VPS에 호스팅하면 대형 코드 호스팅 플랫폼의 데이터 보존 및 테이크다운 정책의 손이 닿지 않는 곳에 둘 수 있습니다. KYC 없이 암호화폐로 결제하면 프로젝트의 인프라가 어떤 기업 신원과도 연결되지 않으며, 무제한 트래픽 덕분에 클론, CI 실행, 릴리스 다운로드가 트래픽 제한 걱정 없이 이루어집니다.

배포

실제로 작동하는 참고 설정

이 내용을 새 ChainVPS 인스턴스에 붙여넣으세요. 자리표시자를 실제 값으로 교체한 뒤 실행하세요.

docker-compose.yml

# docker-compose.yml — Ubuntu 24.04에서 Gitea + PostgreSQL 구성
# 1) apt install docker.io docker-compose-v2
# 2) 이 파일을 /opt/gitea에 두고 실행: docker compose up -d
# 3) http://SERVER_IP:3000 에 접속해 웹 설치 마법사를 완료하세요
services:
  server:
    image: gitea/gitea:1.22
    container_name: gitea
    restart: always
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=db:5432
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=CHANGE_ME_STRONG_DB_PW
      # 올바른 클론 URL — DNS가 준비되면 본인 도메인으로 설정하세요:
      - GITEA__server__DOMAIN=git.example.com
      - GITEA__server__ROOT_URL=https://git.example.com/
      - GITEA__server__SSH_PORT=222
      - GITEA__service__DISABLE_REGISTRATION=true
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"   # 웹 UI — 프로덕션에서는 TLS 리버스 프록시 앞단에 배치
      - "222:22"      # git-over-SSH (호스트 222 -> 컨테이너 22)
    depends_on:
      - db
    networks:
      - gitea

  db:
    image: postgres:16
    container_name: gitea-db
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=CHANGE_ME_STRONG_DB_PW
      - POSTGRES_DB=gitea
    volumes:
      - ./postgres:/var/lib/postgresql/data
    networks:
      - gitea

networks:
  gitea:
    external: false

방화벽

열어야 할 포트

포트프로토콜용도
3000TCPGitea 웹 UI 및 HTTP git — 프로덕션에서는 TLS 리버스 프록시(Caddy/Nginx) 뒤에 두세요
222TCPGit-over-SSH(호스트 포트를 컨테이너 22로 매핑)로 SSH 키 기반 클론/푸시
443TCP도메인과 인증서가 준비되면 리버스 프록시를 통한 HTTPS
22TCP관리용 호스트 SSH — Gitea의 222와는 별도 포트로 분리하고 키 인증만 허용

적정 규모 산정

필요한 요금제

낮음

VPS Nano/Small (1-2 vCPU, 2 GB RAM)

1인 개발자 또는 소수 사용자, 수십 개 저장소, CI 없음. Gitea는 유휴 상태에서 약 150-200 MB RAM을 사용합니다.

중간

VPS Pro (2-4 vCPU, 4-8 GB RAM)

소규모 팀, 활발한 풀 리퀘스트, CI용 Gitea Actions 러너 한두 개. 대용량 릴리스 아티팩트가 있다면 스토리지 볼륨을 추가하세요.

높음

Dedicated (또는 저장소용 Storage VPS)

다수의 동시 사용자, 대형 모노레포, 높은 CI 동시성, 또는 LFS 비중이 큰 미디어. 전용 CPU가 클론/팩 작업 속도를 유지해주며, 저장소/LFS 데이터에는 Storage 요금제를 함께 사용하세요.

추천 로케이션: 프라이버시 등급이 높은 로케이션을 선택하세요 — 스위스(CH)와 아이슬란드(IS)가 소스 코드에 가장 강력한 데이터 보호 태세를 제공하며, 네덜란드(NL), 루마니아(RO), 몰도바(MD), 룩셈부르크(LU)도 견고한 해외 대안입니다. 클론/푸시 지연을 줄이려면 기여자와 가장 가까운 리전을 선택하세요. Git 왕복 통신은 지연에 민감합니다.

보안을 강화하세요

보안 강화 체크리스트

  • 포트 3000을 절대 인터넷에 그대로 노출하지 마세요 — Gitea 앞단에 TLS 리버스 프록시(Caddy 자동 HTTPS 또는 Nginx + certbot)를 두고, 클론 URL이 올바르게 설정되도록 GITEA__server__ROOT_URL을 https 도메인으로 지정하세요.
  • 관리자 계정을 생성한 직후 DISABLE_REGISTRATION=true(compose에 이미 포함됨)로 설정해 아무도 자체 가입할 수 없게 하세요. 사용자는 수동으로 또는 관리자 패널을 통해 초대하세요.
  • git-over-SSH는 포트 222에 유지하고 호스트 자체 sshd는 다른 포트에서 운영하며, 둘 다 키 인증만 허용(PasswordAuthentication no)하세요. Gitea가 authorized_keys를 내부적으로 관리하므로 직접 수정하지 마세요.
  • 모든 계정에 2FA를 활성화하고 관리자에게는 필수로 요구하세요. DB 비밀번호는 환경변수에서 꺼내 Docker 시크릿이나 권한 600의 .env 파일로 옮기세요.
  • ./gitea(저장소, 설정, LFS)와 gitea 데이터베이스의 pg_dump를 정기적으로 백업하고, 이미지는 latest 대신 버전 태그(gitea/gitea:1.22)로 고정해 업그레이드를 의도적으로 진행하세요 — 메이저 버전을 올리기 전에는 릴리스 노트를 먼저 읽으세요.

질문

호스팅 Gitea — FAQ

별도 서비스 없이 CI/CD를 실행할 수 있나요?

네. Gitea에는 내장 Actions(GitHub Actions 호환)가 있습니다. 이를 활성화한 뒤 러너 컨테이너(gitea/act_runner)를 인스턴스에 등록하세요. 실제 CI 부하가 있다면 Medium 이상의 요금제를 사용해 빌드가 웹 서비스 성능을 잠식하지 않도록 하세요.

SQLite, MySQL, 아니면 PostgreSQL?

SQLite는 가벼운 단일 사용자에게 적합하며 DB 컨테이너가 필요 없습니다. 팀 단위나 성장 경로를 고려한다면 compose 예시처럼 PostgreSQL을 사용하세요 — 동시성 처리가 훨씬 우수하고 pg_dump로 손쉽게 백업할 수 있습니다.

GitHub/GitLab에서 저장소를 어떻게 이전하나요?

Gitea의 내장 마이그레이션 도구는 이슈, PR, 릴리스, 위키를 포함해 URL로 저장소를 가져옵니다. 프라이빗 저장소와 메타데이터를 가져오려면 마이그레이션 폼에 원본 플랫폼의 토큰을 추가하세요.

대용량 파일(Git LFS)도 지원하나요?

네, LFS는 기본 지원되며 /data 아래에 저장됩니다. 대용량 바이너리나 미디어를 다룬다면 ./gitea를 Storage VPS 볼륨에 두고 디스크 용량을 넉넉히 계획하세요 — LFS 객체는 빠르게 쌓입니다.

KYC 없는 호스트에서 내 코드가 계속 비공개로 유지되나요?

저장소는 선택한 해외 관할권의 VPS 디스크에 전적으로 존재하며, 어디에도 미러링되지 않습니다. 완전한 통제를 위해 가입을 비활성화 상태로 유지하고, HTTPS + SSH 키를 사용하며, 2FA를 활성화하고, 암호화된 오프박스 백업을 수행하세요.

생성하기 Gitea
60초 안에 배포하세요.

무제한 트래픽 · 디도스 방어 포함 · 21종 암호화폐 · KYC 없음.