Hướng dẫn cài đặt chi tiết sàn giao dịch mã nguồn mở Peatio trên môi trường production Đưc c!p ph"p th#o gi!$ ph"p %&'(
I. Yêu cầu.
) '!t c* đ+u đưc cài đặt trên h, đi+u hành u-untu( ) ./n m0t m1$ ch2$ ph/n m+m p#atio 3ới c!u h4nh t5i thi6u7 8am 9:;< -0 nhớ =>:;( ) ?ới m@i cr$ptocurr#nc$ Ahu$ến AhBch cài đặt trên nod# riêng< $êu c/u 8am t5i thi6u C:;< -0 nhớ 9>>:;< riêng nod# ch2$ ;'. -0 nhớ c/n =>>:;( .hD E trong 3!n đ+ mở port< cài đặt ipta-F#s hp FE đ6 đ*m -*o đ0 -*o mGt( II. Cài đặt. 1. Cài đặt RVM
) 8?% Fà m0t ph/n m+m dng đ6 Iu*n FE phiên -*n cJa ru-$( ) ;2n c/n ch2$ nhKng F,nh sau7 gpg ))A#$s#r3#r hAp7LLA#$s(gnupg(n#t ))r#c3)A#$s C>M;N;9OMN.=OPCN=Q9O>R99RS>C;;S=TRMT.>UR OT=;QV9.VRO;9RU=>NMTNMPN9>P;T>UORMCMM;T; WcurF )sXY https7LLg#t(r3m(io Z -ash sourc# Lhom#Lu-untuL(r3mLscriptsLr3m #cho [sourc# \H]%UL(r3mLscriptsLr3m[ ^^ _L(-ash`proiF# 2. Cài đặt ruby 2.5.0
) H, th5ng c/n sb dng ru-$ phiên -*n =(P(>( ) ;2n c/n ch2$ F,nh sau7 r3m instaFF =(P(> 3. Cài đặt MYSQ
) H, th5ng s sb dng h, Iu*n FE ce sở dK Fi,u %fXY(
) ;2n c/n ch2$ nhKng F,nh sau( ) .hD E trong Iu1 tr4nh cài đặt s $êu c/u Ahai -1o mGt Ahu cho tài Aho*n T; root< -Gn nhGp 3ào 3à nhớ đ6 sb dng( sudo apt)g#t instaFF m$sIF)s#r3#r m$sIF)cFi#nt Fi-m$sIFcFi#nt)d#3 !. Cài đặt Re"i#
) 8#dis Fà m0t h, th5ng Fưu trK A#$)3aFu# trên 8Q% giDp t5i ưu p#rormanc#< 8#dis cn cj ce chế sao Fưu dK Fi,u trên đka clng cho ph"p phc hồi dK Fi,u Ahi gặp s c5( ) h, th5ng #atio< 8#dis giDp Fưu trK dK Fi,u t c1c qo-s( ) ;2n c/n ch2$ nhKng F,nh sau7 sudo apt)add)r#positor$ )$ ppa7rA$Lr#dis sudo apt)g#t updat# sudo apt)g#t instaFF r#dis)s#r3#r ) Đ6 Ahởi ch2$ 8#dis -2n ch2$ F,nh sau7 r#dis)s#r3#r 5. I$#ta%% RabbitMQ
) 8a--it% cung c!p cho FGp tr4nh 3iên m0t phưeng ti,n trung gian đ6 giao tiếp giKa nhi+u thành ph/n trong m0t h, th5ng Fớn< sb dng giao thlc Q%( h, th5ng nà$ 8a--it% s giao tiếp 3ới 8#dis 3à :od T#amons( ) ./n ch2$ nhKng F,nh sau đ6 cài đặt 8#-it%7 'hêm r#po cJa ra--itmI d#-ian sudo apt)add)r#positor$ d#- http7LL(ra--itmI(comLd#-ianL t#sting main curF http7LL(ra--itmI(comLra--itmI)signing)A#$)pu-Fic(asc Z sudo apt)A#$ add ) .ài đặt ra--itmI sudo apt)g#t updat# sudo apt)g#t instaFF ra--itmI)s#r3#r ) .h2$ = cvu F,nh sau đ6 start ra--itmI sudo ra--itmI)pFugins #na-F# ra--itmI`manag#m#nt
sudo s#r3ic# ra--itmI)s#r3#r r#start &. Cài đặt 'itcoi$"
) ;itcoind Fà m0t -itcoin uFF nod#< ph/n m+m nà$ s đồng -0 3ới t!t c* c1c nod# -itcoin Ah1c( Đv$ cwng Fà ph/n m+m Iu*n FE 3B xaFF#ty( ;itcoind Fà m0t phiên -*n ch2$ ở chế đ0 command xXb dng cho c1c nhà ph1t tri6n< ch2$ ở Finuzy< phiên -*n ch2$ ở giao di,n Fà -itcoin)It( ) Đ6 cài đặt ta c/n ch2$ c1c F,nh sau7 sudo add)apt)r#positor$ ppa7-itcoinL-itcoin sudo apt)g#t updat# sudo apt)g#t instaFF -itcoind ) '2o thư mc (-itcoin 3à t2o iF# conig7 mAdir )p _L(-itcoin touch _L(-itcoinL-itcoin(con 3im _L(-itcoinL-itcoin(con ) {0i dung iF# -itcoin(con như sau7 da#mon|9 t#stn#t|9 Ahi ch2$ mainn#t ch}nh F2i thành s#r3#r|9 rpcus#r|~XU8{Q%U rpcpassord|QXX•]8T rpcport|9SRR= €hi ch2$ mainn#t ch}nh F2i thành rpcport|SRR= :bi thông -1o tới h, th5ng Ahi nhGn đưc coins aFF#tnoti$|LusrLFocaFLs-inLra--itmIadmin pu-Fish routing`A#$|p#atio(d#posit(coin pa$Foad|[tzid[7[‚s[< [curr#nc$[7[-tc[ƒ r#m#m-#r prun# conig to optimi„# disA( ) €hởi ch2$ -itcoind7 -itcoind ) Đ6 dng ch2$ F,nh7 -itcoin)cFi stop
) 'ham Ah*o thêm c1c F,nh cung c!p cho -itcoin 8. t2i7 https7LL#n(-itcoin(itLiAiL]riginaF`;itcoin`cFi#ntLQ&`caFFs`Fist (. Cài đặt P)a$to*+S
) .h2$ nhKng F,nh sau đ6 cài đặt7 sudo apt)g#t updat# sudo apt)g#t instaFF -uiFd)#ss#ntiaF chrpath git)cor# Fi-ssF)d#3 Fi-ontconig9)d#3 cd LusrLFocaFLshar# HQ{']%…X`?U8&X]{|9(M(S sudo g#t https7LL-it-ucA#t(orgLari$aLphantomqsLdonFoadsLphantomqs) \HQ{']%…X`?U8&X]{)Finuz)zSN`NC(tar(-„= sudo tar zq phantomqs)\HQ{']%…X`?U8&X]{)Finuz)zSN`NC(tar(-„= sudo Fn )s LusrLFocaFLshar#Lphantomqs)\HQ{']%…X`?U8&X]{)Finuz) zSN`NCL-inLphantomqs LusrLFocaFLshar#Lphantomqs sudo Fn )s LusrLFocaFLshar#Lphantomqs)\HQ{']%…X`?U8&X]{)Finuz) zSN`NCL-inLphantomqs LusrLFocaFL-inLphantomqs sudo Fn )s LusrLFocaFLshar#Lphantomqs)\HQ{']%…X`?U8&X]{)Finuz) zSN`NCL-inLphantomqs LusrL-inLphantomqs ,. Cài đặt +a-aScrit Ru$ti*e
) .h2$ nhKng F,nh sau đ6 cài đặt7 curF )sY https7LLd#-(nod#sourc#(comLs#tup`S(z Z sudo -ash ) sudo apt)g#t instaFF nod#qs /. I$#ta%% I*aeMaic
) Đv$ Fà ph/n m+m h@ tr cho 3i,c t*i *nh Fên h, th5ng( sudo apt)g#t instaFF imag#magicA 10. Cài đặt -à cu )$) Peatio a4. C%o$e " 6$ -7 t8 9it)ub c:a Peatio.
mAdir proq#ct
cd proq#ct git cFon# https7LLgithu-(comLru-$Au-#Lp#atio(git cd p#atio git ch#cAout 9)O)sta-F# ) .ài đặt g#m7 g#m instaFF -undF# -undF# instaFF ) :#n#rat# nhKng conig mặc định đưc 3iết s†n( -inLinit`conig ) .ài đặt $arn 3à cài đặt nhKng thư 3i,n sb dng cho giao di,n( sudo npm instaFF )g $arn -undF# #z#c raA# tmp7cr#at# $arn7instaFF ass#ts7pr#compiF# ) .!u h4nh F2i trong iF# production(r3i conigL#n3ironm#ntsLproduction(rt4m 3à ch}nh 3ào sau thành7 conig(ass#ts(compiF# | tru# b4. Cài đặt "ataba#e.
3i conigLdata-as#($mF ./n sba F2i nhKng thông s5 sau trong data-as#($mF7 host7 FocaFhost us#rnam#7 root passord7 ‡%Gt Ahu mà -2n Ahai -1o Ahi cài đặt m$sIFˆ ) '2o T;< t2o -*ng< Ahởi t2o m0t s5 dK Fi,u Ahai -1o trong s##d7 8Q&YX`U{?|production -undF# #z#c raA# d-7s#tup c4. C);y "ae*o$#.
) fêu c/u ph*i ch2$ 8a--itmI 3à r#dis trước< ở trên m4nh đã hướng dẫn ch2$ = lng dng nà$ rồi( ) Hã$ ch‰c ch‰n -2n đang đlng ở thư mc Lp#atio
) .h}nh F2i tham s5 sau đ6 ch2$ ở chế đ0 production7 3i Fi-Lda#monsLda#mons(god t2i đv$ ch}nh tham s5 8Q&YX`U{? thành7 8Q&YX`U{? | U{?(#tchx8Q&YX`U{?< productiony ) ]€< tiến hành start d#amon -Šng F,nh sau7 god )c Fi-Lda#monsLda#mons(god "4 <)=i t;o %iabi%ity roo>
8Q&YX`U{?|production -undF# #z#c raA# soF3#nc$7Fia-iFit$`proo e4 Cu )$) tro$ co$>i?a%icatio$.y*%
3i conigLappFication($mF e1. Cu )$) t)e 9oo%e @ut)e$ticatio$
]Q~'H=`X&:{`&{`8]?&TU87 googF# :]]:YU`.Y&U{'`&T7 R=9M>PSR>OO9) umRRgd3CSuoRS-uRiOhsSg3N#rP=mpoh(apps(googF#us#rcont#nt(com :]]:YU`.Y&U{'`XU.8U'7 isdrVz?Tu:.c]H]Np~•‹Œ3; ?ào https7LLconsoF#(d#3#Fop#rs(googF#(comL đ6 t2o 3à F!$ nhKng A#$ trên(
A
e2. Cu )$) c6c t)B )6c
QT%&{7 #zampF##zampF#(com tên #maiF s Fà admin( ~8Y`H]X'7 iri#(ashion tên mi+n #-sit# >4 D;o #ecret ey
raA# s#cr#t cop$ đo2n mã sau Ahi t2o ra( %ở iF# conigLs#cr#t($mF
ch@ productionLs#cr#t`A#$`-as#< tha$ thế đo2n mã trên 3ào Ž‚| U{?‡[XU.8U'`€Uf`;QXU[ˆ ‚^ 4. <)=i đE$ rai%# #er-er
-undF# #z#c puma )# production )p R>>> ))pidiF# tmpLpidsLpuma(pid )d 11. Ru$ Peatio Dra"i$ FI
cd _Lproq#ct git cFon# https7LLgithu-(comLru-$Au-#Lp#atio)trading)ui(git cd p#atio)trading)ui git ch#cAout 9)O)sta-F# ) .h}nh F2i cod# F@i7 3i appL3i#sLmarA#tsL`marA#t`Fist(htmF(#r- t4m tới dng CP7 Ž‚| FinA`to marA#t(#tchx7nam#y< LtradingL marA#t(#tchx7idy ‚^ ch}nh F2i thành Ž‚| FinA`to marA#t(#tchx7nam#y< LtradingL marA#t(#tchx7idy(to`s ‚^ ) .ài đặt g#m7 -undF# instaFF ) €hởi t2o nhKng conig đã c!u h4nh s†n( -inLinit`conig ) ?ào iF# conigLappFication($mF t4m 3à c!u h4nh F2i7 YQ'V]8%`8]]'`~8Y7 iri#(ashion đường dẫn #-sit# chBnh cJa -2n ) :i5ng ở trên< t2o s#cr#t A#$ -Šng F,nh sau7 raA# s#cr#t ?ào iF# conigLs#cr#t($mF< t4m dng productionLs#cr#t`A#$`-as# tha$ thế đo2n mã đã cop$ ở trên tha$ thế 3ào7 Ž‚| U{?‡[XU.8U'`€Uf`;QXU[ˆ ‚^ ) .h2$ F,nh sau đ6 pr#compiF# ass#ts7 -undF# #z#c raA# ass#ts7pr#compiF# ) .!u h4nh trong production(r-
3i conigL#n3ironm#ntsLproduction(rt4m 3à ch}nh 3ào sau thành7 conig(ass#ts(compiF# | tru# ) €hởi ch2$ p#atio :~& ở port C>>> -undF# #z#c puma )# production )p C>>> ))pidiF# tmpLpidsLpuma(pid )d 12. Cài đặt -à cu )$) $i$G
) .ài đặt nginz sudo apt)g#t updat# sudo apt)g#t instaFF nginz sudo u aFFo {ginz H'' s$st#mctF status nginz ) .!u h4nh nginz sudo 3i L#tcLnginzLsit#s)a3aiFa-F#Ld#auFt zja hết t!t c* mi thl 3à tha$ thế thành nhKng đo2n cod# -ên dưới7 s#r3#r s#r3#r`nam# http7LLiri#(ashion‘ Fist#n S> d#auFt`s#r3#r‘ Focation _ ’Lx“7tradingZtrading)ui)ass#tsyWL proz$`pass http7LL9=O(>(>(97C>>>‘ ƒ Focation L proz$`pass http7LL9=O(>(>(97R>>>‘ ƒ ƒ ” ở Focation thl nh!t< cj port C>>> Fà đang sb dng t s#r3#r p#atio :~&( Focation thl hai< cj port R>>> Fà đang sb dng t s#r3#r p#atio( s#r3#r`nam# chBnh Fà tên mi+n cJa #-sit#( ) €hởi đ0ng F2i nginz sudo s$st#mctF r#start nginz III. Cu )$) = tra$ a"*i$.
?ào -*ng Iu*n trị< 3ào ph/n curr#nci#s< 3i# ;'.< ) .h@ …X]{ 8. #ndpoint< tha$ thế thành #ndpoint cJa m4nh xđo2n c!u h4nh -itcoindy http7LLus#rnam#7passord9=O(>(>(979SRR= ) •aFF#t ~8Y t#mpFat# xus# addr#ssƒ as pFac#hoFd#ry7 ở t#stn#t th4 đ6 thành7 https7LLt#stn#t(-FocAchain(inoLaddr#ssLaddr#ssƒ ) 'ransaction ~8Y t#mpFat# xus# tzidƒ as pFac#hoFd#ry7 ở t#stn#t đ6 thành7 https7LLt#stn#t(-FocAchain(inoLtzLtzidƒ