From 52df4afa50512e83f58b373a10bdc12f80aacdcb Mon Sep 17 00:00:00 2001 From: Shane Date: Sun, 11 Jan 2026 19:42:54 +0000 Subject: [PATCH] works but klaus is basic/ugly, too, like gitweb --- Makefile | 25 ++++-- etc/systemd/system/klaus.service | Bin 573 -> 570 bytes scripts/klaus_app.py | 34 ++++++++ scripts/manage_repos.py | 136 ++++++++++++++++--------------- scripts/repos.json | 32 ++++++++ 5 files changed, 153 insertions(+), 74 deletions(-) create mode 100644 scripts/klaus_app.py diff --git a/Makefile b/Makefile index d91b17a..dfe33ae 100644 --- a/Makefile +++ b/Makefile @@ -65,17 +65,20 @@ test/nginx: ##H @Remote Test staged configuration without deploying .PHONY: deploy/klaus deploy/klaus: ##H @Remote Deploy Klaus (systemd + nginx) and install deps @echo "Uploading deployment bundle..." - tar cz -C etc/systemd/system klaus.service -C ../../nginx/conf.d klaus.conf | ssh $(VPS) "cat > /tmp/klaus-deploy.tgz" + tar cz -C etc/systemd/system klaus.service -C ../../nginx/conf.d klaus.conf -C ../../../scripts klaus_app.py | ssh $(VPS) "cat > /tmp/klaus-deploy.tgz" @echo "Installing on $(VPS_HOST)..." ssh -t $(VPS) "cd /tmp && tar xz -f klaus-deploy.tgz && \ - sudo pip3 install klaus gunicorn && \ - sudo mv klaus.service /etc/systemd/system/klaus.service && \ - sudo systemctl daemon-reload && \ - sudo systemctl enable --now klaus && \ - sudo mv /etc/nginx/conf.d/git-http.conf /etc/nginx/conf.d/git-http.conf.disabled 2>/dev/null || true && \ - sudo mv klaus.conf /etc/nginx/conf.d/klaus.conf && \ - sudo nginx -t && \ - sudo systemctl reload nginx && \ + sudo bash -c '# apt-get update && apt-get install -y universal-ctags && \ + pip3 install klaus gunicorn markdown && \ + mv klaus_app.py /usr/local/bin/klaus_app.py && \ + mv klaus.service /etc/systemd/system/klaus.service && \ + systemctl daemon-reload && \ + systemctl enable --now klaus && \ + systemctl restart klaus && \ + mv /etc/nginx/conf.d/git-http.conf /etc/nginx/conf.d/git-http.conf.disabled 2>/dev/null || true && \ + mv klaus.conf /etc/nginx/conf.d/klaus.conf && \ + nginx -t && \ + systemctl reload nginx' && \ rm klaus-deploy.tgz" @echo "Klaus deployed!" @@ -164,3 +167,7 @@ endif .PHONY: git/list git/list: ##H @Local List tracked repositories @python3 scripts/manage_repos.py list + +.PHONY: git/sync +git/sync: ##H @Local Sync remote repositories to local JSON + @python3 scripts/manage_repos.py --remote $(VPS) sync diff --git a/etc/systemd/system/klaus.service b/etc/systemd/system/klaus.service index 61c9a8c63b0c85a08319bf68597501c7cf9570f5..e608798c94322187c9e114d125f2495242546551 100644 GIT binary patch literal 570 zcmV-A0>%9RM@dveQdv+`0M`GUzUq-GpQL~C|I{}$yib=>RN^RL%x%uXZjvNob@!AI5=H=h>RQIH}=SrF$|h)#CG*H-9VeK2rq_hhU=%l_tOK^lJRp=oC9uw z-8;e!e>;hQo|P_3giFq5uunI1%{A1Nhu0U)&YHy}kk!UO6}5GCrx}x)A!lqM>+XM> zmHw{g=q98t>X_lF@!mOA*6G z{5`C6AkbA;1%}afGw;j3#q^5}h$sdAY>8F`zP!Y5OJ#W_SnaaNPXS|xS>bpqVP*cX zA%*V&k>@QUe@vCEJjb-2*F`(@DkOE{M7bw3q@UN*wSfzpMNR3cvSItVIC=m~z%1l| z2PpBoH3H7|@pxD#Jxr(%eX(CK@v%iITcJaE;ew;?Y|y`ApmL@ao;ZC;Sw{@jh9HI- z&6ecu&WP%~ZhcU$N-wT7+`6PgMNJTi2DCZ;CRhi#sF>UAlMTNbB*ScyaKe2|rMZ6v zhN?c$M=&Tl(^Igy)|l)U1H^?i=R=k@R4rZgMWifnngLhGUd}fcBj#|~+7(4*O|1VO zN$(r0okZR8DM(ZE)ud#QoR^@fI0Ah~-NGgF_I3Oqfi?x-R+}b< zr4!RwC$(>P8X?Jp7PD?5tsWl0#-_3Q8;(^x;<_SKAAoH`@E?@=SH1Lb$=frR34b?OM@dveQdv+`00Xu;87POBx{0BQJ+fnL5=um$f6EJmAw7~2atqyauyjAF zi4RWeQo%k!PVcgd1xhumsrsl+2b>?V*WN>NPAbutzcDInJ>)+CpIhl-!TIClb!Ea{ zbFhz#+bGxr!-Jlqb;v~SXs-sG&PorkR>fSPvNAYw;X_8cM@KmG);{IN5!6ox4DtcO^86MZINhfXRt!h)3TmA?G*yq8P$*M_av8Wi3|P_9qNYVI4L0uKqxU8NHhd?y zohcEnGsY_$K%r#M_lwoNy14c^;|}DrHSl%41td%X#eBLo1-k{@mxuA4)1Io@l{*)n z-!}ePCCoP5WhpUpzOC2lLP+0DZ9ofFrF1incbrbl`cY@uUtRaZUrRy^Um_tlw)0CY z%#j%%-h)e#pdn5DB*BHdyHGZ3C>?`TZ2_iSduNBbZ83bM-d<=<=)^nBVAos)-08yx zactz+lRBNUR)LTJT0>6h