Docker를 이용한 블로그 플랫폼 Ghost 설치하기
안녕하세요. 달소입니다.
이전에 소개해드린 블로깅 플랫폼 Ghost 를 도커를 이용해서 간단하게 구축해보도록하겠습니다.
2022/05/23일에 ghost 5버전이 정식 릴리즈되었습니다.
업데이트된 버전에 맞게 config 수정이 되었으니 참고해주세요.
https://it-svr.com/ghost-5-0-release/
----
구축환경
Ubuntu 20.04 LTS
Docker 최신버전
Docker compose 최신버전
미리 데이터를 보관 할 볼륨매칭용 디렉터리도 생성해놓겠습니다.
mkdir -p /data/ghost/data
컨테이너 생성하기
컨테이너의 경우 Ghost 컨테이너 외에 Mysql 같이 묶여있는 docker-compose.yml을 만들어서 함께 생성하겠습니다.
참고 : https://hub.docker.com/_/ghost
vi /data/ghost/docker-compose.yml
여기서 변경할수있는부분은 Ghost 버전과 포트매핑,
db정보, url 주소, 볼륨매칭 주소정도 입맛에 맞게 변경해주시면 되겠습니다.
초반 셋팅만 ip로 하고 추후에는 사용하시는 url로 변경하시면 되겠습니다.
ex) https://it-svr.com
version: '3.1'
services:
ghost:
image: ghost:5.2.2-alpine
restart: always
ports:
- 8080:2368
environment:
# see https://ghost.org/docs/config/#configuration-options
database__client: mysql
database__connection__host: db
database__connection__user: root
database__connection__password: example
database__connection__database: ghost
# this url value is just an example, and is likely wrong for your environment!
url: http://192.168.1.60:8080
# contrary to the default mentioned in the linked documentation, this image defaults to NODE_ENV=production (so development mode needs to be explicitly specified if desired)
#NODE_ENV: development
volumes:
- /data/ghost/data:/var/lib/ghost/content
db:
image: mysql:8
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
작성이 다 되었으면 docker-compose up -d 명령어를 통해 컨테이너를 생성해주세요.
생성이 완료되었으면 웹 브라우저를 통해 ip:8080 으로 접근하면 블로그페이지 샘플이나오고
ip:8080/ghost 로 접근하면 사이트 셋업을 시작합니다.
여기서 주소:포트/ghost로 가면 setup을 시작합니다.
간단하게 사이트명 등록 및 관리자 계정 생성입니다.
처음에 별도이메일 셋팅을하지않으면 메일발송은안됩니다.
대시보드가 상당히 깔끔하군요.
(정품인증은 VM이라..ㅎ)
깔끔하네요 ㅎㅎ
좋은 정보 잘 보고 갑니다.
정리 해주신 대로 구축했고, 외부 도메인을 연결하려고 하는데요 docker-compose.yml에서 내부 도메인 기입시 https://로 할 필요는 없을까요? 현재는 내부 IP를 넣어서 Setting 하긴 했습니다.
외부도메인을 연결하려면 말씀해주신대로 docker-compose.yml 에서 url만 사용하고계신 url로 변경해주시면 됩니다.
내용에 추가해야겠네요 ㅎㅎ
내부 IP로 셋팅한 이후에, 내부 IP - DDNS - 외부도메인 요렇게 연결했습니다. 감사합니다 :)
→ 이렇게 하니 이미지가 깨져서, 다시 셋팅해봐야겠습니다.
1. 도메인 구매 → 포워딩 요청
2. yml 수정해서 구매한 도메인으로 셋업
이렇게 하면 될까요? :)
정리하면, https://it.svr.com → 요런 도메인은 테스트로 하나 구매해놓고, Ghost Container와 어떻게 연결할지 잘 모르겠습니다.
기존 블로그를 Self-hosting Server로 옮겨서 사용하려고 하는 중입니다.
해당 방법을 이용하신다면
docker로 npm을 구축하셔서 80/443 인증서를 발급받으시고
it-svr.com 으로 내부 요청이 왔을때 내부 ip로 리버스프록시를걸어주면됩니다. url은 처음 생성때는 ip로 해주시고 그다음에 https://도메인으로 변경해주시구요.
ex) npm - 192.168.1.10 이면 포트포워딩은 1.10으로 주고
1.10으로 왔을때 reverseproxy로 ghost를 바라보게 해주시면 됩니다.
앗 뭔가 들어봤지만, 낯선 용어가 한 가득이군요 :) 포럼 내에서 찾아보면서 공부해봐야겠습니다 ㅎ
- Nginx Proxy Manager를 이용해서 호스트 등록 및 SSL 인증서 발급받기.(NPM)
네 NPM으로 선처리를 해주고 후처리를 Ghost ip를 넣어서 해주시면되겠습니다!
처음이 어렵지 그다음부터는 술술되실거에요 ㅎㅎ
요 두개의 글을 보면 될듯한데 맞을까요 ? :)
Nginx Proxy Manager를 이용해서 호스트 등록 및 SSL 인증서 발급받기.(NPM)
Nginx Reverse Proxy를 쉽게 사용하기 위한 Proxy-manager 구축하기.(NPM)
네 맞습니다!
혹시 Backup은 어떻게 하실까요? :)
저는 가상머신이라서 별도의 백업솔루션을 이용해서 백업합니다.
개인환경이라면 해당 도커의 디렉터리만 주기적으로백업해주셔도됩니다
cmt alert