Self hosted Gitea 구축하기 (시놀로지)
이번 시간에는 Self hosted Service Gitea에 대해서 설명하고자 합니다. 가볍고 Go 언어로 작성되어있기때문에 경략화와 빠른 속도를 자랑합니다. 도커를 사용하는 시스템이라면 자체 도메인연결로 호스팅도 가능합니다.
대부분의 사용자가 시놀로지를 사용하기에 그에 맞는 상황으로 정리 하겠습니다.
시놀로지에서
폴더 생성 및 역방향프록시 설정은 제외하였습니다. (도커 사용할 실력자라면 아실듯)
docker-compose.yml (portainer stack에서 하셔도 됩니다.)
아래의 내용은 샘플입니다. 사용자에 맞도록 수정하세요.
version: "3.8"
services:
db:
image: postgres:14
container_name: gitea-db
restart: unless-stopped
hostname: gitea-db
environment:
POSTGRES_USER: gitea
POSTGRES_PASSWORD: strongpassword
POSTGRES_DB: giteadb
volumes:
- /volume1/docker/gitea/postgres:/var/lib/postgresql/data
tmpfs:
- /tmp
security_opt:
- no-new-privileges:true
read_only: true
healthcheck:
test: ["CMD-SHELL", "pg_isready -U gitea"]
interval: 10s
timeout: 5s
retries: 5
gitea:
image: gitea/gitea:latest
container_name: gitea
hostname: gitea
restart: unless-stopped
depends_on:
db:
condition: service_healthy
environment:
- USER_UID=1026
- USER_GID=100
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=giteadb
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=strongpassword
- ROOT_URL=https://gitea.사용자도메인
volumes:
- /volume1/docker/gitea/web:/data
security_opt:
- no-new-privileges:true
ports:
- "3053:3000" # Web UI
- "22222:22" # SSH 접속 시놀로지 사용자라면 ssh 부분포트적용
user: "1026:100"
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:3000/ || exit 1"]
interval: 15s
timeout: 5s
retries: 5
- UID / GID 부분은 대부분 시놀로지 사용자는 admin 권한그룹 사용자가 많기 때문에 혹시 우분투 등에서 docker권한을 나눠준 사용자가 해당 yml파일을 생성할 경우는 UID /GID 변경하셔야합니다.
- SSH 접속 포트 부분 내용입니다. 22222:22 뒤부분의 22는 아마도 시놀로지 사용자라면 SSH를 22 말고 다른 포트 사용하실테니 그 포트를 적어두세요.
초기세팅
portainer 에서 stack하고 나면, ROOT_URL에서 지정한 도메인으로 접속하면 초기 세팅 부분이 나옵니다.




사용자를 추가 받지 않으려면
/data/gitea/conf/app.ini 파일 안에 내용 중 아래의 내용을 false -> true 로 변경하면된다.

수정하고 container 를 restart 해준다.
ssk-key 등록 해서 ssh git push 하자
key 생성
ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/gitea10
gitea10 이라는 키가 생성됩니다.
ls -l ~/.ssh/
를 터미널에서 입력하면 생성된 키를 확인 할 수 있습니다. 키를 만들면 2개의 파일이 생성됩니다. "gitea10 , gitea10.pub" pub 파일을 공개키입니다.
agent 추가
ssh-add ~/.ssh/gitea10
이렇게 하면 agent에 추가됩니다. 주의 가끔 맥에서 추가된것이 사라짐? 발생하는 경우가 있으니 아래의 작업을 합니다.
日本語ーマシンを再起動すると消えるのでその場合、再度ssh-addする必要がある。それを防止方法は以下になります。
vscode를 사용한다면 터미널에서 code ~/.ssh/config
Host gitea도메인
User git
HostName gitea도메인
Port 22222
IdentityFile ~/.ssh/gitea10
IdentitiesOnly yes
AddKeysToAgent yes
UseKeychain yes
설명1 : AddKeysToAgent yes와 UseKeychain yes는 SSH 클라이언트가 키를 자동으로 SSH 에이전트에 추가하고, macOS Keychain과 연동하도록 하는 설정입니다.
설명2 : Port 22222 <- yml 에서 지정한 포트
ssh-add -l
명령어로 agent에 추가 되었는지 확인하자.
key 복사하고 gitea 설정에 넣자
터미널에서 $ pbcopy < ~/.ssh/gitea10.pub
키를 클립보드에 복사한다.
아니면 cat ~/.ssh/gitea10.pub
해서 화면에 나온것을 복사해도된다.

다시 터미널로 넘어와서 config에서 지정한 hostname으로 ssh접속을 시도 해보자.

뭔가 많이 나오는데 Successfully 라는 부분이 나오기 때문에 gitea10 개인키로 만든 gitea에 접속이 가능하게 되었다. 이제 ssh로 push 도 가능하다.