Gitea Server 설치

Gitea 버전 관리 시스템(Version Control System, VCS)을 직접 운영하고 싶다면, Synology NAS를 활용해 Git 서버를 구축할 수 있다.
특히 메모리가 제한된 NAS 환경에서는 가볍고 효율적인 Gitea를 사용하는 것이 최적의 선택이다.

제가 검토한 솔루션은 Git / Gitlab / Gitea 3 가지 입니다.
먼저 Git Server는 시놀로지 패키지센터에서 공식적으로 지원이 유지되고 있습니다.
터미널 사용이 익숙하시다면 Git Server를 사용하시면 됩니다. 아무래도 유지보수가 편한것은 … (다만, 언제 지원이 중단될 지 모릅니다. ㅠ)
– Git Server는 설치 후 사용하실 때 기본 디렉토리가 home에 제한된다는 것이 단점입니다.
– 항상 본인 개인 계정의 Home 폴더에서 작업을 해야 합니다. ( 이 부분은 차후 업데이트 하겠습니다.)

GitLab의 경우 좋은 기능들을 제공하고 있지만, 아쉽게도 Synology NAS에서 운용하기에는 메모리의 부담이 상당합니다.
설치 후 기본적으로 8GB 정도 점유하기 때문에 다른 서비스는 포기하셔야 하고, 또한 대부분이 8 GB 이하의 NAS를 운용하기 때문에 사용 불가일 것입니다.
그에 반해 Gitea는 대부분의 Gitlab의 기능을 제공하면서 100MB이하(지금 거의 데이터가 없는 상태이기는 하지만)의 상당히 낮은 메모리 점유율을 보입니다.


Synology NAS에서 Gitea 서버를 구축하는 방법 비교

설치하기 위해 검토할 수 있는 주요 방법은 다음과 같다.

솔루션장점단점
Git Server (Synology 공식 패키지)간편 설치, 공식 지원Home 폴더 제한, 터미널 익숙함 필요
GitLab고급 기능, CI/CD 지원메모리 8GB 이상 필요, NAS 부하 심각
Gitea경량, 주요 기능 제공일부 고급 기능 제한 (대부분 문제 없음)

메모리가 8GB 이하인 Synology NAS에서는 Gitea를 설치하는 것이 현실적인 선택이다.
Gitea는 Docker를 통해 설치할 수 있으며, 특히 Docker Compose를 사용하면 관리가 더욱 편리하다.


방법 1. Docker로 Gitea 단독 설치

Docker 앱을 이용해 수동으로 Gitea를 설치하는 방법이다.

  1. DSM에서 [Container Manager]를 실행하고 [레지스트리] 탭으로 이동한다.
  2. 검색창에 gitea를 입력하고 gitea/gitea 이미지를 다운로드한다.
  3. 다운로드한 이미지를 [이미지] 탭에서 선택하고 [시작]을 클릭한다.
  4. 포트 설정
    • 3000 → 3000 (웹 접속용 HTTP)
    • 22 → 222 또는 다른 포트로 변경 (SSH 접속용, 선택사항)
  5. 볼륨 설정
    • /volume1/docker/gitea/data:/data
    • /volume1/docker/gitea/etc/timezone:/etc/timezone:ro
    • /volume1/docker/gitea/etc/localtime:/etc/localtime:ro
  6. 컨테이너를 실행한 후, 브라우저에서 http://NAS_IP:3000 으로 접속하여 설치를 진행한다.

이 방법은 간단하지만, 데이터베이스 구성이나 향후 설정 변경이 어려운 단점이 있다.


방법 2. Docker Compose를 이용한 Synology NAS Gitea 설치 (권장)

Docker Compose를 사용하면 Gitea와 PostgreSQL 데이터베이스를 함께 구성할 수 있다.
설치와 유지보수가 훨씬 간편하며, NAS 환경에서도 안정적으로 운영할 수 있다.

docker-compose.yml 파일 작성

다음 파일을 /volume1/docker/gitea/docker-compose.yml 경로에 작성한다.

version: "3"

networks:
  gitea:
    external: false

services:
  server:
    image: gitea/gitea:latest
    container_name: gitea
    environment:
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=db:5432
      - GITEA__database__NAME=gitea
      - GITEA__database__USER="gitea user id"
      - GITEA__database__PASSWD="gitea user password"
    restart: always
    networks:
      - gitea
    volumes:
      - /volume1/docker/gitea/data:/data
      - /volume1/docker/gitea/etc/timezone:/etc/timezone:ro
      - /volume1/docker/gitea/etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "222:22"
    depends_on:
      - db

  db:
    image: postgres:latest
    restart: always
    container_name: gitea-db
    environment:
      - POSTGRES_USER="gitea_db user id"
      - POSTGRES_PASSWORD="gitea_db user password"
      - POSTGRES_DB=gitea
    networks:
      - gitea
    volumes:
      - /volume1/docker/gitea/postgres:/var/lib/postgresql/data

중요:

  • giteauser, giteapassword를 본인이 사용할 사용자명과 비밀번호로 변경해야 한다.
  • 데이터 경로(/volume1/docker/gitea/)는 NAS에 맞게 조정한다.

Gitea와 PostgreSQL 컨테이너가 자동으로 생성되어 실행된다.


Gitea 초기 설정

웹 브라우저를 열고 http://NAS_IP:3000 으로 접속한다.

  • Database Type: PostgreSQL 선택
  • Database Host: db:5432 입력
  • Database Name, User, Password: docker-compose.yml에 설정한 값 입력
  • 관리자 계정 생성 후 설치 완료

이제 Synology NAS에서 개인 Git 서버 운영을 시작할 수 있다.


Docker 설치 방식과 Docker Compose 방식의 비교

구분Docker 단독 설치Docker Compose 설치
설치 난이도중간쉬움
유지보수 편의성낮음높음
데이터베이스 설정기본 SQLite 권장PostgreSQL 통합 가능
재설치/복구번거로움yaml 파일로 간단 재구성 가능

장기적으로 관리하려면 Docker Compose 방식을 선택하는 것이 유리하다.


Synology NAS Gitea 설치 후 추가 고려사항

  • HTTPS 설정: DSM Reverse Proxy 기능을 통해 SSL 인증서 적용 가능
  • 자동 백업: /docker/gitea/data 디렉토리를 주기적으로 백업
  • 외부 접근 제한: 방화벽 규칙 추가 또는 IP 제한 설정
  • Webhook 사용: 프로젝트 자동화 및 CI/CD 연동 가능

결론

Synology NAS에 Gitea를 설치하면 메모리 부담 없이 가볍고 강력한 Git 서버를 구축할 수 있다.
Docker Compose를 이용하면 설치, 유지보수, 백업 모두 간편하게 관리할 수 있다.
이제 나만의 Git 저장소를 구축하고 프로젝트 버전 관리를 손쉽게 시작해보자.

답글 남기기