Codius 호스팅 하기 : ④ 코디우스 설치steemCreated with Sketch.

in xrp •  6 years ago  (edited)

이제부터 직접적인 설치 작업에 들어갑니다.
순서대로 따라하시면 이상없이 완료하실 수 있습니다만 몇가지 주의하실게 있습니다.

  1. 오타가 한글자라도 발생하면 정상적으로 설치가 되지 않을 수 있습니다. 신경써주세요.
  2. 동일한 구글 클라우드 플랫폼인 경우에만 그대로 따라하실 때 정상적으로 설치됩니다. 다른 환경이라면 오류가 발생할 수 있습니다.
  3. VM Instance 명과 Hostname 등을 임의적으로 하셨다면 그에 맞게 하셔야 합니다. 이 글은 제가 가이드드린 내용대로 따라왔을 경우에 적합한 가이드입니다.

공식 가이드 : https://medium.com/codius/how-to-run-your-own-codius-host-42e13afe1fb2

이제부터 시작해볼까요?
구글 클라우드 플랫폼에 가셔서 만드신 VM Instance에 SSH로 아래와 같이 연결을 합니다.

검은 창이 뜰텐데요.
아래와 같이 호스트명을 설정합니다.
※ 지금부터 codius 설치까지 호스트명으로 치환 작업이 이뤄집니다. 여기서 한글자라도 부정확하게 입력되면 모든게 틀어집니다. 오타없이 입력하실 수 있도록 신경써주세요.

sudo su
hostnamectl set-hostname (만드신 codius 도메인 주소)

image (1).png

위와 같이 호스트네임 입력 작업이 끝나면
가상화를 위해 hyperd를 설치해야 합니다.
다음의 순서대로 커맨드를 계속 입력해나갑니다.

yum install -y gcc-c++ make
curl -sSl https://codius.s3.amazonaws.com/hyper-bootstrap.sh | bash

이제는 payment를 처리해줄 moneyd를 설치해야 합니다.
마찬가지로 다음과 같이 커맨드를 입력해주세요.

curl --silent --location https://rpm.nodesource.com/setup_10.x | bash - 
yum install -y nodejs 
yum install -y https://codius.s3.amazonaws.com/moneyd-xrp-4.0.0-1.x86_64.rpm

moneyd가 설치되면 지갑 연동을 해야 합니다.
아래와 같이 moneyd xrp:configure라고 입력해주세요.
그럼 XRP secret을 물어볼텐데요, 여기 본인 지갑의 secret값을 입력해야 합니다.
※ 이 secret은 비밀번호와도 같은 중요성을 갖습니다. 본인 이외에 누구에게도 공유해서는 안되는 값입니다. 절대로 타인에게 노출시키지 마세요.
image (2).png
configure가 끝나면 아래와 같이 입력하여 데몬을 시작해줍니다.

systemctl start moneyd-xrp

이제부터는 codius 데몬 설치를 해야 합니다.

yum install -y git
npm install -g codiusd --unsafe-perm
curl -sSl https://codius.s3.amazonaws.com/codiusd.service | sed s/codius.example.com/`uname -n`/ > /etc/systemd/system/codiusd.service
systemctl enable codiusd
systemctl start codiusd

여기까지 하셨으면 거의 끝났습니다.
마지막으로 SSL 관련 설정만 하면 됩니다!
아래와 같이 입력해주세요.

yum install -y git
git clone https://github.com/certbot/certbot
cd certbot
git checkout v0.23.0
./certbot-auto -n --os-packages-only
./tools/venv.sh
ln -s `pwd`/venv/bin/certbot /usr/local/bin/certbot
/usr/local/bin/certbot -d `uname -n` -d *.`uname -n` --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory certonly

마지막 커맨드까지 입력하면 아래에 첨부된 이미지대로 입력하라고 안내될겁니다.

  1. 이메일 인증을 위해 이메일 주소를 입력하라고 합니다. 입력해주시고 해당 이메일 주소 안내되는 메일을 받고 인증을 완료합니다.
  2. 약관 동의입니다. 'A'를 입력해 동의합니다.
  3. 'Y'를 입력합니다.
    image (3).png
    image (4).png
  1. 이제부터 DNS 작업부분인데요, 아래와 같은 안내가 2번 뜹니다. DNS 관리로 가셔서 레코드를 추가하시는데 'TXT' 유형으로 해서 호스트에 첫번째 하이라이트된 박스된 부분을 입력합니다. 그리고 TXT 값에 블라인드 처리된 박스 부분의 값을 복사해서 붙여넣고 추가합니다.
    (이렇게 2번 다 하시면 됩니다)
    image (5).png
    image (6).png

2번 다 완료하시고 "Press Enter to Continu" 부분에서 엔터 누르시지 마시고 아래 사이트 가서 다음과 같이 확인 후에 계속 진행하세요.
https://toolbox.googleapps.com/apps/dig/#TXT/
아래와 같이 추가한 Domain을 입력해서 2번 입력한 TXT 값이 다 나오는지 확인이 필요합니다.
image (7).png
위와 같이 확인이 되셨으면 엔터를 눌러 계속 진행합니다.

이제는 nginx(웹서버)를 올리면 끝납니다.
(고생하셨습니다!!)

yum install -y epel-release
yum install -y nginx
systemctl enable nginx
echo 'return 301 https://$host$request_uri;' > /etc/nginx/default.d/ssl-redirect.conf
openssl dhparam -out /etc/nginx/dhparam.pem 2048
vim /etc/nginx/conf.d/codius.conf

편집기에 진입하면 아래 내용을 복사해서 저장하고 종료합니다.
(vim 편집기 사용 방법은 구글신 검색을 권장드립니다)

server {
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/codius.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/codius.example.com/privkey.pem;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/dhparam.pem;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 1.1.1.1 1.0.0.1 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}

마지막 커맨드입니다.
순서대로 입력해줍니다.

sed -i s/codius.example.com/`uname -n`/g /etc/nginx/conf.d/codius.conf
setsebool -P httpd_can_network_connect 1
systemctl start nginx
firewall-cmd --zone=public --add-port=443/tcp --permanent

설치가 완료되었으며
https://(자신의 codius 주소)/version을 입력해서 아래와 같이 나오는지 확인해보세요.
(비슷하게 출력되면 정상적으로 설치가 완료된거에요)

{"name":"Codiusd (JavaScript)","version":"1.1.1"}

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Congratulations @xrpfactory! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!