Deploy Projects from Gitea Source with Coolify

Deploy Projects from Gitea Source with Coolify


조건 : Mkdocs를 이용하여 기술문서를 만들고 coolify를 사용해 배포합니다. 
이미 mkdocs 사용하여 기술문서를 작성하고, gitea 에 push 하였습니다. 보다 쉽게 배포하기 위해서 Dockerfile를 이용합니다. 

아래는 예시입니다.

아래는 예시입니다. (DockerFile) 관련 내용은 게시글 아래에 mkdocs deploy 관련글을 확인하세요.

```

=============================================================================MkDocs Flutter 문서 사이트 Dockerfile=============================================================================1단계: 빌드 환경

FROM python:3.11-slim as builder

작업 디렉토리 설정

WORKDIR /app

시스템 의존성 설치 (빌드 시에만 필요)

RUN apt-get update && apt-get install -y
git
build-essential
&& rm -rf /var/lib/apt/lists/*

Python 의존성 복사 및 설치

COPY requirements.txt .
RUN pip install --no-cache-dir --upgrade pip &&
pip install --no-cache-dir -r requirements.txt

프로젝트 파일 복사

COPY . .

MkDocs 빌드

RUN mkdocs build --clean

=============================================================================2단계: 운영 환경 (Nginx)=============================================================================

FROM nginx:alpine as production

메타데이터 라벨

LABEL maintainer="Heesung Jin (kage2k)"
LABEL description="Flutter Documentation Site with MkDocs Material"
LABEL version="2.0"

빌드된 사이트를 Nginx로 복사

COPY --from=builder /app/site /usr/share/nginx/html

사용자 정의 Nginx 설정 복사

COPY nginx.conf /etc/nginx/nginx.conf

Nginx 기본 설정 제거 및 권한 설정

RUN rm -f /etc/nginx/conf.d/default.conf &&
chown -R nginx:nginx /usr/share/nginx/html &&
chmod -R 755 /usr/share/nginx/html

포트 노출

EXPOSE 80

헬스체크 추가

HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3
CMD curl -f http://localhost/ || exit 1

Nginx 실행

CMD ["nginx", "-g", "daemon off;"]

```



ssh-key 생성

적당한 이름으로 만든 뒤에, Public Key를 gitea 쪽에 넣어야한다.

gitea에 넣는 방법은 2가지

  1. 전체 세팅에 넣는 것
  2. git project에 넣는 것 방법은 같으니 편한것으로 진행한다.

gitea 에 접속 > 세팅 > 왼쪽메뉴 > SSH/GPG키 > 키추가 > 위에서 얻은 Public Key를 넣는다.

coolify project 생성

Select private key 선택이 나온다. 그렇다면 위에 ssh-key에서 지정한 이름의 private key를 선택 한다.

주소랑 Branch를 지정하고 계속

설정 변경( in coolify project )

별반 변경할 것은 없다. 중간에 Domains 부분은 사용자가 원하는 주소로 변경하고, mkdocs는 port가 80 이라서 지정되었다.

Webhooks 를 연결해서 gitea push 되면 바로 Deploy 되도록 할 수 있다.

Webhooks 연결관련하여 이전 게시글을 확인하시면 도움됩니다.

How to Deploy MkDocs to Coolify with Gitea
MkDocs를 Coolify와 Gitea로 배포하는 완벽 가이드 필자 팁: 이 가이드는 MkDocs를 사용해 문서 사이트를 만들고, Gitea와 Coolify를 통해 자동 배포하는 전체 과정을 다룹니다. 각 단계를 차근차근 따라하면 누구나 성공할 수 있습니다. 광고 🤖 Claude AI 학습 도우미 우리 아이의 든든한 AI 학습 파트너 🎁 무료 체험 가능 👆 Claude AI 체험하기 📚 왜 Claude인가요?