블로그 구축 with Ghost & Docker
개발환경
- Windows 10(로컬 PC)
- Docker version 24.0.2, build cb74dfc(로컬 PC)
- port 포워딩이 되는 공유기
- 리다이렉팅용 웹호스팅
Docker Compose로 Ghost를 로컬에 설치
로컬PC에서 고스트 데이터(DB, 테마 등)를 관리할 폴더를 만들고 해당 위치로 이동한 다음에 아래의 내용으로 docker-compose.yml을 작성한다.
version: '3.1'
services:
ghost:
image: ghost
restart: always
ports:
- 8080:2368
volumes:
- .\data\content:/var/lib/ghost/content
environment:
# see https://ghost.org/docs/config/#configuration-options
database__client: mysql
database__connection__host: yourdb
database__connection__user: superuser
database__connection__password: yourpassword
database__connection__database: ghostdb
#주소가 틀리면 검색기능이 작동하지 않으므로 주의!
url: http://pih.kr
# 없으면 기본이 production (개발 모드를 원하면 development)
NODE_ENV: production
yourdb:
image: mysql
restart: always
volumes:
- .\data\db:/var/lib/mysql
ports:
- "13928:3306"
environment:
MYSQL_ROOT_PASSWORD: yourpassword
docker-compose up -d를 터미널에서 실행하고 localhost:8080/ghost 로 접속하면 블로그의 관리자 페이지를 보여준다. 필요 정보를 입력하고 관리자 계정을 생성하면 블로그를 시작할 수 있다.
테마는 https://ghost.org/themes/ 에서 자신이 원하는 걸로 변경 가능하다
도메인 연결
가비아, 닷홈, hosting.kr, 후이즈 같은 업체에서 도메인을 구입하고 현재 내가 이용하는 인터넷의 공개 IP를 알아내서 포워딩 설정을 해주면 외부에서도 구입한 도메인 주소로 접속할 수 있다.(만약 비용을 절감이 필요하면 https://www.noip.com/ 에서 무료 도메인 주소를 얻을 수 있다. 브랜드 구축을 목표로 하고 있다면 유료로 멋진 도메인을 구입하자)
리다이렉팅
특정 페이지나 포스트를 누군가에게 바로 가는 url로 전달하고 싶을 것이다. 그런데 나의 호스팅 업체문제인지. pih.kr/about처럼 도메인네임에 디렉토리 이름을 붙여서 접근하면whitelabel error page가 나타난다. 여러 방법을 적용해보았지만 해결이 되지않아서 호스팅업체에서 제공하는 웹호스팅을 구매하고 웹서버의 root 폴더 위치에 .htaccess를 작성해두니 다행히 연결이 된다. 로컬PC, 공유기, 도메인, 웹호스팅이 연결되있어서 이런일이 발생하는 것 같은데 100% 원하는 동작은 아니지만 우선 pass!
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^pih.kr$ [OR]
RewriteCond %{HTTP_HOST} ^www.pih.kr$
RewriteRule (.*)$ http://your.domain.address:8080/$1 [R=301,L]
</IfModule>
ghost blog를 하기 위한 방법으로 로컬PC의 도커말고 다른 방법도 여러가지가 있다. 기타 다른 방법으로 설치하려면 https://ghost.org/docs/install/ 를 방문하셩!