파킹 사이트용 도메인을 위한 GitHub Pages 구축하기

이메일 계정으로 쓰고 있는 도메인은 2007년에 구축된 도메인이고, 메일링 리스트용으로 쓰고 있는 도메인은 2013년에 구매한 도메인이다. 도메인에서 메일이 자주 나가기 때문에 별도의 도메인을 구비해 두고 있는데, 기존에는 GitHub에 코드를 올려두고, 실행은 Cloudflare 뒤에 서버를 한 대 숨겨두고 공격적으로 캐싱하도록 설정해 두고 있었다.

그러나 서버의 코드 업데이트는 자동화가 되어 있지 않기 때문에 웹이나 다른 곳에서 코드를 업데이트 했다고 해도 서버에 SSH 연결하여 git pull을 실행해 줘야 하는 문제가 있었다. 그리고 어쩌다 보니 GitHub의 저장소를 날려먹어서 저장소도 다시 구축해야 했다. 서버에 연결해서 Git 저장소를 새 저장소로 가리키게 하고, 기존 역사 push하고, 수정사항 변경하고, 매번 업데이트할 때마다 pull 하기 귀찮아서라도 GitHub Pages를 사용하기로 마음먹었다. 어짜피 사이트가 사용하는 자원은 index.html 하나 뿐이기도 하고.

GitHub Pages를 쓰니까 원본 저장소도 GitHub에 있을 것 같지만, GitHub은 미러링일 뿐이고 모든 작업은 GitLab.com 에서 하고 있다. GitHub.com 웹 에디터를 써서 저장하면 커미터 부분에 GitHub 이 붙는 게 너무 마음에 안 드는 단 한가지 이유다. 그렇다면 GitLab Pages를 쓸 수도 있겠지만, GitLab Pages는 인증서를 스스로 가져와야 하는데, 사실상 CA 업계의 무료 인증서를 장악한 Let’s Encrypt는 인증서 유효기간이 90일밖에 되지 않아 귀찮게도 두달에 한 번 (인증서 만료는 3달이지만 만료 1개월 전부터 재발급이 가능하다.) 인증서를 갱신하고 그걸 다시 GitLab.com 에 올려 줘야 하는 것이다. 그래서 Cloudflare를 앞에 세워서 HTTPS 프록시 역할을 하게 하고, 그 뒤에 GitHub Pages에서 HTML 페이지를 빌드하게 한다.

  1. GitLab.com 에서 원본 저장소를 생성하고, GitHub에서 GitHub Pages를 위한 저장소를 생성한다.
  2. GitLab 저장소에 호스팅할 콘텐츠를 삽입해 둔다.
  3. GitLab 설정의 Repository 에서 GitHub의 저장소로 미러링을 설정한다.
  4. GitHub 설정에서 GitHub Page를 master 브랜치에서 불러오도록 설정한다.
  5. GitHub Pages가 페이지를 빌드할 때까지 기다린다.
  6. 도메인을 GitHub Pages 도메인을 바라보도록 넘겨준다.

굳이 Cloudflare를 쓰는 것은 GitHub Pages가 지원하지 않는 커스텀 도메인 HTTPS를 우회해서라도 적용하고 싶었기 때문이다. Cloudflare의 Flexible SSL이 보안적으로 아무 소용이 없다는 것은 알고 있지만, 무언가 인증이 있는 사이트인 것도 아니기 때문에 문제가 되지는 않을 것이라고 판단했다.

디자인적으로 워낙 끔찍한 사이트들이라 뭔가 디자인을 바꿔보고는 싶은데, 그럴 능력이 안 돼서 HTML 20줄의 간단…을 넘어 디자인적으로 처참한 사이트가 완성되었다.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s