웹 호스팅에서 개인 Git 서버를 설정하는 방법

코드를 관리하고 팀원과 협업하는 것은 모든 개발 프로젝트에 필수적입니다. GitHub 및 GitLab과 같은 플랫폼이 인기 있지만 웹 호스팅에 개인 Git 서버를 설정하면 프로젝트를 더 잘 제어하고 개인 정보를 보호하며 비용을 절감할 수 있습니다. 이 튜토리얼은 웹 호스팅에 개인 Git 서버를 설정하는 단계를 안내합니다.

1. 왜 개인 Git 서버를 설정해야 하나요?

설정을 시작하기 전에 자체 Git 서버를 갖는 것의 이점을 이해하는 것이 중요합니다.

  • 개인정보 보호: 귀하의 코드는 완전히 비공개로 유지되며 귀하가 제어할 수 있습니다.
  • 사용자 정의: 귀하의 특정 요구 사항과 작업 흐름에 맞게 서버를 맞춤화하세요.
  • 사용자 제한 없음: 개인 저장소나 공동작업자 수에 제한을 두지 마세요.
  • 비용 효율성: 여러 사용자가 있는 팀의 경우, 인기 플랫폼의 유료 플랜보다 셀프 호스팅이 더 저렴할 수 있습니다.

2. 필수 조건

시작하기 전에 다음 사항이 있는지 확인하세요.

  • VPS 또는 전용 서버: 공유 호스팅은 일반적으로 Git 서버를 설정하는 데 필요한 액세스 및 리소스를 제공하지 않습니다.
  • SSH 액세스: Git 서버를 설치하고 구성하려면 서버에 SSH 액세스가 필요합니다.
  • 기본적인 Linux 지식: 명령줄과 Linux에 대한 지식이 필수입니다.

3. 서버에 Git 설치하기

먼저, 서버에 Git을 설치해야 합니다. 다음 단계를 따르세요.

  1. 서버 업데이트: Run the following command to ensure your server’s package list is up to date:
    sudo apt-get 업데이트
  2. Git 설치: Install Git by running:
    sudo apt-get 설치 git
  3. 설치 확인: Check that Git has been installed correctly by typing:
    git --버전

4. Git 사용자 생성

Git 저장소를 관리하기 위해 별도의 사용자를 만드는 것이 좋습니다.

  1. 새로운 사용자 만들기: Run the following command to create a user named ‘git’:
    sudo adduser git
  2. SSH 액세스 설정: Add your SSH key to the new user’s authorized keys to enable secure access:
    sudo mkdir /home/git/.ssh
    sudo touch /home/git/.ssh/authorized_keys
    sudo nano /home/git/.ssh/authorized_keys

    공개 SSH 키를 authorized_keys 파일에 붙여넣은 다음 저장하고 종료합니다.

  3. 권한 설정: Adjust permissions for the SSH directory:
    sudo chown -R git:git /home/git/.ssh
    sudo chmod 700 /home/git/.ssh
    sudo chmod 600 /home/git/.ssh/authorized_keys

5. 저장소 생성

이제 첫 번째 Git 저장소를 만들 수 있습니다.

  1. 저장소용 디렉토리 생성: Log in as the ‘git’ user and create a directory for your repositories:
    sudo su - git
    mkdir repos
    cd repos
  2. 저장소 초기화: Create a new Git repository by running:
    git init --bare your-project.git

    이렇게 하면 원격 저장소에 코드를 푸시하거나 풀링하는 데 이상적인 베어 저장소가 생성됩니다.

6. 저장소에 복제 및 푸시

저장소가 설정되면 이제 로컬 머신에 복제하여 코드를 푸시할 수 있습니다.

  1. 저장소 복제: On your local machine, run:
    git clone git@your-server-ip:/home/git/repos/your-project.git
  2. 파일 추가 및 커밋: Add your files to the repository, commit them, and push the changes:
    cd your-project
    echo "# Your Project" >> README.md
    git add .
    git commit -m "Initial commit"
    git push origin master

7. 여러 저장소 관리

여러 개의 저장소를 호스팅할 계획이라면 각 프로젝트에 대해 저장소 생성 단계를 간단히 반복하면 됩니다.

  • /home/git/repos/ 아래에 각 저장소에 대한 새 디렉토리를 만듭니다.
  • git init --bare your-new-project.git로 각각의 새로운 저장소를 초기화합니다.
  • SSH를 통해 각 저장소에 독립적으로 접근하고 관리할 수 있습니다.

8. Git 서버 보안

보안은 개인 Git 서버를 호스팅하는 데 중요한 측면입니다. 보안을 강화하기 위한 몇 가지 단계는 다음과 같습니다.

  • 비밀번호 인증 비활성화: /etc/ssh/sshd_config을 편집하고 PasswordAuthentication no을 설정하여 키 기반 인증만 허용하도록 SSH를 구성합니다.
  • 방화벽 구성: UFW와 같은 도구를 사용하여 필요한 포트(예: SSH)만 허용하고 다른 포트는 차단합니다.
  • 정기적 백업: 데이터 손실을 방지하기 위해 저장소를 정기적으로 백업하세요.

9. 웹 인터페이스 설정(선택 사항)

저장소를 관리하기 위해 웹 인터페이스를 선호하는 경우 GitWeb 또는 Gitea와 같은 소프트웨어를 설치할 수 있습니다.

  • GitWeb: Git 저장소를 보기 위한 간단한 웹 인터페이스입니다.
  • Gitea: GitHub과 비슷한 사용자 친화적인 인터페이스를 제공하는 셀프호스팅 Git 서비스입니다.

두 옵션 모두 추가적인 설정과 구성이 필요하지만, Git 서버의 사용성을 크게 향상시킬 수 있습니다.

결론

웹 호스팅에 개인 Git 서버를 설정하면 코드를 완벽하게 제어할 수 있고, 개인 정보를 보호하며, 워크플로에 맞게 사용자 정의할 수 있습니다. 이 가이드를 따르면 Git 저장소를 직접 만들고 관리하여 개발 프로세스가 안전하고 효율적으로 유지되도록 할 수 있습니다.