
⸻
🧩 1. 기본 개념
• Gitea Actions = CI/CD 시스템 (GitHub Actions와 거의 동일)
• Gitea Runner = 실제 작업(Job)을 수행하는 워커(Worker)
즉, Gitea 서버가 “어떤 파이프라인을 돌려야 하는지”를 지시하면,
Runner가 실제로 코드를 빌드·테스트·배포 등의 명령을 실행
⸻
⚙️ 2. 구성 방식
보통 Gitea Actions은 다음 구조로 구성됩니다:
Gitea Server --- 명령 발행 ---> Gitea Runner --- 실제 실행 ---> 서버/컨테이너
• Gitea Server: .gitea/workflows/*.yaml 파일을 읽어 Job을 생성
• Gitea Runner: Job을 받아 실제로 스크립트를 실행 (예: bash, docker, python 등)
⸻
🚀 3. 역할 요약
Job Executor .yaml 파일에 정의된 steps를 실제로 실행 (빌드, 테스트, 배포 등)
Agent 등록 Gitea 서버에 runner로 등록되어 “대기 상태” 유지
로그 수집 실행 결과 로그를 Gitea 웹 인터페이스에 전송
환경 격리 Docker 또는 로컬 환경에서 각 Job을 격리 실행 (예: --container 옵션)
💡 4. 참고 팁
• Gitea Runner는 서버에 직접 설치해야 합니다. (예: gitea-actions-runner 실행)
• 하나의 Runner는 여러 레포의 Job을 처리할 수 있습니다.
• Runner는 Docker 컨테이너 안에서도 띄울 수 있어요.
• 로컬 테스트용으로는 --no-daemon 옵션으로 직접 실행할 수도 있습니다.
⸻

## 🔍 배포 상태 확인 명령어 모음
### 📋 컨테이너 상태 확인
bash
# 전체 컨테이너 상태 확인
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "docker ps"
# 특정 컨테이너 상세 정보 확인
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "docker inspect gaon-nginx | grep NetworkMode"
### 🔧 서비스 헬스체크
bash
# 백엔드 API 상태 확인
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "curl -s http://localhost:8000/health"
# 프론트엔드 HTTP 헤더 확인
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "curl -s -I http://localhost:3000 | head -3"
# Nginx 프록시 상태 확인
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "curl -s -I http://localhost:8080 | head -3"
### 📊 로그 모니터링
bash
# 백엔드 로그 확인 (최근 5줄)
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "docker logs gaon-backend --tail 5"
# 프론트엔드 로그 확인 (최근 5줄)
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "docker logs gaon-frontend --tail 5"
# Nginx 로그 확인 (최근 10줄)
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "docker logs gaon-nginx --tail 10"
### 🌐 네트워크 진단
bash
# 포트 리스닝 상태 확인
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "ss -tlnp | grep 3000"
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "ss -tlnp | grep 8000"
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "ss -tlnp | grep 8080"
# 방화벽 상태 확인
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "sudo ufw status"
### 🔄 서비스 관리
bash
# 특정 서비스 재시작
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "cd /home/ubuntu/gaon && docker-compose -f docker-compose.prod.yml restart nginx"
# 전체 서비스 재시작
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "cd /home/ubuntu/gaon && docker-compose -f docker-compose.prod.yml restart"
# 서비스 중지
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "cd /home/ubuntu/gaon && docker-compose -f docker-compose.prod.yml down"
# 서비스 시작
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "cd /home/ubuntu/gaon && docker-compose -f docker-compose.prod.yml up -d"
### 🗂️ 파일 관리
bash
# 설정 파일 서버로 복사
scp -i ~/.ssh/gaon.key /path/to/nginx.conf ubuntu@<SERVER_IP>:/home/ubuntu/gaon/
scp -i ~/.ssh/gaon.key /path/to/docker-compose.prod.yml ubuntu@<SERVER_IP>:/home/ubuntu/gaon/
# 서버 파일 목록 확인
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "ls -la /home/ubuntu/gaon/"
### 🔍 종합 상태 확인 스크립트
bash
# 한 번에 모든 상태 확인
ssh -i ~/.ssh/gaon.key ubuntu@<SERVER_IP> "
echo '=== 컨테이너 상태 ===' && docker ps &&
echo '=== 백엔드 헬스체크 ===' && curl -s http://localhost:8000/health &&
echo '=== 프론트엔드 상태 ===' && curl -s -I http://localhost:3000 | head -2 &&
echo '=== Nginx 프록시 상태 ===' && curl -s -I http://localhost:8080 | head -2 &&
echo '=== 포트 리스닝 ===' && ss -tlnp | grep -E '(3000|8000|8080)'
"
📝 사용 전 설정:
• <SERVER_IP>: 실제 서버 IP 주소로 변경
• ~/.ssh/gaon.key: SSH 개인키 파일 경로
• /path/to/: 로컬 파일 경로로 변경
이 명령어들을 사용하면 배포된 서비스의 전체 상태를 빠르게 파악할 수 있습니다! 🎯