From 10104caadac30cccd16bbb8741c0fbaeac1ba6be Mon Sep 17 00:00:00 2001 From: Mik-TF Date: Tue, 14 May 2024 15:03:55 -0400 Subject: [PATCH 1/3] start integrate new pr from info_grid, starting from 62826fe798 --- books/manual/SUMMARY.md | 2 + collections/dashboard/deploy/applications.md | 1 + .../solutions/solutions_staticwebsite.png | Bin 0 -> 55705 bytes .../dashboard/solutions/static_website.md | 53 +++++++ .../solutions/staticwebsite_list.png | Bin 0 -> 46659 bytes .../grid_deployment/deploy_dashboard.md | 139 ++++++++++++++++++ .../grid_deployment/grid_deployment.md | 3 +- 7 files changed, 197 insertions(+), 1 deletion(-) create mode 100644 collections/dashboard/solutions/solutions_staticwebsite.png create mode 100644 collections/dashboard/solutions/static_website.md create mode 100644 collections/dashboard/solutions/staticwebsite_list.png create mode 100644 collections/developers/grid_deployment/deploy_dashboard.md diff --git a/books/manual/SUMMARY.md b/books/manual/SUMMARY.md index 7ef28da..3526b9b 100644 --- a/books/manual/SUMMARY.md +++ b/books/manual/SUMMARY.md @@ -32,6 +32,7 @@ - [ownCloud](dashboard/solutions/owncloud.md) - [Peertube](dashboard/solutions/peertube.md) - [Presearch](dashboard/solutions/presearch.md) + - [Static Website](dashboard/solutions/static_website.md) - [Subsquid](dashboard/solutions/subsquid.md) - [Taiga](dashboard/solutions/taiga.md) - [Umbrel](dashboard/solutions/umbrel.md) @@ -149,6 +150,7 @@ - [TFGrid Stacks](developers/grid_deployment/tfgrid_stacks.md) - [Full VM Grid Deployment](developers/grid_deployment/grid_deployment_full_vm.md) - [Grid Snapshots](developers/grid_deployment/snapshots.md) + - [Deploy the Dashboard](developers/grid_deployment/deploy_dashboard.md) - [Farmers](farmers/farmers.md) - [Build a 3Node](farmers/3node_building/3node_building.md) - [1. Create a Farm](farmers/3node_building/1_create_farm.md) diff --git a/collections/dashboard/deploy/applications.md b/collections/dashboard/deploy/applications.md index e3a5a2c..17a7e2c 100644 --- a/collections/dashboard/deploy/applications.md +++ b/collections/dashboard/deploy/applications.md @@ -18,6 +18,7 @@ Easily deploy your favourite applications on the ThreeFold grid with a click of - [ownCloud](owncloud.md) - [Peertube](peertube.md) - [Presearch](presearch.md) +- [Static Website](static_website.md) - [Subsquid](subsquid.md) - [Taiga](taiga.md) - [Umbrel](umbrel.md) diff --git a/collections/dashboard/solutions/solutions_staticwebsite.png b/collections/dashboard/solutions/solutions_staticwebsite.png new file mode 100644 index 0000000000000000000000000000000000000000..33c51d6902300dba6bc40dfffad26cd8cacb05de GIT binary patch literal 55705 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 literal 0 HcmV?d00001 diff --git a/collections/dashboard/solutions/static_website.md b/collections/dashboard/solutions/static_website.md new file mode 100644 index 0000000..4f57b07 --- /dev/null +++ b/collections/dashboard/solutions/static_website.md @@ -0,0 +1,53 @@ +

Static Website

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Deployment](#deployment) + +--- + +## Introduction + +Static Website is an application where a user provides a GitHub repository URL for the files to be automatically served online using Caddy. + +## Prerequisites + +- Make sure you have a [wallet](wallet_connector.md) +- From the sidebar click on **Applications** +- Click on **Static Website** + +## Deployment + +![ ](./img/solutions_staticwebsite.png) + +- Enter an instance name + +- Enter a GitHub repository URL that needs to be cloned + +- Enter the title for the cloned repository + +- Select a capacity package: + + - **Small**: {cpu: 1, memory: 2 , diskSize: 50 } + - **Medium**: {cpu: 2, memory: 4, diskSize: 100 } + - **Large**: {cpu: 4, memory: 16, diskSize: 250 } + - Or choose a **Custom** plan + +- `Dedicated` flag to retrieve only dedicated nodes +- `Certified` flag to retrieve only certified nodes +- Choose the location of the node + - `Region` + - `Country` + - `Farm Name` +- Choose the node to deploy on + - Note: You can select a specific node with manual selection +- `Custom Domain` flag allows the user to use a custom domain +- Choose a gateway node to deploy your static website + +Once this is done, you can see a list of all of your deployed instances: + +![ ](./img/staticwebsite_list.png) + +Click on the button **Visit** under **Actions** to go to your static website! diff --git a/collections/dashboard/solutions/staticwebsite_list.png b/collections/dashboard/solutions/staticwebsite_list.png new file mode 100644 index 0000000000000000000000000000000000000000..94fd8abebe6883c9d1f6a0b1ae4a6ad3f930ec75 GIT binary patch literal 46659 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
&;w^s8_^U51Kw%D_W)i(U>}s#HbpJO zC1Q=w#rr5u@8LGfq81WX+0_u*1}<+|xA@X59kc}1=CcJAf`iMyg+`%22ITLKZ@F>v z<~N`m(yMkIHrbByts-N4$ex&)7PqMh`46?D_S})JVIc>#Ru#{WOZyGXmLG_mVO_#v zBr|NBfELMp0NNX(T=4Y#1L|j=VVi5yReZHyap5Om>8~5Gh(Z#HZ>N#5amHDcR!r!p zs#_P!OUkYZTuHAuy+vWasbTLU>(B~?q5c!4GY(&EiZ_tW; z2dw&d0k&BFkMS{r8)@%<6T!y41HP801MCiKxL?u2GV8%zm^!JO2L zr`H`F9WnFehGR`c?5OfFWN`qwmZ*2p1A)cZ3b+XkCWq-($zBcC`9F9Es9nj`gy`{A zjnrc~Tzd|u!$$A^aB^C5NTLi4odw{W0~-my0iajpf{MUM--lZ>q*m~&`#n89C6G}lqw?3T@CgSPT7WqzBE&#xw~>M2%-@hxH=OKyV0k(@()ko=eH_^E zwYFpw!H8ZZf0GJCaf`~h3YezNRI}3P;QUP>N)A{k1z1WR0|8Lu)#3pe%^8SBHlR@mKl84sp%H0YL43>Qs&ddQ7dyaJ{@ zUm&GMrT4b=y6VZ3y;lem8z^8bWn=SA-B=gm6W|Nm&d^<)$4Mh&4roq$^ByH7ae~sj z3NZ+^ROS2kfk1i8uoDISbSa|4C`&Eqlgq%Zt)C~)XIKusdyG3oG>TUsFUO6*C;Eh& z06+sQ5E(=W5HMDG)c2KEurOOkqZl{O)^BFb_=hz-S6;2e6)Hhl7^rP$GP)*v4xa<# z)eI!e@B)w?2@q7DY=V|U~8)*#>xIlJnMFluT>Q)9!fw4D38RJ=FJJ^ zb-ZSFSX;phs2e|#C4mqD+%BJQWvmrIDqM8fq^7a9jydj3gPEAT)N~GySeIv|5)kHh z=2?C(JFGg0`WH(JuA+V?h&z6t4{N?aimr=XO%I`vds~pB3OWmr)EE7X-53tu0durm z+3+YPX}{v6@m+iC*&hA-fOC{8&;lZoB|=OpsEERmX=e0BcZm|35Yo`qVGvaUTG)Jx z2qdv*>W^K!Jb(qE@I!8c8cZ6*1O_Ko615>7dD=56g8pM^vk(Ej{EN802A#ku;QF?B zX7r(PO75@4r9yb;#lADL*x-Xr&)R*V;tP}Bvg|zj_pgGAaChMvPLMn}C8!2L@4>VO_h0+pJ@+u+Z%|Fn5d;mDbm#J@1`1bC-gZg|q56&zOX?oJGjT`SGdICN{rw8`S zY{($`TDccMpnKpJNnL>H?({0nY?B=*cK8<8(b8T+5S2)9WVJghkiFET!~4|KaOkCT zXzk+-p<-{XRpc1AD5#LZR$Bl+ZOfXx-M8hQ(ag;hD7sd!=f>6ly{#s!I( z6@>s{!rI%PB8)Loim{3b2*5$R$uCCji_k^{U?HAtY8CrAkozbmvE{}|8QMfrA)yvr z(O?)e`~5o~yu{G-*Mb4D+~x6BToZak0uW*@N8)Ha)OT-OEN&6~G$f-jF}hg;ps+FI zl!k3}#KC8GVVfoJS77g#(Ge4*5J77Z-&n0y6Aw3eK9EwL;qC$?d0``qu@iArkgG3) z+n*fm3I*JK5YIHJtEiyltbrok7CDprXKZ|&SHrUyl_}&3Qec8FL2eJF^73v#UVRAC z^EhY9k0d|eBxDV)`Dauy{qBc9bc0m082unxIbJI|vmNsKZa^7SAb`!GEZ$wXnE)&> z0IAL52L1!(>6Smf16IJ!9uTPeaLkAh0qJuCBO@lZ*Py*$(U1~Bss!X2-GTdTDfSAE zk9OSx4~^JDrb&moio3qW9yEH#Ll6gI#$Y!+R1O@&9f=zcFcS~YABYZQYEd~OdTdXR zN$u81YnLp;RxUhTwIC8{o`-HN6F-cG;u;<=G`xQRI{xR;1x2_UDhBfYPY+vskwMj5 z3b^VRW;?$@IG$l~!P_6iJ)`i3(lNbMCuOnNVtxZ@?)r zbk@Klgs1F%1zw;B*M}Kb8%5w4x~yvf#XuP={5TC)%ArIoA^C4~!P~{7ZEpG)E9H|w zBy-f`?N2Rf-Jbg#+Q7|pxqoUYKh$j6{AGsomMwn4`#7U67qa#q;FdG>5S?b=F8I0} zW%WTen&Wf!RuZjdC=;1bU{V2bm+;tm4rdkxKc|mKzd!ELx^?Raw@WnCpj)Vra1WDN zG=O77;tlD=n=YW^a@LJj0MajvW-6C^~AFt&Yi<+;^OO~2{nxk@gBr07fyUT%G^K4w)mj>Jsf zjB2UsuQ3wZItGDJZ6-R(TW{Z!inZlzyqKZJJ)C76=ogrM=;X@WbyY!KyIw2*asQz! z&zzmuPO+W5L6!YMf>lB0V*TG|htjj`!IkBqlhbCnZ<6zI73e|bvZE#@$w)YpBl)8S zXdB_FQHQEwYSd||opH~Nw|HJ?HEU5n>?-iu@4LtmypL zl9mTD;m^vfl*{&0Q8nx1L4=cD)D+dpaM&GOS{MLVN!B@L8nrbr23*?gU#abWO%$pl zviHtqr`;KFswUTen}=kESX00Ytr-$1%Bt(KfOMhC@~i7dmP9A4q)G8 z(($4Nl0%@FgnuLqYAT1VQ-!rlRo~m5m!%i%zuW(%Gd~;kdOT$5!(GLi$PU5CAmQLj z8UmxAPkc>JR;>-vWV0>OY?;?hczz`6PEVl-hC^D>{aBzrtAw>9B>KdSZN!)+q z$adayjf~0x{z{$>8SP8fYueh|^Dj}m0NBAY$^KWXX#RZthMFJJAFOtbMbRG!@dmn~ z=hy|7tHwnfst~7}AWS6Qnn;UV5(@RR+xxJe5zs#bl;=wQgfG9K!tSu+fCgL6c#uVQ zxC++!HP861{W(>mF=l;+E$0Y3htmY8b!15Ma!xi7B!WG4@;;ae-R9})^rCETSJ zfj3xf3k$%~4Tqxj4bT~wxOlC`R_Q~Bn&Qu?lRc53UF5D^i-dwjD!7%0wh*qMWMelf zkR+xnh=R{i$|S&4!hKuP!_im6k7)v3l>G7+4#ZumUDJ5z;lj3qS5L;ZkAb#QUh;5v z=bUCbV@t7^34tS090DvpsJ9xIKZJL+s^z(c$+;4+X#wC)e45ZON2AsqKp3&GH}cpe zUUa-{ziAr#ya|fPeALGB)%8@Kk#26Z#Dxs!I$c6`+kM$j9aTJTG&B1s?=urJ69H*S z6JHl}loqg2)Og2H1b!fzR6miD_Sd9M@V8X}Oxs*t4M|5R@!51Q`qLh>? znxQ0|HL~-RY{zAeYv_9UDS9TzAunH_JUUMxB2Xb%>!bagRHl1-HK)}gxGK`&G(D9bPWR} zBqtnlDPpgK_w!XST?@P@2{_aMdXHk&p zl`_)cG5pIp3Z+`oo_J@n@0OVH($M|2!Zb;C_ejfDcnP7{ywuhT%=6NNhd=>UEGMxJ z6V6w!TpE>4bJd7JZ&QA)wO;&BEr9iPN$Q)MP>v&!?n%-t)*y?ofwdffOCm5il#f!t zH#1P}ki#L##?prYLpDk3Eiv@AY~`Kbp_ks5AgK*jxOW(9%h%)7D)()~lNAH4o|G3* z#4z%3qP8M4JkWcx#5Bg?+{UAtz^+_B{lNEdmm!;(C5gQ+S^rEy{DWig6G*_Y1R@!T z*ud@8JL_;dT#YMnN{J7R;R2RbvR>qhBZWnX<4|4r-I2l>4bgAicbUDGoyzXR!f8b; z0n~69E4{jfm3#$Y6PKB_h)o}=|B6HBh?ULZ4%54lcRqflmwmi&KoUSfR)`VQP(%~W z92dq^ibj&?_Yfe9bM;waQlq+>tl6bCX8cMIGTzD6@UZ zT2;d@!{-inMnVDXV{7DZX|&wm3nXp=;wTgUEk+%*j^k5Pia_<4=sUueP?7$%N|-uA zVa4+0#EH_(-x7J=5YH3w<)tl=xqLZnYR3`a*p%zdWI ze{9~Y!@M5FYZUGp+0mH?P5wi7D=X`rBO`fJRkNMJqxpC=zp3g&mlTy%rXD2svdhYr zPG|u)ti?75!5T3saXiJEX#k!E$1yV3UXEl6izhg<`z((87hh^EK=;%@qB+)zW5@4H#$~eJH!-%J-ah<3 z^~zl=$c6)9I8FducF*JR_+DWk5f>1Bd5{l0Xncyf0ZuP*r zFe1s(mec_{#QND}7_^do=_m_$&&iV=-26hi#DEJ4ddMmtPnce3H}Q5QcD5$wQr4qg za5FdrspVR%5JodnhiVpeI7cUFhd^uuC0gtxO!GrtiW%1ygYM5g3|*!&{B)uI1nHW#Fu@eqbX?h zvir7>jvu$V0xK$rgC@#^X79@*9l3U>1M%#}lij^Q!x;H=+=#(7e$)UUfUBEZ6R-?l zPtP#i>_R+>fj}q`BekZA2GJ^zQsdC+M-Lv<1KNI$GSTq)N!%gJ6|J4tUm@X%Wvr108fhd31(oMT|rGTw51QJrJ0WDb*I2*F` z+pfm;2wyF;VwnC+dGpYxjLZ*TTedMQ7)HNU|(J$;h5DOoM%(f;jn8R49LXKo;W zTa{it=8MsUEDW_KLgM`ePhG2$=FKSFGs$%>CxASVs-Ni36m?mLI^`S5x_I(X11^e% z==ci&ASL)FWg`2+J`t;tZB^i53@IV8BSre%#D0!ijYR?-Pjy9;HT!le1th(A*El&e zJH*5s*`p@!jA;zQ1>+IZFb&&2`r*#}ndPT``^!cwUJ704RQFxFK@tl_WT>_ZoS429 zc#uX^oby8TL)mSo_>JFB7I5>ya2>h~1;84lW5I9@*$6%da)E5#-9Wc1i2Ky{Wx=4a z)$kObB|fo1=VKOUYn|XScowo3c&Ijlf$JB zXDDnmhK~L2alz=Fk%0SFJ_&sK1M~{O#Ok z`q)gTPg;kcY0KG+%birF7=-)rF@i2c`}q4=U-8}+J^NjVyMt|6Sf1xk*W{Y)F7Itz zr<*7DvQ+e$K5n8il??ysfh|LSwmcvJoa!EKr+nHJ*TWS_b)SN%qhh|qE$fy$arK91 zaqMxOqPY1<5!~ea*?UUb_do6Qbd%aIbXGpuL0%_BS|^0H@zn7ZFQOj2{^5jay6g#; zyiPJ}UtVwG$YrV*ck8u&yw;0T)jYI<+aC?CTcK?#BsmlQ>5S12XS$qNRK|d9$zOFZ z9MhI@rTP1BUYz1alJe@MP}t#9YVc^4GY$!wU|+~9I>TSw{qnm$(m4Jd-y4?5x zDUOo$Z!f4%v$Fko1FG(Wzut_B%H!D2??**tCak z6w2QGxYks+9%Dk_mx4}KZz{p+1_t})z~?c76kuN9&G_0iOtXiGeSJz2Wk=KZ=D#>?>Yu&7bpulD?C{Pt^B zxz6FpifKEZbGhT^0&KYgY@^TmEA!vhxOcX3^4qxl7GWS&gX@;J|9w)- zjZ};o(rveSSsz=!xlz9&z?YjZbmi(>(rbQRf-p7)FaKh7fzbH4Ro88{rngS{Retp1 zW7phUysUe}F^?Zts@s8&X_RV|P1<0S_C#8_@C#L;vSoXyx>Xz&4yI!0s>3&?|7&o1+ z&Z4vCVJ;zb00a$b0#AxijeH7P>;!2|1dQH={dM%#`|}`h4$l=YwK_<_!kuhSZbw zA?P0l*KPF=W31Q0ywGVNe@#GDrl5!z0OxFI>C(F%tw7?ur z4fq~#WmOnjLf(J@YY>5qK#5Tn3UJ4;N2TWK7zU0KULAC~cTW#G%2LPHIQavT4aCG5 zqK`{Z7b;<1r2Pqd1OSCVVe4eb-@~ExpBla>xw+pt(K&o ze-Yy2i)pQ-S1+FLRtfzL*>DF`do3D_wys*YX{N4HloOWSg7$B=wIMC0XFf291vMtEjG7yw~Qt})F>q6 z(P=#_T!b`W5R)$c81`^26vN>KYn^$#-6gOrbt`WHo6MaGPsR_MV*U214vfbnH}zf6 zhznD_tDUhldQrWyELkQg+OehfShm1L@BF~>RNrEUlFHaRizD`sf|5H)tUkz|W(WzI zK$cJSi!Ui-7Dxuy8DAm_BNZ4@Ny;lpN=5Nax!^SC4Ufx2@IwF$O`u?R!JUYLUFC87 z(M5b0vZDe!Zj|P>|9(U>Ufh{u0D!9(!m3IBumDy+43Hf=7;~w4U`o#*Vv~xNJ^J)c zTOy-wKoBPQ!2(dC<{j@(_2Xib8WAdC0d*`bQpvN3!{v;FJc?|DAaxLI$H@i~fTsp1 zpaS`HVeYdtkyLf0pMW=Gz=j78aV+9MF#>JyM4lt%Dm=n-t2TC_uhRo_M&bqh&Le={ zvjVn)y$qv}MJy0%F?1*fc(UvuIN`tg`p>HqDQJc8@T5A1h&vUblVN|pi-0YH+t*S0 z0mm!o1#5#{N?lxX5uZOssxLCfnoXIUo=&bS%4{>knkm~YtbD3zX zOEcaNCp{3syFc8VQ70`U08%sr?qc&_Pb`diI6e1k#PT9_`{B$|KXr>mp#J{0PGQey zE63k#yRL_blh+?&j}wkTd)^+7$)SweL5R8KBqSu#T07OXfcI6S;)9+C9?*;pHZe}~J-eE>+s>LG#7H)vMFCm0oA`d?G$9$@<*x>Q%^B0k zii-$dU)`!rn^+-RI=e|LxHF`!M=MNTE?OUKf;3i~a*Q#(F2#(@aabYMlQ+Yd96xRu zV9|JB4oqZg&>Y$q?F{+?PE59u;N$z`iQY{c%%u%N-k9yD&v2hChXC5gf({+jvsWa> z)^CoN9{>YOx^?u~%%pSA2zfz6OY6fF6&ZQP3vOabNIPUj#T=qI3B+qsmAEuWi;IVJ zzofzY=W!^$IpQvhJ7MXV(9OB$XB)|)qPgi|cHnksZQvb%?ax4A&!8LhQ~283fhV0S zuA6lR$EEV4>DvK|K|KHRC>fX}{nf1kh^rDIG{6I~Ol$i*c@m4J6OQAAlxu|A)dz5l z@JP-Hn6F|@8R<6Zb?YrRqt@UCFrd7pfM9ea3E*n$V+T=bv@wz{$)E^al+23640Pw{ z?frm|)9>1KeMgrwuo4LBQ!ug}S7mw8qN@nQ(s*qG=91=SK^!d>kc}3^^n@7H93V8B zQN6%Rhii&~_!~%x+_2TD(uQHVuhJlxZ9gUgA?1AzG*p0s2yBNTRCt8g0$h`Lptz>P z2}T({5P`+RK04@VX?*VeQC6roZq@T)22xp?x6%HZ$lzh|O{Et*q<20?O{> z*Y2<$%WD^-qKa?F(@(!+2PZ7CHx%b%kNBpI8zZ3bGk~F8%j`v4awTxvzYyL+!E_yo z0Z2-NNcFPl7?~yUnz9fr5fV*uq*$}I302YpA;I``&!??sBa8ubF)HG);ZyAbtjkzY(<^bMCI&AGtK*=FJ7-x;u^t2wWs9F90iitC=~9II#GU&Itudey>?B zgosBtmD5jpSzzJ>@}tVUH>8gQ?~(#~cZ;f3{cL5Pc(=)7x(E&&QpxEDt(C6kU_1#J z%rpR90_W7Roz|_Fbjcr(UK{h^(9mfZzz;XA%L%Roc?dd*p@>5Xcxjc0xsSHAqvO{z z(O9j`ryh8hzOO=Dy{@;t&vYRBf=Ap%dGXm*Tb34o&nYUJM|9BKvdeEE(FU6=(z=J> zjUWZ~&kjP_#7GI~+3-}wVkDpJF9V*3&H*aNL{it{T*kvrfIRhtC<4Z-0$pXxiJi{< zd+|T8hAIW~3gI|`H?hE|qNZm5o`(jq`@}w;4;4!SQz1#M{1TA))x)FQn+dl9T`fOC z0@;6tLEi@P#W6a{Uz5-z{*dJb1R=t5oF?27rO&)6xt|#cV?%Bbst@9XD9Lu@<2Ese z9KcJNAe1^`hf@0aJ1U3gD00Zp5)>5J=OHYf5QUzEFnYG97FQurtm>3u!;^J#2e##1k2)tw+Z+@?#=xKq{6H#+1inU#Q4B+ zGp0&d3>hWK&N7Vg91@*=r&U@Zg9Ai3ss@Onv;&zh6tJb&7^W0nBn31ANCI3QKIE;J zA-iPWqjT|1HO;PZ9cf4S(Lm9GA*?6Jce)GWNRR~Rf?CWMm^aiK11Py^+55wLd7F0ii4%v``!%L5?fvENMK=zO= zh480g0Ya&IkQ*yt(EPB?Tr!=>?cvg}ZeLAx)UqAt3xm;mq6{)kXelOfl?}esg)<78 zMFL;G_|YXDYYeXVb{lo%q-i+LYLmS} z4^{<>#q<%noTtSc&Xq#)$~UG5n=9j8MokvSlhbI(PK!ApZ`jMB0soe`*Jp+a*G3YN z@0r<&(4|BOo)m4q%S^l*>N^lMG*#GVmgD2EQn30ydskG4mf-l>Sq zW?S;wLPtZn+Y3&y85w{d5--#}*{@d=r8Z zBSJ8;jpr4G<9e5$HgH-yBwmaDU~5P-UgbSVgJg(6_2k(jbOTDA1gp=8(NaD(LVTam zC6Lvpc9Zp|315hwW&pH{zk7!-&Kao3fhemDIu^)=-H!O>^z{u?ivWPj3v z!RY$$y`7j-@W0eTSS8fO;D6C!z0G_48=c~Rs#fW!G3QDP8;4I27A4angb~yD*AR`;qjUmjWC$UIE65VyBdA%Lif-EPz_J_kw&Y0zS987j1BYE> zdu3(9J6>tww*N%@AkFrrHWecuz(^^$cVzb~*%Ygi>9l6+eOVJZ>JjX|ni}ouigzzS zf<}W(L0oG^uC>5nR%yI{@7|@upV0oLV2_*(a)8N$&sL`h?+0sMPlc}*vN}4^XB&O= z0~sL*c~BgVGebebF%t>~0AGi~jcjfuq&4DXJ;D*b3-}XFos@^@<|w2EnGU?d(84qD ztV|d353(qiL~O9ZI7y)(i{Tir`q6T;=&Ci@DTGjlfa2i}r&_&KDk}N_$&<$v@<&<( zp-!h6Rkg-YszGV)zw|PSCTH1VJ@VnNo@w0PlJ`+oLI2<`%?Ci1DlW|7GX{&uaJu29%qtAc63;GvF33d?Ye^@gO~f`%TdDN*x1_skyYupfGs zduQ%Y%Y$0>8`TO@Q!9h=iL~eG;R^`G%}$FGyC|br37AW?1z0YKhA7Eilz=uC7SD+y zgWv{2C%FBgcOoSMbg`t2Y`J*{lB&`<#~H{m6iiKa)2r1s{-scHdxxUqm#$)qu^i@g zG)XxNc}+BFBoTElcDdmLPza6#^oWp75Z1+^ZfcR~z%+KkeSQ7vs+vs<46&dx0k)7N z3$(RGCI=!b%Ig#~Z-WqAkSZ6HPpqW({)=0mV6GweWcmvFezV-k*BdXy0^0GSvD3ub z$N@Ac1O+w8?ISJX1q3g2%LD;s8UU}xKJ_Nw!^2}rpiq5vnFB**!&)A%K9NT#%;ui?H}qox}U0q_>~jk~9(rh_7 z_|*t#n#eM0$~!EP&NNuDrPB{8=0O<0_+bGwV188mmTlVp`Y1@i<@+hfuqA<^As8OH z|0syao?p4K88V;G9I{Sy;t~tRyiC1dB#SO*ljZ0Kb)ZlO;+8e>0EhKQA&*?jj3%%j zA4?HvEi?V3>>42Pm~*L6Z$bT#43~I4zzGmRVA|*6#xayd%7=eH+xT4SxbM`03ig@} zgxHVNLqOJ4?Bs;-s0kds8P8>smj@IK1h7jknlms|(80`n;?xYKwN~f?$2n+Iv_mr_ zsrNmCWX3pn3kuxGOI>s}tE^kS4tF`2r#+n|pau32PNMVJEWMdnkmvP05+=6DiVui2S&>(nA8GGadku4q`-#K~1+FkLlz5;js1V~aMHf)A9(gIZf z+%2n5dtsYcJkBhzs7rKZFU@nuD=+MSa$f#G@p;*=JHp4~<-b;?Rh!87IKHe9d%|4y zfKMX*X+v6MM7+78dh_=aFKpeZbzyHV36Y5+HVR||k)PyqWK1at)V63#FKcoD za`}c7Mj)!;Zig-l`Wv!$nqR`w5g-cmaYW|I$0vXP$`|J?8lDO=F(W`JF!RyKL{Hmi z0t`>_@Fc9(h>ix3WCU)K@B5UnSW@|rW{b2|U`ARWVr-hb&mZLkm65v4MdBY^HC8mle7*)Zl;dBB;$^ zPLR|DFF26kO$M)S!cB(gQ-0`Jl2xx4DiXaZ{wM~|b0sRFiT>JbuIPw}h$*Dm1gE7% zJR6PnqlE_=4`pJ5Kd zx#ly(o&ofp1g6M6k>#;N_+q%_dm{n#Mb;P1IRWkwiLc6eG>B{p$ED<)XN;AxREO*u zM|L1_4P_Kjeqyke2xm`8NRWyRr@UqDU5sf^z?EciotJu;%To_3pAoCL_0fV6REmie zVk8tkWCJups8Q!v2fQgR#Ub2I_?A`}n75{{p&dX+kR)(4jy28b3|EDhB3I0=Cn zI__s1oBl>3;{clyY7Db6LJr?jiOYncPboqt{e}%!nNLP~{Ybx-**B@EnwX$pI-W-H zg5(E-y2^iVOeZIyeS8g3w}Cdse0mZjW$e7X4Q%_+%&3uaoG3#fEg~yciGl!YRHN~u z1d+m5&s%WhQcxu?-sq$ab|kS=$Z!`ItWE2mI8W}=Qc7r+};bp(EOv1HdWIL5y)QOFsgm*B8@6y|2OD{qnn#Qiq$}SB9 z{XRf6A3X!t8nd2uJt25HgMIUw_$tiiSOP&Ki?4yy=NHWlvM)e+hLVQB2k=@1RLhWhGpzbc$I0OPHTtm@O2Dzf<{fZ`|#P{aD2cfqUEt&#evd{Tny`O_S%G5zH88 z&S3Of6Rn(TLY4FO@y{2jIUrvlU74R+zP54xX7CmhUn&{(e~AC~(ekza5e9baHvuL& zV?dP?S@%;#5=#@^TUF)H-s%aB!F{FDZG9K@#%k^~$WKDw61V54)MNa5i2xVe6>CUd&8G?H=O(_1<9d0>(9#9>SLyEcF~%Ls{7?H zrB3%V9ftec*PSMUiX*|1-(_wv3H%Uqs5OCDz{01WS__s_KUOz(KlAtXWtKz<>+9ih zf&cW~<7myXtsd=o@`z0Lv0vXc=L@Q5c2Uv7ypkiM5TPXquk5}Pv5Ef28&G{^`1NK~ z|2vwK|4H3KyJ6eUS9+oK>kv>;?Y#R_NI>=f-vU?2=0CkqC5~Bqz|kfhe(8XyxXcjC zg!;9EEU)&Uhwd*h`+1FTRfPTDyLI-Kzm{_zwWOI&h`3+mnBLB?#*}MZoh!Jix@Bz0 zjZK~Ir|yR81vC4*lt=SJRtrIna_jsv@=C_^#00pVTaptl7Yiu{cI;kQ`QwA;T;rdd zYOJqnWa6(`;ZhkF5fIZ{*P0^L`b+smWm=xzZiK(y=TfQM$6Wa9!2VYU>|KKJ&nrPC z@}QbWp|!niuI-~4o3MB>E28++R$v|WGvY|ME< zGq%i*FqK7vPnt^6`chs&n7eRrajdLSc$8t*m!#54*AVV@Nc(fYqMqILr{^*Y3M_?c zGbEn;>+>ylC>%1lRC)92zOsOnu5>>3!j38tm+9d1zD%?43YzL#FC-1}H!U{CRm5NR z`ef8JHtky+{Le=^BE8OEzAT*&3b4R$tv)v+NTdIH|YM_ROqj3eeuqTwpBV zJlE=-;_uJI%76HDxghlef1wXz_|*L~1A~+o1M+<}^78-sQ1>Oxds$-rihW;y<)zJx zRn>IiZLk#LR>~|G%6q1LUjA3)6YSRdP%4!2_9<<( zT^C$c?&n_}y)R&ZJ}@RaRnhv_4GYT=@t60y#zzzQxOHq=F$9xnb#HHcW@i__Fja6< zI=HJcH7+aL!z&|$N%DMSR8z-x>TgYE`862PWlcG6|F62)a}9~Ky}lnoT=mbF#M@A&6%$&@tBBt^M7xKwpH z)mRJq_EfcAIAv$z!#p~3?`_EQO}S??g5qi&Lk5rjqwO>Jjk_fJa`AhE?w%Me<*hB0 zt+uw~X|{2XvTH{hw;E{Vhd3B%L~)hr=lMMDmyzLglJwfc`a0#&;AU2J?Zu*?iYoby z|M~(33hnKuTlw`kB+bedbTmR7&x^-x*Dd0AZ?qUV`i7N%EF~d&ky>lB+>SQ0`40~x z4!Q6(ZW`3Q(7JMEIZq@G3Gc*?meC9SeQc>0Z>sP3BUV(O71w(IFC8D%QR-{Gg1x3f zeLae1KKJwkrK+owCwVXQUK==h{-Seqbp`hso1BdAO%JY$_vfn3G5070RDR#XpDQ=f zwDO;95PJ*vOFTN5#p$>LtKCm2<$v{f{&SN49sj$%d`Hd7%RVc1UQs)QD^+2g8*j1W zpZD=k^v-RgNmBRkePi3LH6f=roF^3UR6UB4rZmv-QyUrk5)UBDyOb;y>O-ELmpNYK zzCEli6yTlI(-xqZxARvPx+VR7Y^aK@c&o>R%jCwNXYW5Ixmb&vXZP_QF#?>mA#PIXC)P!o3G(IM7+_ui8r{HH~qoU$+>}OB8EZ)8~BO^mQFdF{v z+8Oonzh2A-fFq#=VBI*;F!CvJ!!~F3n)33$VM~$zqd#B$MQIriErc)SJZ^*1Mw?dc zm9(;dx%Z68&%eL*%ymC+&1tz4LN2f0%+fCZ`R8g5@q0Z?&p&W~cIKb75HHbs{pSz- zOCb8+zghoNvQC9Or)_w8@X@cY7sdd2X-uQ?5WgybSWK^6F#Gj)O$-?H0fVNbqob47 z>WDeploy the Dashboard + +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Create an SSH Tunnel](#create-an-ssh-tunnel) +- [Editor SSH Remote Connection](#editor-ssh-remote-connection) +- [Set the VM](#set-the-vm) +- [Build the Dashboard](#build-the-dashboard) +- [Dashboard Public Access](#dashboard-public-access) +- [Set the Network](#set-the-network) +- [Questions and Feedback](#questions-and-feedback) + +*** + +## Introduction + +We show how to deploy the Dashboard (devnet) on a full VM. To do so, we set an SSH tunnel and use the VSCodium Remote Explorer function. We will then be able to use a source-code editor to explore the code and see changes on a local browser. + +We also show how to provide a public access to the Dashboard by setting a gateway domain to your full VM deployment. Note that this method is not production-ready and should only be used to test the Dashboard. + +## Prerequisites + +- TFChain account with TFT +- [Deploy full VM with WireGuard connection](../../system_administrators/getstarted/ssh_guide/ssh_wireguard.md) +- [Make sure you can connect via SSH on the terminal](../../system_administrators/getstarted/ssh_guide/ssh_openssh.md) + +In this guide, we use WireGuard, but you can use other connection methods, such as [Mycelium](../../system_administrators/mycelium/mycelium_toc.md). + +## Create an SSH Tunnel + +- Open a terminal and create an SSH tunnel + ``` + ssh -4 -L 5173:127.0.0.1:5173 root@10.20.4.2 + ``` + +Simply leave this window open and follow the next steps. + +If you use an IPv6 address, e.g. with Mycelium, set `-6` in the line above instead of `-4`. + +## Editor SSH Remote Connection + +You can connect via SSH through the source-code editor to a VM on the grid. In this example, WireGuard is set. + +- Add the SSH Remote extension to [VSCodium](https://vscodium.com/) +- Add a new SSH remote connection +- Set the following (adjust with your own username and host) + ``` + Host 10.20.4.2 + HostName 10.20.4.2 + User root + ``` +- Click on `Connect to host` + +## Set the VM + +We set the VM to be able to build the Dashboard. + +``` + +apt update && apt install build-essential python3 -y + +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash + +export NVM_DIR="$HOME/.nvm" + +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm + +[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion + +nvm install 18 + +npm install -g yarn + +``` + +## Build the Dashboard + +We now build the Dashboard. + +Clone the repository, then install, build and run the Dashboard. Note that here it is called `playground`: + +``` + +git clone https://github.com/threefoldtech/tfgrid-sdk-ts + +cd tfgrid-sdk-ts/ + +yarn install + +make build + +make run project=playground + +``` + +You can then access the dev net Dashboard on your local browser. + +To stop running the Dashboard, simply enter ̀`Ctrl-C` on the terminal window. + + +## Dashboard Public Access + +> Note: This method is not production-ready. Use only for testing purposes. + +Once you've tested the Dashboard with the SSH tunnel, you can explore how to access it from the public Internet. For this, we will create a gateway domain and bind the host to `0.0.0.0`. + +On the Full VM page, [add a domain](../../dashboard/solutions/add_domain.md) to access your deployment from the public Internet. + +- Under `Actions`, click on `Manage Domains` +- Go to `Add New Domain` +- Choose a gateway domain under `Select domain` +- Set the port 5173 +- Click on `Add` + +To run the Dashboard from the added domain, use this instead of the previous `make run` line: + +``` +cd packages/playground +yarn dev --host 0.0.0.0 +``` + +You can then access the Dashboard from the domain you just created. + +## Set the Network + +You can set the network by running the configuration script. Simply set the network as the **MODE** (e.g. **main**, **test**, **dev**): + +``` +cd packages/playground/public +MODE=main ../scripts/build-env.sh +``` + +Once you've set the configuration file, you can build and run the Dashboard. + +## Questions and Feedback + +If you have any questions or feedback, please let us know by either writing a post on the [ThreeFold Forum](https://forum.threefold.io/), or by chatting with us on the [TF Grid Tester Community](https://t.me/threefoldtesting) Telegram channel. \ No newline at end of file diff --git a/collections/developers/grid_deployment/grid_deployment.md b/collections/developers/grid_deployment/grid_deployment.md index 2680eb5..ada1b79 100644 --- a/collections/developers/grid_deployment/grid_deployment.md +++ b/collections/developers/grid_deployment/grid_deployment.md @@ -6,4 +6,5 @@ The TFGrid whole source code is open-source and instances of the grid can be dep - [TFGrid Stacks](tfgrid_stacks.md) - [Full VM Grid Deployment](grid_deployment_full_vm.md) -- [Grid Snapshots](snapshots.md) \ No newline at end of file +- [Grid Snapshots](snapshots.md) +- [Deploy the Dashboard](deploy_dashboard.md) \ No newline at end of file From df45b0e38a8f0104b98eb21e19eb058bc3b3c09e Mon Sep 17 00:00:00 2001 From: Mik-TF Date: Tue, 14 May 2024 15:07:39 -0400 Subject: [PATCH 2/3] manual update summary --- collections/developers/developers.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/collections/developers/developers.md b/collections/developers/developers.md index 4e1c98a..410d5ec 100644 --- a/collections/developers/developers.md +++ b/collections/developers/developers.md @@ -87,4 +87,5 @@ For complementary information on the technology developed by ThreeFold, refer to - [Grid Deployment](grid_deployment.md) - [TFGrid Stacks](tfgrid_stacks.md) - [Full VM Grid Deployment](grid_deployment_full_vm.md) - - [Grid Snapshots](snapshots.md) \ No newline at end of file + - [Grid Snapshots](snapshots.md) + - [Deploy the Dashboard](deploy_dashboard.md) \ No newline at end of file From 6b20cce94feee1b6372023f63c76283f5f105aba Mon Sep 17 00:00:00 2001 From: Mik-TF Date: Tue, 14 May 2024 15:12:18 -0400 Subject: [PATCH 3/3] manual update mycelium --- collections/dashboard/deploy/deploy.md | 2 +- .../{ => img}/solutions_staticwebsite.png | Bin .../{ => img}/staticwebsite_list.png | Bin .../grid_deployment/deploy_dashboard.md | 8 ++-- .../mycelium/information.md | 36 ++++++++++++------ 5 files changed, 30 insertions(+), 16 deletions(-) rename collections/dashboard/solutions/{ => img}/solutions_staticwebsite.png (100%) rename collections/dashboard/solutions/{ => img}/staticwebsite_list.png (100%) diff --git a/collections/dashboard/deploy/deploy.md b/collections/dashboard/deploy/deploy.md index 2b358a3..2a66a64 100644 --- a/collections/dashboard/deploy/deploy.md +++ b/collections/dashboard/deploy/deploy.md @@ -4,7 +4,7 @@ Here you will find everything related to deployments on the ThreeFold grid. This - Checking the cost of a deployment using [Pricing Calculator](pricing_calculator.md) - Finding a node to deploy on using the [Node Finder](node_finder.md) -- Deploying your desired workload from [Virtual Machines](vm_intro.md), [Orchestrators](orchestrators.md), or [Applictions](applications.md) +- Deploying your desired workload from [Virtual Machines](vm_intro.md), [Orchestrators](orchestrators.md), or [Applications](applications.md) - Renting your own node on the ThreeFold grid from [Dedicated Machines](dedicated_machines.md) - Consulting [Your Contracts](your_contracts.md) on the TFGrid - Finding or publishing Flists from [Images](images.md) diff --git a/collections/dashboard/solutions/solutions_staticwebsite.png b/collections/dashboard/solutions/img/solutions_staticwebsite.png similarity index 100% rename from collections/dashboard/solutions/solutions_staticwebsite.png rename to collections/dashboard/solutions/img/solutions_staticwebsite.png diff --git a/collections/dashboard/solutions/staticwebsite_list.png b/collections/dashboard/solutions/img/staticwebsite_list.png similarity index 100% rename from collections/dashboard/solutions/staticwebsite_list.png rename to collections/dashboard/solutions/img/staticwebsite_list.png diff --git a/collections/developers/grid_deployment/deploy_dashboard.md b/collections/developers/grid_deployment/deploy_dashboard.md index b126b8b..6c85532 100644 --- a/collections/developers/grid_deployment/deploy_dashboard.md +++ b/collections/developers/grid_deployment/deploy_dashboard.md @@ -23,10 +23,10 @@ We also show how to provide a public access to the Dashboard by setting a gatewa ## Prerequisites - TFChain account with TFT -- [Deploy full VM with WireGuard connection](../../system_administrators/getstarted/ssh_guide/ssh_wireguard.md) -- [Make sure you can connect via SSH on the terminal](../../system_administrators/getstarted/ssh_guide/ssh_openssh.md) +- [Deploy full VM with WireGuard connection](system_administrators@@ssh_wireguard) +- [Make sure you can connect via SSH on the terminal](system_administrators@@ssh_openssh) -In this guide, we use WireGuard, but you can use other connection methods, such as [Mycelium](../../system_administrators/mycelium/mycelium_toc.md). +In this guide, we use WireGuard, but you can use other connection methods, such as [Mycelium](system_administrators@@mycelium_toc). ## Create an SSH Tunnel @@ -106,7 +106,7 @@ To stop running the Dashboard, simply enter ̀`Ctrl-C` on the terminal window. Once you've tested the Dashboard with the SSH tunnel, you can explore how to access it from the public Internet. For this, we will create a gateway domain and bind the host to `0.0.0.0`. -On the Full VM page, [add a domain](../../dashboard/solutions/add_domain.md) to access your deployment from the public Internet. +On the Full VM page, [add a domain](dashboard@@add_domain) to access your deployment from the public Internet. - Under `Actions`, click on `Manage Domains` - Go to `Add New Domain` diff --git a/collections/system_administrators/mycelium/information.md b/collections/system_administrators/mycelium/information.md index 890c0db..a9eee41 100644 --- a/collections/system_administrators/mycelium/information.md +++ b/collections/system_administrators/mycelium/information.md @@ -5,7 +5,7 @@ - [Introduction](#introduction) - [Connect to Other Nodes](#connect-to-other-nodes) -- [Possible Peers](#possible-peers) +- [Hosted Public Nodes](#hosted-public-nodes) - [Default Port](#default-port) - [Check Network Information](#check-network-information) - [Test the Network](#test-the-network) @@ -36,18 +36,32 @@ If you are using other tun inferface, e.g. utun3 (default), you can set a differ mycelium --peers tcp://83.231.240.31:9651 quic://185.206.122.71:9651 --tun-name utun9 ``` -## Possible Peers +## Hosted Public Nodes -Here are some possible peers. +A couple of public nodes are provided, which can be freely connected to. This allows +anyone to join the global network. These are hosted in 3 geographic regions, on both +IPv4 and IPv6, and supporting both the Tcp and Quic protocols. The nodes are the +following: -``` -tcp://146.185.93.83:9651 -quic://83.231.240.31:9651 -quic://185.206.122.71:9651 -tcp://[2a04:f340:c0:71:28cc:b2ff:fe63:dd1c]:9651 -tcp://[2001:728:1000:402:78d3:cdff:fe63:e07e]:9651 -quic://[2a10:b600:1:0:ec4:7aff:fe30:8235]:9651 -``` +| Node ID | Region | IPv4 | IPv6 | Tcp port | Quic port | +| --- | --- | --- | --- | --- | --- | +| 01 | DE | 188.40.132.242 | 2a01:4f8:221:1e0b::2 | 9651 | 9651 | +| 02 | DE | 136.243.47.186 | 2a01:4f8:212:fa6::2 | 9651 | 9651 | +| 03 | BE | 185.69.166.7 | 2a02:1802:5e:0:8478:51ff:fee2:3331 | 9651 | 9651 | +| 04 | BE | 185.69.166.8 | 2a02:1802:5e:0:8c9e:7dff:fec9:f0d2 | 9651 | 9651 | +| 05 | FI | 65.21.231.58 | 2a01:4f9:6a:1dc5::2 | 9651 | 9651 | +| 06 | FI | 65.109.18.113 | 2a01:4f9:5a:1042::2 | 9651 | 9651 | + +These nodes are all interconnected, so 2 peers who each connect to a different node +(or set of disjoint nodes) will still be able to reach each other. For optimal performance, +it is recommended to connect to all of the above at once however. An example connection +string could be: + +`--peers tcp://188.40.132.242:9651 "tcp://[2a01:4f8:212:fa6::2]:9651" quic://185.69.166.7:9651 "tcp://[2a02:1802:5e:0:8c9e:7dff:fec9:f0d2]:9651" tcp://65.21.231.58:9651 "quic://[2a01:4f9:5a:1042::2]:9651"` + +It is up to the user to decide which peers he wants to use, over which protocol. +Note that quotation may or may not be required, depending on which shell is being +used. ## Default Port