- trash.wxn.co.kr HTTPS (Let's Encrypt) 적용 - gitea.wxn.co.kr HTTPS 도메인 연동 - SSH 터널 방식 → HTTPS 도메인 직접 push 방식으로 변경 - DNS/SSL 설정 정보 추가 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
4.3 KiB
4.3 KiB
서버 배포 가이드
서버 정보
| 항목 | 값 |
|---|---|
| 서버 IP | 116.122.157.166 |
| OS | Ubuntu 22.04.5 LTS |
| SSH 접속 | ssh wixon@116.122.157.166 (비밀번호: 1111) |
| 웹 도메인 | https://trash.wxn.co.kr |
| Gitea 도메인 | https://gitea.wxn.co.kr |
| 호스팅 | 카페24 (qm391-0435.cafe24.com) |
Gitea (Git 서버)
| 항목 | 값 |
|---|---|
| 외부 URL | https://gitea.wxn.co.kr |
| 내부 URL | http://localhost:3001 |
| 컨테이너 | gitea (Docker) |
| 관리자 계정 | wixon / wixon1234! |
| 관리자 이메일 | admin@wxn.co.kr |
| 레포 URL (내부) | http://localhost:3001/wixon/jongryangje |
| SSH 포트 (내부) | 2222 |
| DB | SQLite (/srv/gitea/data/gitea/gitea.db) |
| 데이터 경로 | /srv/gitea/data |
| docker-compose | /srv/gitea/docker-compose.yml |
Gitea 관리 명령
# 컨테이너 상태 확인
sudo docker ps | grep gitea
# 재시작
cd /srv/gitea && sudo docker compose restart
# 로그 확인
sudo docker logs gitea --tail 50
# 사용자 추가
sudo docker exec -u git gitea gitea admin user create \
--username <name> --password <pass> --email <email> --admin
웹 서비스 구조
[클라이언트] → [NPM (80/443)] → [nginx (8045)] → [PHP-FPM 8.2] → [CodeIgniter 4]
↓
[MySQL 3.36.27.239]
| 컴포넌트 | 포트 | 설명 |
|---|---|---|
| Nginx Proxy Manager | 80/443 | 도메인 프록시 (Docker) |
| nginx | 8045 | PHP-FPM 연동 vhost |
| PHP-FPM 8.2 | unix socket | /run/php/php8.2-fpm.sock |
| Gitea | 3001 | Git 서버 (Docker) |
| MySQL | 3306 (원격 3.36.27.239) | 데이터베이스 |
프로젝트 배포 경로
/srv/jongryangje/ # 프로젝트 루트 (git clone)
/srv/jongryangje/public/ # nginx document root
/srv/jongryangje/.env # 환경 설정 (gitignore)
/srv/gitea/ # Gitea Docker 설정
nginx 설정
/etc/nginx/sites-available/jongryangje # vhost 설정
/etc/nginx/sites-enabled/jongryangje # symlink
NPM 프록시 설정
NPM 컨테이너 내부에서 trash.wxn.co.kr → 116.122.157.166:8045 프록시:
/data/nginx/proxy_host/7.conf
자동 배포 (CI/CD)
플로우
[로컬 git push] → [Gitea] → [Webhook (port 9000)] → [deploy.sh] → [git pull + composer install]
관련 파일
| 파일 | 용도 |
|---|---|
/srv/jongryangje/deploy.sh |
배포 스크립트 (git pull + composer) |
/srv/jongryangje/webhook-server.sh |
Webhook 수신 서버 |
/etc/systemd/system/jongryangje-webhook.service |
Webhook systemd 서비스 |
/srv/jongryangje/writable/logs/deploy.log |
배포 로그 |
배포 명령
# 수동 배포
ssh wixon@116.122.157.166 "/srv/jongryangje/deploy.sh"
# 자동 배포 (로컬에서 push만 하면 됨)
git push gitea main
# 배포 로그 확인
ssh wixon@116.122.157.166 "tail -20 /srv/jongryangje/writable/logs/deploy.log"
# webhook 서비스 상태
ssh wixon@116.122.157.166 "sudo systemctl status jongryangje-webhook"
로컬 Git 설정
Remote 목록
| Remote | URL | 용도 |
|---|---|---|
origin |
github.com/wixon-associates/jongryangje |
GitHub (메인) |
gitea |
gitea.wxn.co.kr/wixon/jongryangje |
서버 배포용 (HTTPS) |
push 방법
# GitHub + Gitea 동시 push (Gitea push 시 자동 배포)
git push origin main && git push gitea main
DNS / SSL 설정
| 도메인 | A 레코드 | SSL |
|---|---|---|
trash.wxn.co.kr |
116.122.157.166 |
Let's Encrypt (자동 갱신) |
gitea.wxn.co.kr |
116.122.157.166 |
Let's Encrypt (자동 갱신) |
SSL 인증서 경로:
/etc/letsencrypt/live/trash.wxn.co.kr//etc/letsencrypt/live/gitea.wxn.co.kr/
서비스 관리
# nginx 재시작
sudo systemctl restart nginx
# PHP-FPM 재시작
sudo systemctl restart php8.2-fpm
# Gitea 재시작
cd /srv/gitea && sudo docker compose restart
# NPM 재시작
sudo docker restart nginx-proxy-manager
# Webhook 재시작
sudo systemctl restart jongryangje-webhook
# 전체 상태 확인
sudo systemctl status nginx php8.2-fpm jongryangje-webhook
sudo docker ps