
여기서 사용되는 CLI 는 대부분 Window Powershell 입니다.
Gitea 서비스 등록할때만 cmd 를 사용합니다.
일단 gitea 설치를 위해서 https://about.gitea.com/pricing/ 에 접속한다.
그러면 아래 화면이 나올 거다.

여기서 Free 쪽에 있는것을 다운로드 받으면 된다.
github 에서 특정버전으로 다운로드 받고 싶으면 아래 url 로 접속
https://github.com/go-gitea/gitea/releases
이후 파일을 받으면 하나의 exe 파일을 받는데, 곧바로 실행하지 말자.
C:\ 하부에 gitea 라는 디렉토리를 생성한다. gitea-1.26.2-gogit-windows-4.0-amd64.exe)gitea.exe 로 단축키신다.
이 상태에서 gitea.exe 를 관리자 권한으로 실행한다.
그러면 cmd 창이 켜지면서 gitea 가 실행된 것을 확인할수 있다.

이제 http://localhost:3000 로 접속해서 관리자 계정 생성 및 기본 세팅을 진행한다.
관리자 화면에서 바꿀 건 딱 가지다.

나는 딱히 database 가 설치된 상황이 아니여서 그냥 SQLite3 를 지정했다.

스크롤을쭉 내리면 운영자 계정 생성 section 이 있다.
그 안에서 운영자 계정을 생성해준다. 이후에 Gitea 설치하기 버튼을 클릭한다.
앞서 gitea.exe 를 더블 클릭했을 때 나온 콘솔 화면에서 마우스 클릭후
ctrl + c 를 연타해서 일단 gitea 서버를 강제 종료시킨다.
gitea 는 한번 실행하면 기본적으로 app.ini 라는 설정 파일을 생성한다.
지금부터 자동 생성된 C:\gitea\custom\conf\app.ini 파일을 수정할 것이다.
이 파일을 수정하기 앞서서 먼저 간단하게 파일 구조를 알아보자.
ini 파일의 맨위는 General 한 gitea 의 정보들 (ex: APP_NAME)이 있고,
그 아래로는 각 상세 설정들이 [database], [repository], [server], [log] 처럼 대괄호로 섹션이 구분된다. (아래 그림 참조)
우리는 이런 섹션들 중에서 [server], [log] 를 수정할 것이다.
[server] 는 고정 IP 와 SSH 설정을 위해 설정을 수정할 것이고,[log] 는 console 로그 뿐만아니라, 파일 로그도 생성되도록 설정을 바꿀 것이다.[server] 섹션 수정참고로 gitea 를 설치한 PC가 192.168.0.249 고정 IP 를 사용하고 있다.
해당 고정 IP 값을 사용해서 아래와 같이 [server] 섹션 내용을 수정해야 한다.
아래 그림을 참조해보자. (그림 클릭하면 크게 보입니다)
변경 상세:
SSH_DOMAIN, DOMAIN, ROOT_URL : 모두 고정 IP 로 수정. (포트번호는 바꾸지 마세요)START_SSH_SERVER = true : 라인 추가DISABLE_SSH = false : 내용 확인SSH_PORT = 2222 : 포트번호 수정SSH_LISTEN_PORT = 2222 : 라인 추가이후에 powershell 을 통해서 미리 방화벽도 열어준다.
New-NetFirewallRule -DisplayName "Gitea SSH" -Direction Inbound -Protocol TCP -LocalPort 2222 -Action Allow
[log] 섹션 수정아래처럼 MODE 에 file 을 추가한다. 디버그 레벨은 자유다.
나는 debug 로 레벨을 낮췄다.
[log]
MODE = console, file
LEVEL = debug
ROOT_PATH = C:/gitea/log
추후에 우리는 [server] 섹션에서 지정한 ssh 서버에 접속하기 위해서는
IP 뿐만아니라 접속하는 계정도 알아야 한다.
이 계정은 app.ini 파일 상단에 있는 RUN_USER 의 값을 사용한다.
잘 기억해두자.
나의 경우에는 아래처럼 toastbread 라고 RUN_USER 가 지정되어 있다.
입력이 완료됐으면 다시 gitea.exe 를 더블 클릭해서 다시 실행해본다.
실행이 잘되면 설정 정보가 잘 먹힌 것이다.
마지막으로 gitea 서버를 컴퓨터가 재기동 시 자동으로 실행되도록 서비스로 등록한다.
cmd 를 관리자 권한으로 실행하고 아래와 같이 입력한다.
(주의: Window Powershell 이 아니라 CMD 다!!)
sc.exe create gitea start= auto binPath= "\"C:\gitea\gitea.exe\" web --config \"C:\gitea\custom\conf\app.ini\""
자, 이제 gitea 가 설치되지 않은 개인 로컬 PC 에 와서 아래와 같은 작업을 한다.
여기서 ssh 통신이 되도록 하겠다.
먼저 window powershell 을 실행시키고 아래와 같이 입력한다.
# 먼저 아래 파일이 있는지 확인한다.
ls ~\.ssh\id_ed25519.pub
# 없다면 생성해준다. -C 뒤에는 적절하게 자기 이메일을 작성해주자.
ssh-keygen -t ed25519 -C "toastbread@example.com" # 이후에 Enter 연타
# 이후에 생성된 id_ed25519.pub 파일의 내용을 조회하고, 어딘가에 복사해둔다.
cat ~\.ssh\id_ed25519.pub
이후에 gitea 에 브라우저를 통해서 접근한다.
나는 gitea 가 설치된 PC 가 192.168.0.249 IP 를 사용해서 아래처럼 접근했다.
로그인한 후에 우측 상단의 아이콘을 누르고, 설정 메뉴를 클릭한다.

이후에 SSH / GPG 키 --> 키 추가 버튼을 클릭한다.

앞서 cat ~\.ssh\id_ed25519.pub 를 통해서 출력된 내용을 그대로 컨텐츠 입력란에 복사하고 키 추가 버튼을 클릭한다.

이제 로컬 PC 에서 아래와 같이 작업한다.
edit ~\.ssh\config
# edit 은 window 용 vim 이라고 생각하면 됩니다.
내용을 아래와 같이 작성한다.
Host gitea
HostName 192.168.0.249
User toastbread
Port 2222
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
참고로 위 내용은 나의 경우에 맞는 것이고, 여러분들의 경우에는
HostName : Gitea 가 설치된 서버의 고정 IP 를 적는다.User : app.ini 파일 상단에 있는 RUN_USER 의 값을 준다.Port : app.ini 파일을 수정할 때 2222로 바꿨으니 맞춰준다.이제 powershell 에서 마지막으로 아래와 같이 입력해서 통신 테스트를 한다.
ssh -T gitea
대충 아래와 같이 나오면 성공한 거다.
Hi there, ***! You've successfully authenticated with the key named ***, but Gitea does not provide shell access.
If this is unexpected, please log in with password and setup Gitea under another user.
로컬 PC 에서 계속 작업을 진행해보자. 이제 repository 를 클론받자.
clone 받고자 하는 git repository 에 접속해서 ssh url 을 복사해온다.

복사한 경로는 아마 아래와 비슷한 형태일 것이다.
ssh://toast@192.168.0.249:2222/user123/my-test.git
여기서 ssh://toast@192.168.0.249:2222/ 부분을 gitea: 로 수정해서 사용하면 된다.
아래 예시를 참고하자.
git clone gitea:user123/my-test.git
이렇게 clone 받으면 이후에는 아무런 인증 없이 clone, pull, push 이 가능하게 된다.