NAS

사내 NAS 도입 (10) - Gitea 설치

GRONG 2023. 1. 26. 14:36

Gitea 설치 썸네일

저번 포스팅에서 Docker와 Portainer를 설치해 봤습니다
서비스를 설치하기 위한 준비가 끝났으니 이번 포스팅에서는 이를 활용하여
시놀로지 NAS에 Gitea를 설치해 보겠습니다

※이 글은 http://bit.ly/3XRoTPO를 기반으로 작성했습니다
간단한 영어만 되면 충분히 따라가실 만한 가이드입니다만, 혹시 한국어 가이드가 필요하신 분들을 위해 글을 남깁니다

Gitea 주소 부여

[제어판] - [로그인 포털] - [고급] - [역방향 프록시] - [생성]으로 갑니다

저번에 역방향 프록시를 설정했던 거 기억나시나요?
VIP 고객이 들어오면 미리 예약된 개인 맞춤실로 안내하는 게 역방향 프록시이니
http 3052 포트를 타고 오면 gitea.agosdev.synology.me로 안내해 주는 설정을 추가해 줍니다

gitea 역방향 프록시 설정

  • 역방향 프록시 이름 : Gitea(원하시는 이름 넣어주세요~)
  • 소스
    • 프로토콜 : https
    • 호스트 이름 : 앞에는 원하시는 이름 넣어주시고 점찍은 후에 발급받은 DDNS 주소 넣어주세요
    • 포트 : 443
    • HSTS 활성화 : 체크!
  • 대상
    • 프로토콜 : http
    • 호스트 이름 : localhost
    • 포트 : 3052

입력해 주시고 아직 저장은 하지 말아 주세요

[사용자 지정 머리글] 탭에 가서 [생성] - [WebSocket]을 선택하시면 알아서 값이 나옵니다
그대로 저장 눌러주세요

websocket 생성 websocket 생성완료

HTTP 옵션 설정

[제어판] - [네트워크] - [연결성]에 가서 [HTTP/2 활성화] 체크!

http/2 활성화

이번에는 [보안] - [고급] - [HTTP 압축 활성화] 체크!

http 압축 활성화

Gitea 설치

이제 [파일 스테이션]으로 가서

docker 폴더 내부에 gitea 폴더를 만들어 주겠습니다

gitea 폴더 생성

그 아래에 다시 datadb 2개의 폴더를 만들게요

data, db 폴더 생성


이제 http://시놀로지IP주소:9000에 접속해 Portainer로 이동하겠습니다

portainer 접속

Home 화면에 있는 저 모양을 클릭!

add stack 경로

좌측에 [Stacks] 탭에서 [+Add stack]을 눌러줍니다

create stack 화면

보이는 화면에서 Name에는 gitea(원하는 이름 넣어주세요) 기입해 주시고
[Web editor] 선택해 주신 후에

Web editor란에 아래 내용을 복사 붙여 넣기 해주시면 됩니다

version: "3.9"
services:
  db:
    image: postgres
    container_name: Gitea-DB
    hostname: gitea-db
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: ["CMD", "pg_isready", "-q", "-d", "Database", "-U", "user"]
      timeout: 45s
      interval: 10s
      retries: 10
    user: 1026:100
    volumes:
      - /volume1/docker/gitea/db:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=gitea
      - POSTGRES_USER=giteauser
      - POSTGRES_PASSWORD=giteapass
    restart: always

  web:
    image: gitea/gitea:latest
    container_name: Gitea
    hostname: gitea
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:3000/ || exit 1
    ports:
      - 3052:3000
      - 2222:22
    volumes:
      - /volume1/docker/gitea/data:/data
      - /etc/TZ:/etc/TZ:ro
      - /etc/localtime:/etc/localtime:ro
    environment:
      - USER_UID=1026
      - USER_GID=100
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=gitea-db:5432
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=giteauser
      - GITEA__database__PASSWD=giteapass
      #- GITEA__mailer__ENABLED=true
      #- GITEA__mailer__FROM=
      #- GITEA__mailer__MAILER_TYPE=smtp
      #- GITEA__mailer__HOST=
      #- GITEA__mailer__IS_TLS_ENABLED=true
      #- GITEA__mailer__USER=
      #- GITEA__mailer__PASSWD=
    restart: always

※여기서 USER_UID와 USER_GID는 각자의 값으로 변경해주어야 합니다

uid, gid 확인해야할 사항

이 값을 알아보는 방법은 이 글을 참고해서 알아봐 주세요

알아낸 값으로 값을 변경해 주신 후에

deploy the stack 버튼

[Deploy the slack]을 누르면 Gitea가 설치됩니다

잘 됐다면 우측 상단에서 알림을 볼 수 있습니다

스택 생성 성공 알림

설치가 잘 된 것 같으니 마지막으로 외부포트를 좀 정리해 보도록 할게요
같은 와이파이 내에서 gitea를 쓰는 건 이상이 없었는데
밖에서 gitea로 접속하려니 꼬이는 일이 있었어요

저와 같은 설정으로 진행을 하셨다면 

  • 로컬포트 2222 → 컨테이너 포트 22
  • 로컬포트 3052 → 컨테이너 포트 3000

가 연결되어 있을 거예요

만약 다른 설정으로 설치를 진행하셨다면

DSM 도커 선택 장면

DSM에 [Docker]로 들어가서

컨테이너에서 Gitea 선택

[컨테이너] - [Gitea]:더블 클릭! 해주세요

Gitea 포트 설정 확인

그럼 현재 Docker에서 굴러가고 있는 Gitea의 정보가 나옵니다

여기서 포트 설정이 어떻게 되어 있는가 보시고

포트 설정을 기반으로 포트포워딩

공유기 관리자에 가서 동일한 옵션으로 포트를 열어주세요

포트를 연다는 말이 어떤 말인지 모르시겠다면

2023.01.19 - [NAS] - 사내 NAS 도입 (7) - 포트포워딩, DDNS, Let's Encrypt 인증서

 

사내 NAS 도입 (7) - 포트포워딩, DDNS, Let's Encrypt 인증서

지금까지의 설정은 NAS 내부의 설정이었다면 이제부터는 NAS 밖에서 안으로 접근하는 외부 액세스 방법들을 설정할 겁니다 퀵 커넥트, DDNS, Let's Encrypt 인증서 등의 용어가 뭔지 몰라도 설정이 가

devgrong.tistory.com

이 글의 포트포워딩 부분을 참고하세요!

Gitea 설정

브라우저를 열고 주소창에 https://gitea.역방향프록시설정값.synology.me를 쳐주세요
맨 위에 Gitea 주소 부여를 위해 역방향 프록시에서 설정해 줬던 주소를 입력하시면 됩니다

여기까지 설치가 잘 됐다면 아래처럼 Gitea의 첫 설정 페이지를 볼 수 있습니다

gitea 첫 설정 페이지

여기서 위쪽의 [Database Settings]는 건들지 않아도 됩니다

아래로 쭉 스크롤해서
[General Settings]에서 [Site Title]에 여러분이 원하는 이름 넣어주시고

gitea 이름, 주소 설정

[Gitea Base URL]에 저희가 주소창에 쳤던 주소인 https://gitea.역방향프록시설정값.synology.me를 입력하시고 

[Install Gitea]를 눌러주세요!

눌렀을 때 이런 페이지가 보는 건 정상입니다

gitea 설정 후 오류

다시 새로고침 해주시면 아래 같은 화면이나
(색깔은 브라우저 테마에 따라 다릅니다)

gitea index 화면

로그인하라는 페이지가 나올 텐데

gitea sign in

저희는 아무런 계정도 없으니 만들어 보겠습니다

※첫 번째로 만드는 계정이 관리자 계정입니다!

gitea register

  • Username에 원하는 ID
  • Email Address에는 사용하시는 이메일
  • Password에 원하는 값

[Register Account]를 눌러주세요

gitea 로그인 완료

뭔가 덜 복잡한 Github 같은 화면이 나오면 이제 사용할 준비가 끝난 겁니다!👏👏👏

Gitea 사용해 보기

우측 상단에 [+] - [New Repository]를 클릭

gitea new repository

새로운 Repository를 만들어보죠

new repository 설정

Repository Name, Description 적어주시고
Initialize Repository 체크✅
[Create Repository] 눌러주시면 생성 완료!

첫 번째 레포 생성 완료

이제 레포지토리를 수정해 보죠

저는 test 폴더를 하나를 미리 만들어뒀습니다

테스트 폴더

사용하시는 터미널 아무거나 가셔서

경로 맞춰주시고 git clone 해주시면 됩니다

테스트 폴더 깃 클론

클론이 잘 됐다고 나오네요!

리드미 파일 열기

README.md 파일을 수정하고 다시 커밋, 푸시까지 해보겠습니다

리드미 파일 수정

저는 이렇게 내용을 바꾸고 저장했습니다

git add, commit, push

흔히 하던 대로 깃 과정을 거치고 push를 하게 되면

git credential manager login

로그인 창이 나오게 됩니다
여기에는 아까 만들었던 아이디와 비번을 입력하면 됩니다

로그인이 정상적으로 이루어지면 push가 됩니다

git push success

이제 Gitea의 페이지에서 확인해 보죠

첫 레포지토리 수정 사항 반영 완료

잘 반영이 됐네요!

이제부터는 알던 대로 Git 서비스를 사용하시면 됩니다👍


이렇게 로컬 컴퓨터시놀로지 내부의 도커 상에서 돌아가는 Gitea의 연동을 마쳤습니다
여기까지 세팅만 하셨어도 셀프 호스트 깃 서비스를 사용하기에는 손색이 없죠

다만 저희 회사는 좀 특이한 걸 요구하는 상황입니다
로컬 컴퓨터와 Gitea의 연동이 아니라 시놀로지 하드 드라이브 내부에서 직접 Git을 사용하는 것
이걸 위해서 몇 가지 세팅을 더 해주도록 하겠습니다


도움이 됐으면 좋겠습니다
질문, 지적 댓글 남겨주세요

좋은 하루 되세요😉