--- 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 ๋ฐฉ์‹์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ํŒŒ์ผ ๊ด€๋ฆฌ ์ค‘.