114 lines
3.1 KiB
Markdown
114 lines
3.1 KiB
Markdown
---
|
|
id: "gitea, qurtz 설치 20260331"
|
|
created: "2026-03-31 10:41"
|
|
tags:
|
|
---
|
|
# 🌐 개인 서버(GCP) 기반 Gitea & HTTPS 구축 가이드
|
|
|
|
본 문서는 Ubuntu 25.xx 환경에서 가벼운 Git 서비스인 **Gitea**를 설치하고, **Nginx**와 **DuckDNS**를 이용해 **HTTPS** 보안 접속을 구현한 과정을 정리합니다.
|
|
|
|
## 1. 서버 기본 환경 및 Gitea 설치
|
|
|
|
가장 가벼운 바이너리 실행 방식으로 Gitea를 설치하고 전용 사용자를 생성했습니다.
|
|
|
|
- **OS:** Ubuntu 25.xx (GCP Instance)
|
|
|
|
- **사용자 생성:** `git` 시스템 사용자 생성 (`/home/git`)
|
|
|
|
- **DB:** SQLite3 (경량화를 위해 선택)
|
|
|
|
- **바이너리 경로:** `/usr/local/bin/gitea`
|
|
|
|
- **데이터 경로:** `/var/lib/gitea`
|
|
|
|
|
|
---
|
|
|
|
## 2. 도메인 및 네트워크 설정
|
|
|
|
외부 접속을 위해 무료 DDNS 주소를 확보하고 클라우드 방화벽을 조정했습니다.
|
|
|
|
- **도메인:** `white-smith.duckdns.org` (GCP 외부 IP 연결 완료)
|
|
|
|
- **포트 개방 (GCP & UFW):**
|
|
|
|
- `22/tcp`: SSH 접속 (PuTTY, SFTP)
|
|
|
|
- `80/tcp`: HTTP (인증서 발급 및 리다이렉트용)
|
|
|
|
- `443/tcp`: HTTPS (실제 서비스용)
|
|
|
|
- **보안 조치:** 불필요한 포트(20, 21, 3389 등) 차단 및 Gitea 직접 포트(3000)는 Nginx를 거치도록 외부 차단 권장.
|
|
|
|
|
|
---
|
|
|
|
## 3. HTTPS & Nginx 리버스 프록시
|
|
|
|
Nginx를 앞단에 세워 보안을 강화하고 도메인 기반 접속을 구현했습니다.
|
|
|
|
### SSL 인증서 발급
|
|
|
|
`Certbot`을 이용해 **Let's Encrypt** 무료 SSL 인증서를 발급받았습니다.
|
|
|
|
Bash
|
|
|
|
```
|
|
sudo certbot --nginx -d white-smith.duckdns.org
|
|
```
|
|
|
|
### Nginx 최종 설정 (`/etc/nginx/sites-available/gitea`)
|
|
|
|
IP 접속 시 도메인으로 자동 전환되도록 설정했습니다.
|
|
|
|
Nginx
|
|
|
|
```
|
|
# 1. HTTP -> HTTPS 리다이렉트 (IP 포함)
|
|
server {
|
|
listen 80;
|
|
server_name 34.19.79.94 white-smith.duckdns.org;
|
|
return 301 https://white-smith.duckdns.org$request_uri;
|
|
}
|
|
|
|
# 2. HTTPS 서비스 블록
|
|
server {
|
|
listen 443 ssl;
|
|
server_name white-smith.duckdns.org;
|
|
|
|
# SSL 인증서 경로 (Certbot 관리)
|
|
ssl_certificate /etc/letsencrypt/live/white-smith.duckdns.org/fullchain.pem;
|
|
ssl_certificate_key /etc/letsencrypt/live/white-smith.duckdns.org/privkey.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;
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 4. Gitea 내부 설정 업데이트
|
|
|
|
HTTPS 환경에 맞춰 `/etc/gitea/app.ini` 파일을 `vi`로 수정했습니다.
|
|
|
|
- **ROOT_URL:** `https://white-smith.duckdns.org/`
|
|
|
|
- **DOMAIN:** `white-smith.duckdns.org`
|
|
|
|
- **SSH_DOMAIN:** `white-smith.duckdns.org`
|
|
|
|
|
|
---
|
|
|
|
## 5. 현재 상태 요약
|
|
|
|
1. **HTTPS 접속:** `https://white-smith.duckdns.org`로 안전하게 접속 가능.
|
|
|
|
2. **IP 리다이렉트:** `34.19.79.94` 입력 시 자동으로 도메인 주소로 전환됨.
|
|
|
|
3. **파일 전송:** 포트 22번을 통해 SFTP 방식으로 안전하게 파일 관리 중. |