이제부터 직접적인 설치 작업에 들어갑니다.
순서대로 따라하시면 이상없이 완료하실 수 있습니다만 몇가지 주의하실게 있습니다.
공식 가이드 : https://medium.com/codius/how-to-run-your-own-codius-host-42e13afe1fb2
이제부터 시작해볼까요?
구글 클라우드 플랫폼에 가셔서 만드신 VM Instance에 SSH로 아래와 같이 연결을 합니다.
검은 창이 뜰텐데요.
아래와 같이 호스트명을 설정합니다.
※ 지금부터 codius 설치까지 호스트명으로 치환 작업이 이뤄집니다. 여기서 한글자라도 부정확하게 입력되면 모든게 틀어집니다. 오타없이 입력하실 수 있도록 신경써주세요.
sudo su
hostnamectl set-hostname (만드신 codius 도메인 주소)
위와 같이 호스트네임 입력 작업이 끝나면
가상화를 위해 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은 비밀번호와도 같은 중요성을 갖습니다. 본인 이외에 누구에게도 공유해서는 안되는 값입니다. 절대로 타인에게 노출시키지 마세요.
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
마지막 커맨드까지 입력하면 아래에 첨부된 이미지대로 입력하라고 안내될겁니다.
2번 다 완료하시고 "Press Enter to Continu" 부분에서 엔터 누르시지 마시고 아래 사이트 가서 다음과 같이 확인 후에 계속 진행하세요.
https://toolbox.googleapps.com/apps/dig/#TXT/
아래와 같이 추가한 Domain을 입력해서 2번 입력한 TXT 값이 다 나오는지 확인이 필요합니다.
위와 같이 확인이 되셨으면 엔터를 눌러 계속 진행합니다.
이제는 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"}