From 67f88188e13a794e7c93af2867d1f6301926e5bc Mon Sep 17 00:00:00 2001 From: Henry Dollman Date: Tue, 29 Oct 2024 21:07:16 -0400 Subject: [PATCH] add makefile --- .gitignore | 1 + beszel/Makefile | 35 +++++++++++++++++++++++++++++++++++ beszel/site/bun.lockb | Bin 158101 -> 158133 bytes readme.md | 28 +++++++++++++++++++++++----- 4 files changed, 59 insertions(+), 5 deletions(-) create mode 100644 beszel/Makefile diff --git a/.gitignore b/.gitignore index 613e06f..90f1512 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ dist beszel/cmd/hub/hub beszel/cmd/agent/agent node_modules +beszel/build diff --git a/beszel/Makefile b/beszel/Makefile new file mode 100644 index 0000000..b9ffca2 --- /dev/null +++ b/beszel/Makefile @@ -0,0 +1,35 @@ +# Default OS/ARCH values +OS ?= $(shell go env GOOS) +ARCH ?= $(shell go env GOARCH) +# Skip building the web UI if true +SKIP_WEB ?= false + +.PHONY: tidy build-agent build-hub build clean lint +.DEFAULT_GOAL := build + +tidy: + go mod tidy + +build-web-ui: + @if command -v bun >/dev/null 2>&1; then \ + bun install --cwd ./site && \ + bun run --cwd ./site build; \ + else \ + npm install --prefix ./site && \ + npm run --prefix ./site build; \ + fi + +build-agent: tidy + CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) go build -o ./build/beszel-agent_$(OS)_$(ARCH) -ldflags "-w -s" beszel/cmd/agent + +build-hub: tidy $(if $(filter false,$(SKIP_WEB)),build-web-ui) + CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) go build -o ./build/beszel_$(OS)_$(ARCH) -ldflags "-w -s" beszel/cmd/hub + +build: build-agent build-hub + +clean: + go clean + rm -rf ./build + +lint: + golangci-lint run diff --git a/beszel/site/bun.lockb b/beszel/site/bun.lockb index ccc65f336138d9e98defc92338fcb1916053c0a8..8505c998df6df4c6ce2ef99828302e3ca738e795 100755 GIT binary patch delta 19455 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 delta 19393 zcmeHPdwfmD_TO{lM0OMjA&-MdLOenwk~j!C-o&G-Xcc_~DQQEHAgPi=UxJj_bm~#{ zD)pvl+^gzQO7w9Xs#TA=tv*rOTesEQYJcDF-m?h}y}iHt`~3bfwf1+`nl)?I%&eI` zd!OuXJEG4!qR+llIE#9>&+q2YwCbAXZLVorCE&3NnidS~?4xN_fJ3vh)3b+a+J4BX zH##dj2QqD-Q`0JgPlMbaI4W&aR>m+*>jYj0pO-c=6DGB7-~+&~0@B`mg=5pRvogo0 z=W9nQYFao7N`N%914zXYY1vs5MxhZ{V?$Z0e00Xcc{Dr-d=TU_ltC|$9T=xDBfIJF z%&Z|=6$okfQOJq2!PDNoCf`@{y6&(%9x^shrvV?a967~1SnFJ-{)VKR8i zN2ZS*o{r(O8*XZRB7#FNpen~}V^vLqA@9#X{PWf}0v+KI2QVbGT@a{g_~%UsEpBR z+1bm$)58wHn!r|ye-jLSabcqAMVyjv1#iw35cc!EOF}FI*+33Sk5CKSfoG>qf@iRl z0_mua!u?^EgF!A!|BvkStYtZJy`4ujZ(Vpsk4DzE8W^H*!ibEaBhcfF?DX7p;3de} zqXTuUhDWF6jA;63dR`Gmh$HYAkdA6~H4Q#_zeL2rSMN^nlpi)qD}=XdjkUn>7@IzH zMB3P#?0Vo?du)2z&>XZ;;HSg=lZ~{iRwkB}6!c~yd zpa+H!UEV|>*TCE8NeIv$vF)m7<1=y?soL1A%*=74HEop#0R_DoKsr83@%@1eO*gPk zJ~Gvj!DM^CPq9YeC=g-peFcaB^v(uyB*p;4fp;rR1l9pxL-9YgwHo>u$Pp?9a%yk3 zqo-#N8E15=*w0u}F=SwFS8IOKfgHBG6?zmlQ5Xi~X!t4op^L?Trtq-BU)xxXpKoLM z`*qRxfkohZ4dXt)-eQ@t+V7db-)$yFdwsaR7@CX+!`Q6n=P$?La&mGWw%nTuo|E!N zQFF7fv!f|~xHXo45JkpD{|HfNl=?Tzx5Hq9@@P|*rePQK4pq}X5mU}-9s=a__JW*o z_{W3A=u51x9L5He-s)sAmF-cO?(BQV6f7a7LW8#&fcs1@X$3pwL47f1&% zQsxZVE3-d%-hwb;=K8ne6wzU>U@S;8uA_}lDup+KE9QobwQa8FygaKmSX0~in6*kW zwlumU{0=e5NDc9bIYvQ<$8p7B912NsT&!UDho*?WMrx=>U+SZ2SlHeQMp1-YKML+n za6U$#P`8LO^e~SYZls2J^wl_RVB)>P2&~&uIE_PLDWZX)yF4PzNOgJiB415wk8-Ec zC(NxM2G@H})Z?qSJv0>|0p9X`&0#w`r#rc{& zJZ7YZdqjv)5bn|YVeg<_AJgX-z_Cq-$(_Dd7UCB5jDorz{Q>Nz*2whCwkv@28(m1HBX*4L!;u zgprDCqEUeBBSuM-$GHQytae7Puw>zHq}KC@yNm){XBj299yRp(9!KRs<50a6y)#0J zE|?8D7l7+-RIZaOJ~Q-akLYNm;=0Qyz%{@q!L^H_H}L55u(i+$VU*T$>!-oB0EdCB z>(*-o*=2!s+7jxDjJNn+I2Jyn*s(3{nvY6<%%L&`hihnh`zlK zj{aKh?}g}W(saA?8}F~HDUdGwdA%HX#6)F^-~0>{c8mW?R4b0Rp8Q8_wU|0{B; zKCJynxv9nAXwlem6{BC@tv{wXgcdfAca79!k6tszj(BcBi;a?Gk2qoIZ9IC7Ce{i> zr?Ht%1(yQ52-0S5=WcK<*t+9~CWe386w%d4ZR^pW!-3RNVmIFh*9uk42^5tLJ;kGU zL@Y4S5KJL%=TqR~jKc6_eH(HeA-8t^I)?7?hNX2!%QP2)+BVN-+K-*fRQ^Cc7Gw&VxTi|F3Ar$U*Hpjx~V)P14cFsla9-}ZU zSwD+hcT2yX+u0hM_9K)#_aXOysS%l^X%E>N`U-GEu3GfP40kg1yCY{>bS^=zpHUc< z?7W2Boo4A!H*A=>H<0UT=BgsRx>HZwXXu?h`UUVDNlYB3>RzLuv&UJ0!R%!8%4*|> z3^xFDBoezV!t8Ev*uOF3dEit~H*`Cx^jqXC4^lg8+P$oyFF}rb3Ff|@8zG(A%cEE8VnvU+LFxU#p?e%-#L~ho`kg;F z$j1`VNK8Zl!V=-Zj>i_w0fH}PDvLglbOluaA%x8IXOMP#aw2I6QED3MYns7GmO(m% z8>8u1eLu38;;Cz;1j?F}5a|12bMDl|bPo)0+3LjATAdsm%bV5GNEVYpJ z(?PU591n-4K`cx&5n1pEh>DMbn98Cb_-s>ZA@y=V#BoYaq@4+%ilE6Lrn1QSn1c4r zic`VRz!M;*^3WIZ0uT+)05O$^v@;V#ECewTS#K5@BqHt2L;L20J`ZGt`5-1DJzPWv zsVq|O1rTvDh>1x3r69_eftZMtzeEP6Jh z7swz1al5fHe~8=_{s9uksmH82`lne()5;>v|3EF!k093i8ANvkgyfw-y6Xq54sR2FIQe#kkF zLx5D_V>lC$^@b~a6v(1Xp;q%qa!5orm<_xG$jz=Aut=5v*U{Wf|6~K~>0ISdSqz4J zt&;z{nE&r8{vYY(m+LX-a1(mM&TPhoJ>IH%Rvxlw8!lWU#Y&Gz{x86)z=J^AeMgmB z=(Yq5j#3n`q4$--txy=1CkN*WsRaDk;`6n?Bf~kl z$Wn!D_!9U~U}bp6eKkm-3rN-4K5GbU^*gr}0-bI-Ch)B03m< zqm+Qi3XdtCNQ1M1bU*@Gw1AfzkcJmRPRCwQ%J@1xGnArgK+ztZQVC+ zpR@mu&d=o@pSk>QXz%tp8>a%^r*EIL|DE$Tk3_f6*|*Qx<~e)Iq{0JJoD!?YU-qeq z-|*Xo_{b$yg`e|tJVaEXEZCGCtSSbGyyA!eaioItbPyhDiZ_Rgt_~LJ73x@jD^OYX zswqx5hehDggH@pMMT|%g(ZxwIqGM_!u6?Es*az^>d??@}5EEZJQO2kb zlS^|%^|rMrN9qhYeWB_UmLqjl>U>t5s$|`ij1N1{%I|362i8OCu8R0b`m2)lP%?kW zURSc7O2!AW(X#zGn6O{G@%EgzIGyO>BUODNPjx zBEM0|?AK&`?zc>(ehny99V(p6Cn6xC3&hk^8h&ssH=Y=qL|`>0=J z{CJr77+I!AR1qIePn#0Fs#mfw@Y9qmQ^{Q5W8@T?XrhKG3q{P<2JxK_`#MIcBgD-2 zM0}VYt7PHGZ<3`n@ddI>IjSfEdA_e>rn*eTnh&Bk&nQ_e^7B9qLDQ718S>A`z+9M+s%W|@iU)rdd3rNL$(kd7 zPRV8}SpsBV%QTp1#8+N)>RDBkggjq|H3802vKGiMk}u?nGnM&F&*%I_pxLr84}UIO z1T6!^*98+nkAo(G^5xDv;S$ftkMcxRK3^_mfyRK+Ktn)7LFu3Ypn;%4puwOnpst{9 zpj1$IP;by(plA@^jBsK81ma?JK;{GT1#uzr=E#@8qd<(b(R|Iu@Z#ePPxJh}VF&0U z=oQcw&{ohk(5s+g&~^~tT)YTs0fTN(OVGWL^F2Wy(A}U3pj=QM=rPbl(Bq&kzWT|5842F0`w%7+VaOmVE$w<`5-T7 zFenF<4tf~WAH>b>K@fiw;G4E@fenFtzZefn0P&q8HxB**Yh4guUWS7Bl9ao_3D8HN zW1u6T4?v}$er$RpGB1Hvf(k*;f@XlGfbIunfQEzkdT$}*it z1eyafKyyJeK@Wf)0r5!s1L#K(Hv%sFF9qhC%X}>q)_|6SR)7|QmV)?xnD2`DK6no3 zX$&cM%^y*A88i}<2I>Ub4CnZ=^Z;lrbk>1%88}&li)u1{vZ$W_GqipIy@C>Ms;`2! zg7^}i+j$De4T=Ue0M!CHK%b+|XP^QQcT(=0+`za^(w0r1DS^Vql^)D}SD zdC+1Icdh3@62vWuTM%EPbHCyKLcK*GyABP11F{<TnzqD)%$)Dr zJJ>{AtQ#RLE6+j`jOJ=kcx6G)M!QQ-1VJGV9>m6Jxw1VJu#g8)kIMw^cmsag_;}?n zQlm^m@v(4Vubc&iB(B98P6kX<=v068=1CI8QY-@oDCm($ryl(XM-T;-?PxC15ow6FXAqi}c(O5$P@lbXlI1;|N7un;C?5q7+K@-1>r z<>%mBtx=2Pzad>#xl(vI0=1gQCdDQqI%L8ekx>1{84M7Amw9u4x zmz+VkSH?dtYWgH$ZOPKz7!v#Y64&bd(;L3rhDGr}BIXxEGERQO`d(T2EMSI=m%q%<#XYGXZazaldLpP3>RiIHGN=jpbRWV(-?_ka@9O&43a12 zp<0&w=RDENWq&}k{E_kF@_rpu+w5q30!FSx-v1o*j>rkmp;l$N_Bp8A-^cjB@X7Hf zE1uyvGg{EjY*}53UN}CdNz|GnCjwmdS1~>Vn)iFhcg=pNCt2NWEH^?SsWt|gD`m#8 zxtm`*UUJ&B7sv2ys!Db>S$I6Te@J(fAZ%k16XWC+36IP%O>kVOA|HNU^mP5+5~dh& zf;*9X=Xnw8__?b5ii-A^H;bR%(edRgRaQF0p9kR`R8VA|c8CFlWsjAN=}T$D@hn zh?p^Mf6DVzz~IcxC&ePO1e-y;woF!D1oLaLhHy^yzA4);ft4k%2G3_D-;DJl_AibB((M`8dRCNVrYdf69Mn zv%Skg552*yjcWrD+)h5os`dv)wIe@?+O0?a1qv-J1^bhufnw2#E4w?oLo(mtp&)`~(VER6kSC{uZfpz?%0`FTMCVf`nTP*3E+l*@$Ls}Y@^9c=JF(w!z#mE-S}C%iKPLxw7L@kjg-AfRY z_V+ynQ#RywThIpmvBz|dd~pe^Es3<|>yQXM-h1s=|AIoidB@T=$RkTcOw?;osEy|M zGp!Ds7?S+2jA!~i93bqHAQ`a~?$wrA0NHP;2vd2N{Rz}pFHf)f!3VyWmPJuk{8-A^ zjCP`q%l=#``pW^aiEXA%GP`8X&P@3oZ7-FTmO;<{{OPO5zxW_huB&#f>${`}3gR7k z-!d%WlXBHEu~5vG9hZyFdS0~kCgBNLv|NN%x4*e+x@%kQ;W1upWi#bY6zKDy#~v=0 zrXt%}Xzt9Ch7KC)6YcHV(U2wm>kBx>k2 zn8lc=CYvWzgqnX5#Y>-Q1G(-NmW zLoQtf-&)B&?~Cg4-BrR@_{%XbLsV0y9Yav^AjLKCdlPnvGLb6-*PxnNJ4U~u(2`y? zW`CRYR@k@ovTDdx=D3^pIAzQuBaVvd70uPI^^xt-6EREt(L2w#`|Mcc9!!$!ZkBNw4> z4{4AbbMmU`|8SV#-Un!@%36D*Z!%Ulj-VO@t3yJ$UB;Np{s8a9xaFOGJDBvOUA0aiioXi-a)MI8Sz=+&Wgo5YV|%~E&(12wKKA46E;sg{+Org zup0FPr$qIAJ4j5CJ5iw9n^zNgdXq>9`n_K3R`T^tA_V%L%_8EahE%y2E;nu#p-t`Y zDf`76n?E>yaK7nwb1stKw_te^WqVTYmT2Bo%pND))P<{kQIS-3ZeyJ0P|KptxW|QU z!7gUBvG)C~Kh-%t+q-x>JaormJ8iBlmc6%#&=&Sri_vv!y2Bsuf67uw#53J_RK=Om z`*dnbkL8!9U9n2IQU2OSF5V&#J$m6czGZTo9f zcZ2mUoB#Y?mum{uWqT+Hw;V)0`*T)L#Xb*@omMjJn%*cmiwgGluT?)Sjc@YHTfbaW zSS8d@bwjEwB!IM7^!F#m}U8BEtw7aITwQKRP?P8Qe7{y2a zD*htGGTG+I;b(RxuEqJ2=WX2HHS_)%D$F})sCY$wcMw%` zW&B6zd%Y47=J-BAwkyGoV%`ANJznj-Jn!r&fxdaWU|HH*2oeR#4a=5o+0rcchGhoT zbvLY=*ta@%-L2%RrfThaPgJkUZss>u=pbjDL`TY1Dc9IdDlB~$6RVsshqi{3j||EK zHBMGtIr?wn&hlHlYP|h>FjsE-<#{S|OGTm;48d|=DdOp>A#-A^8Ig5P;Mt+9kD>M? z-y%-n`WXz+^&L?$q59)J0=wn;bzNiE4alvgQpJxIpfZzAs{p^w7dh%EN^TXMH|ur{ zIqCyZ$2MAS&&ushx$&*mk+NdBBOm%4^KlCs^6YW=el!1YfM=(#Gil9ef^2dOCFNRH z>Nl2^9>>bObxU>>2=hc7DqfR2PGHKdL6;Zc%PrzVHLE661$x=|=;gZk$$yy4`t&BN z&vla{Rg3@jk*d6Xs{9dF^M8|pHaA2SyVor;dmw*3{kuuMak9$TC}*{rVe!A3ta296 zbrbiWO_hD)xvtl@^z#<+be)UpUZz(0f6==e?t6c@Y|EY3b+X47*S5x6ZD|2gdPk)6o$p6Ee@6~6;lrrzS2g%Ooa62mR<+r~) za1Oc|GW9&RnG8AUJRVkdpU2MzNW0~W=S6$`Xqc0hkvSn_)Ud9D4o6>z+1$YV6A|=Q z{+iGsb5oCMJdc$9-R8z}`~S%F>i*G{7WS$!wib@{)IZUG;);9M)(vd{o