소개
Hugo, GitHub, Cloudflare pages 를 이용해 무료로 블로그를 만드는 방법을 설명합니다. 참고로, Github pages 로도 무료 운영이 가능하지만, 응답 속도가 조금 더 빠른 Cloudflare pages 를 이용하는 방법으로 설명합니다. 즉, 정적 사이트 플랫폼으로 hugo 를 사용하고, 블로그 콘텐츠를 github 에 저장한 뒤, cloudflare 를 이용해서 호스팅하는 방법입니다.
속도 비교 참고 : https://bejamas.com/compare/cloudflare-pages-vs-github-pages
준비물
- GitHub 계정
- Cloudflare 계정
hugo 설치
먼저 Hugo를 설치합니다. macOS 환경 기준이고, 다른 환경은 설치 문서를 참고해주세요.
혹시 brew 설치가 안 되어 있다면 Homebrew 를 설치하고 터미널에서 아래 명령어를 입력합니다.
| |
설치 완료 후 설치된 버전을 확인해봅니다. 버전이 표시되면 정상 설치되었습니다.
| |
블로그 만들기
원하는 폴더명(myblog) 으로 사이트를 생성하고 만들어진 폴더로 이동합니다. 사이트 설정 파일은 기본적으로 TOML 형식으로 만들어지는데 YAML 처럼 다른 형식을 원한 다면 –format 을 사용해 지정합니다.
| |
아래와 비슷하게 보이면 정상 설치가 되었습니다.
| |
테마 설치
저는 hugo-theme-stack 테마를 사용하고 있는데, 다른 테마도 설치 방법은 동일합니다. 더 많은 테마는 hugo themes 에서 찾아보세요.
혹시 Git 설치가 안 되어있다면 먼저 설치가 필요합니다.
| |
myblog 폴더에서 테마를 설치합니다
| |
설치가 끝나면 설정 파일을 테마에서 복사 합니다.
| |
첫 글 작성 & 로컬에서 확인
이제 첫 글을 써볼까요? 아래 명령어를 입력합니다.
| |
첫 글을 확인하기 위해 아래 명령어를 실행하세요. -D 는 draft(임시글)까지 모두 보여주라는 옵션입니다.
| |
이제 브라우저에서 http://localhost:1313에 접속하면 내 블로그가 보입니다!
생성한 콘텐츠는 myblog/conent/post/ 폴더에 위치해 있습니다.
GitHub 에 저장하기
Github 로그인 후 New repository 로 저장소를 생성합니다.
- repository name 입력
- myblog 처럼 원하는 저장소 이름
- Choose visibility 선택
- public or private 무관
- ‘Create repository’ 클릭
로컬의 myblog 폴더를 github 원격 저장소로 연결합니다.
| |
저장소에 저장하지 않아도 되는 빌드 폴더나 파일을 .gitignore 파일에 추가합니다.
| |
이제 모든 파일을 커밋&푸시하고, github 저장소에 파일들이 올라갔는지 확인합니다.
| |
Cloudflare pages 로 호스팅하기
Cloudflare 에 로그인 한 뒤 pages 를 생성합니다.
- 관리 홈으로 이동
- 컴퓨팅(Workers) > Workers 및 Pages > 생성 버튼 클릭
- Pages > 기존 Git 리포지토리 가져오기 > 시작
- github 계정을 연결하고, 저장한 레포지토리(myblog) 를 선택 > 다음 단계
빌드 설정 및 배포 화면에서 다음과 같이 설정 합니다.
- 프로젝트 이름
- 원하는 이름
- myblog.pages.dev 처럼 URL 로 사용됩니다
- 프레임워크 미리 설정
- Hugo 선택
- 빌드 명령
- hugo –gc –minify 입력
- 빌드 출력
- public 입력
다음으로 ‘저장 및 배포’ 를 실행하면 자동으로 github 에 저장한 레포에서 코드를 받아서 빌드 후 위에서 설정한 url 로 호스팅이 바로 시작됩니다.
또한, 앞으로는 github 저장소에 push 만 하면 자동으로 cloudflare pages 에 변경사항이 적용되어 배포됩니다.
설정 및 기타
hugo.yml 파일을 열어 환경에 맞게 설정할 수 있습니다. 각 설정에 대한 자세한 정보는 stack 테마 홈페이지를 참고하세요.
속도 비교 참고 :