한줄명령
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git&&sudo mkdir -p /var/lib/gitea/{custom,data,log} &&sudo chown -R git:git /var/lib/gitea/ &&sudo chmod -R 750 /var/lib/gitea/ &&sudo mkdir /etc/gitea &&sudo chown root:git /etc/gitea &&sudo chmod 770 /etc/gitea&&echo 'export GITEA_WORK_DIR=/var/lib/gitea/' >> ~/.bashrc&&export GITEA_WORK_DIR=/var/lib/gitea/
sudo wget -O gitea https://dl.gitea.io/gitea/1.22.3/gitea-1.22.3-linux-amd64&&sudo chmod +x gitea&&sudo mv gitea /usr/local/bin파일 추가
sudo vi /etc/systemd/system/gitea.service
[Unit]
Description=Gitea (Git with a cup of tea)
After=network.target
[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.targetsudo systemctl enable gitea --nowNginx 설치 및 설정
Nginx 설치
sudo apt install -y nginxSSL 임시 인증 처리
sudo mkdir /etc/nginx/ssl && cd /etc/nginx/ssl && sudo gitea cert --host git.lhk.o-r.kr #임시 키Nginx 설정파일 작성
sudo vi /etc/nginx/sites-available/giteaserver {
listen 80;
server_name git.lhk.o-r.kr;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name git.lhk.o-r.kr;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Nginx 설정 적용 및 테스트 및 재시작
sudo ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled/ && sudo nginx -t
sudo systemctl reload nginx여기서 재부팅 후 최초 설치 한 다음 작업
SSL 인증 및 재인증 자동화 처리
# Nginx 플러그인
sudo apt install -y python3-certbot-nginx
# --nginx 옵션을 이용해 certbot이 nginx 리로드를 자동으로 수행하게 설정
sudo certbot --nginx -d git.lhk.o-r.krGitea 재설정
app.ini 파일 수정
sudo vi /etc/gitea/app.ini[server]
PROTOCOL = http
HTTP_ADDR = 127.0.0.1
SSH_DOMAIN = git.lhk.o-r.kr
DOMAIN = git.lhk.o-r.kr
HTTP_PORT = 3000
ROOT_URL = https://git.lhk.o-r.kr/
APP_DATA_PATH = /var/lib/gitea/data
DISABLE_SSH = false
SSH_PORT = 22
OFFLINE_MODE = false
[service]
DISABLE_REGISTRATION = true
REQUIRE_SIGNIN_VIEW = true
EMAIL_DOMAIN_ALLOWLIST = saehanjsoft.co.kr
[i18n]
LANGS = ko-KR
NAMES = 한국어
[time]
DEFAULT_UI_LOCATION = Asia/Seoul
[webhook]
ALLOWED_HOST_LIST = *서비스 재시작
sudo systemctl restart gitea자동 업데이트 처리
sudo rm /usr/lib/python3.12/EXTERNALLY-MANAGED && sudo apt install -y python3-pip && sudo pip3 install gitea-auto-update && cd ~ && mkdir gitea-auto-update && sudo vi /home/ubuntu/gitea-auto-update/settings.ini[Gitea]
site=https://git.lhk.o-r.kr/api/v1/version
apiUrl=https://api.github.com/repos/go-gitea/gitea/releases/latest
system=linux-amd64
file=/usr/local/bin/gitea
tmpDir=/tmp/
buildFromSource=
sourceDir=
logFile=update.logsudo crontab -e매주 일요일 새벽 3시에 업데이트
0 3 * * 0 gitea-auto-update --settings=/home/ubuntu/gitea-auto-update/settings.ini크론탭 재실행
sudo service cron restart