# Gitea 수동 배포 ## 기준 정보 - Gitea 웹: `https://gitea.hmac.kr/b24014/egbim_homepage` - 앱 배포 대상: `172.16.10.175:8071` - Git 원격: `https://gitea.hmac.kr/b24014/egbim_homepage.git` - 실행 방식: `git push` 후 Gitea Actions 에서 수동 실행 ## 1. 로컬 저장소 초기화 ```bash cd /home/b24014/egbim git branch -m main git remote remove origin 2>/dev/null || true git remote add origin https://gitea.hmac.kr/b24014/egbim_homepage.git ``` 현재 원격 확인: ```bash git remote -v ``` 예상 결과: ```text origin https://gitea.hmac.kr/b24014/egbim_homepage.git (fetch) origin https://gitea.hmac.kr/b24014/egbim_homepage.git (push) ``` ## 2. 첫 푸시 ```bash cd /home/b24014/egbim git add . git commit -m "Initial import" git push -u origin main ``` HTTPS 인증이 필요하면 Gitea 사용자 계정과 토큰 또는 비밀번호를 사용한다. ## 3. Gitea Actions 수동 배포 저장소에 추가된 워크플로 이름은 `Manual Deploy` 이다. Gitea 저장소 화면에서 아래 순서로 실행한다. 1. `Actions` 로 이동 2. `Manual Deploy` 선택 3. `Run workflow` 클릭 4. `branch` 와 `target_dir` 확인 후 실행 워크플로는 서버에 SSH 접속해서 지정 디렉터리에 소스를 동기화하고 `docker compose up -d --build` 를 수행한다. ## 4. Gitea Secrets 수동 배포 전에 아래 시크릿을 Gitea 저장소에 등록해야 한다. - `DEPLOY_HOST`: 예) `172.16.10.175` - `DEPLOY_PORT`: 예) `22` - `DEPLOY_USER`: 서버 SSH 계정 - `DEPLOY_SSH_KEY`: 배포용 개인키 전체 내용 필요하면 아래도 변수로 바꿀 수 있다. - `target_dir`: 서버 배포 경로, 기본값 `/srv/egbim_homepage` - 서버 `.env` 안의 `APP_PORT=8071` ## 5. 서버 준비 조건 - 서버에 `git`, `docker`, `docker compose` 가 설치되어 있어야 한다. - 배포 경로에 쓰기 권한이 있어야 한다. - 서비스 포트 `8071` 이 외부에서 접근 가능해야 한다. - 서버 배포 경로의 `.env` 파일에 운영값이 들어 있어야 한다. - `egbim/img` 는 CDN 대체 대상이므로 Git 배포 대상에서 제외된다. 운영 `.env` 예시: ```text APP_ENV=production APP_PORT=8071 DB_PORT=3307 G5_MYSQL_DB=egbim G5_MYSQL_USER=egbim G5_MYSQL_PASSWORD= MARIADB_ROOT_PASSWORD= COMPOSE_PROJECT_NAME=egbim ``` ## 6. 이후 배포 반영 일반 작업: ```bash cd /home/b24014/egbim git add . git commit -m "" git push origin main ``` 그 다음 Gitea 에서 `Manual Deploy` 만 다시 실행하면 된다. ## 7. 관리자 확인 필요 항목 - 저장소 `b24014/egbim_homepage` 가 이미 생성되어 있는지 - `main` 브랜치 push 권한이 있는지 - Gitea Actions 가 활성화되어 있는지 - 서버에 배포용 SSH 키가 허용되어 있는지 ## 8. 빠른 점검 명령 원격 정보 확인: ```bash git remote show origin ``` 로컬 compose 확인: ```bash docker compose config ```