panty.run은 어떻게 만들어졌는가

시작

대체 이딴 블로그는 누가 만들었고, 어떻게 만들어졌는가?

카톡방에서 누군가 블로그 글 쓰기 귀찮다는 말에 야호가 이런 답을 한 것이 시작이다.

그 말에 개돼지(민중)들은 아래와 같이 나를 호출하며 팀 블로그를 만들라는 압박을 넣었고 나에게 서버비를 카톡방 인원 88명분 만큼 나눠내라는 말도 안되는 제안과 함께, 회유를 하기 시작했다.

결국 회유에 넘어간 나는 팀 블로그를 만들기로 했다. (하지만 서버비는 제대로 받았다)


서버 설치

이 글을 쓰는 지금 시점에서 이 블로그는 AWS Lightsail를 사용하고 있다.

서버는 Ubuntu 18.04 LTS이며, 이 블로그는 Docker 컨테이너로 돌아가고 있다.

먼저 처음 서버에 ssh로 접속하여 apt 레포지터리/패키지 업데이트와 Docker를 설치한다..

sudo apt update
curl -sL https://get.docker.com | sh

그리고 nginx를 설치한다.

sudo apt install nginx

지금 사이트는 80(HTTP), 443(HTTPS) 포트로 외부 공개되어 있지만 내부에서는 2368 포트로 서버가 돌아가고 있다.
nginx는 80, 443 포트로 들어오는 요청을 내부의 2368 포트로 보내주는 리버스 프록시 역할을 할 것이므로 nginx의 설정을 sudo vim /etc/nginx/sites-available/default으로 열어 아래와 같이 적당히 수정해준다.

server {
        server_name panty.run;

        location / {
                proxy_pass      http://127.0.0.1:2368;
                proxy_set_header    X-Real-IP $remote_addr;
                proxy_set_header    Host      $http_host;
                proxy_set_header X-Forwarded-Proto https;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }
}

지금은 2019년이고 HTTPS(SSL/TLS)를 적용하지 않은 사이트는 신뢰되지 않은 사이트로 간주된다.
그러나 인증서는 구매하기에 너무 비싸므로 우리는 무료로 사용할 수 있는 Let's Encrypt를 사용하여 HTTPS를 적용할 것이다.
기본적으로 Let's Encrypt 인증서는 60일마다 새로운 인증서를 발급해주어야 하는데, 나는 이 작업까지 자동으로 해주는 certbot을 사용할 것이다.

sudo apt install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt update

sudo apt-get install certbot python-certbot-nginx

설치가 완료되었다면 아래 명령어로 certbot을 설정해주는 과정을 거치면 된다.

sudo certbot --nginx

certbot 설정이 완료된다면 nginx 설정이 변경된다.
래 명령어로 nginx가 실행되어 있다면 reload를 꺼져있다면 start를 해주어 nginx를 설정을 새로 불러오고, 마지막으로 enable시켜 윈도우시가 시작 될 때 자동으로 서버가 켜지도록 해주자.

sudo systemctl status nginx
sudo systemctl reload nginx
sudo systemctl start nginx
sudo systemctl enable nginx

이제 마지막으로 블로그를 로컬에 띄우기만 하면 된다.

docker run --name ghost \
 -p 127.0.0.1:2368:2368 \
 -e url=https://panty.run \
 -v ~/.ghost/content:/var/lib/ghost/content \
 --restart=always \
  -d ghost:3

이걸로 블로그 설치를 위한 모든 설정은 끝이다.
만약 접속이 안된다면 Lightsail 인스턴스의 Inbound Port에서 80과 443이 모두 열려있는지 확인하자.
이후 검색 엔진 등록, 플러그인(i.e. 코드 하이라이팅, TeX) 추가, 디자인 수정 등 자잘한 작업이 남아있지만, 이 부분은 알아서 본인 입맞에 맞게 수정하면 된다.


그런데 그것이 실제로 일어났습니다.

그리고 수~일요일 4일간 정말 많은 글들이 써졌고, 글들의 퀄리티도 생각보다 괜찮아 정말 만족하고 있다. 그래프를 보면 초기 버프를 받고 점점 리텐션이 떨어지는 모습을 보이지만 그래도 누군가 글을 간간히 써준다면 꽤 많은 정보가 모이지 않을까 생각한다.

사이버 망령들의 흔적