From 94dfcf6e43bf4fa7c07494ef14efd20f9992d744 Mon Sep 17 00:00:00 2001 From: Benjamin Toby Date: Sun, 13 Sep 2026 07:23:40 +0100 Subject: [PATCH] Untrack runtime sqlite DB files and harden idempotent install updates --- .gitignore | 2 ++ db/bmp | Bin 49152 -> 0 bytes db/wgui | Bin 65536 -> 0 bytes src/scripts/install-wg-ui.sh | 19 ++++++++++++++++++- 4 files changed, 20 insertions(+), 1 deletion(-) delete mode 100644 db/bmp delete mode 100644 db/wgui diff --git a/.gitignore b/.gitignore index 66dc3fe..6bd91c3 100644 --- a/.gitignore +++ b/.gitignore @@ -39,6 +39,8 @@ report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json /.bunext /db/.backups /db/.exports +/db/wgui +/db/bmp .bun-sqlite /assets diff --git a/db/bmp b/db/bmp deleted file mode 100644 index f27ec6387b5087e7a7dfe7307f7452e47e1b2ad5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49152 zcmeI(y>H`W9Kdm>%}d*~7Z^^FSo+jcOar3aa05C)=($HlF1ea<+3X zV_ONaqnqImU}I(FMM&M4*%(-1W8(2+H)+xqB-C4?ucbKl`ED&-{VD&;>X*yE=D(K3Ob8%=00IagfWZG3I8Ens#m&vs*@vNh*mL?$$F;4Y z?b{u<+Ye?|SGOBxrD=+0<>RU;^qH-?D7hW6TWgw+%!YW<*nM1S9EeZN15s%;>$^3% z^JBBtEQ_}9*rC(01sp0CLWqqQ%15~+25`_G>x-QmUG2oG4;h@!k`Yea!ts$9_T1= zeCu+Yp&Ry`B)pCjw0(CNx&tpM2}b?C?Y~UcVw3RY@M4F!;JGhW&$J6zWNBu+3 zc6-*<3U1%AF0~UnFG8z5@IuE6lQ!JI8v3p}_&9U2%(uIi>vf$#W_6O%xbicZ)=8P| zw~yUtmuqd;Yx~VcMK&k&y61?Nv=GDSl^kg34~|@^ArISibkVBq?zK!&(i1ejEcD4~ z>4ssfWQz}qDb4jd&Wqq_FJiDq;XtihG0v8H%b$FZQ=R|x9hLPU7+AeQ*Y#x7QhjE1 zX}TxOY<=B*B8giL9(igi8^(jBY;kY%ra))T&)S+PSU!0>n=5W?q)yjW@QO3aelS_e zO@}<$@VcXwp9j&97mao*j`b8sdu6*?yXk2-! zVPj2(oGFA_;g7<3;oHJ1xyXb70tg_000IagfB*srAbo$Mf~YXup|TUux5NJb!B;y^+a8_cPSpra+bc5YO+XqBhmN z4ps1dJddvb z1Q0*~0R#|0009ILKmY**=3jv4|MQfam}7pJO6K009ILKmY**5I_I{1Q0;rA2fiNcOjGP=mPPDVEww+D9n%O0Qi znR9o4?DA|eou0=Gf1=Ag-s5@f`?m9kj(>cc{w?2c-bY@6`^&TDncpK7EP?<8j*h@4 zJLwIKj(Bb zpc6YHluOz6FhkL$dXf>rRL#61q{NR%B3Z@A=xWJSi<%Q+lnVt}UvuW1oUfIv6{>U7 z-astIZoWbp*mw-%(CMjOG%kQI67C6!O!r>q-(nnbQ>v?nlfzOpdm4TvIJ zwYR+@>#9`~tr z&5y?>#PG%y(&vzar?JnW8#`pZiPinsNUOTl>Xl?O*WBym%7wHht9hwCf?7}{)9#h5 zbWG*8DP@Y9N%|Nk4b_myF-*I%TK7o8beSCN+OlGhuCv~6+L5gTz8)s)nVh=P7;8Kc zpHC%YBsn3J&=g^TG$caF8l4T5^x~3A`c|^pWhEpm#HZ&LL}4K0v^b%N5UOV@6b@J3 z61{=GKDHX9HJV1V_R6S#^EKDw`ho+m!cHdZ0JUvV(eO3SV;y~qG^b~s$gv);h)Fk4-vLXwnCOGYL~wkZ{4jnqb6BEt@W$C_+*j3Nwl z2rYxXk$TqSiIfmun4OKZ#cV%I6?Tu@e)?LA+>~&*i~ol4@|PL@5B_KVE^qQ5^WTwK z3=n_-1Rwwb2tWV=5P$##AOHafGzh%za|b!D_B4RK_th5ik?S%sL<&2$YUBP;g?@d?0NB{P}XfB*y_ z009U<00Izz00bZa0SFvcfm5u9;W+z z$TtKa009U<00Izz00bZa0SG_<0{aoLuK!v7DMNmaldrD*tb;fZfB*y_009U<00Izz z00bZa0SLT&0==$Le_GLsrh3khwMKW~= zaEy<>o&SM79aFR$GI>FNs+eBe?cu$wXL4j&|4_O=I@F)Jo}Y-y+S1yGW@06)WRmLq z(mUnF>~c(>xiR&@o#^<@+|@gZmd;M5hOb|mnbl@evXhTvv!%Q*nj`O#qe8)d54g92tWV=5P$##AOHafKmY;| NfB*#A1RAdY{{`-$bqfFh diff --git a/src/scripts/install-wg-ui.sh b/src/scripts/install-wg-ui.sh index d015c5a..8c1e709 100755 --- a/src/scripts/install-wg-ui.sh +++ b/src/scripts/install-wg-ui.sh @@ -16,6 +16,7 @@ REPO_URL="${REPO_URL:-}" BRANCH="${BRANCH:-main}" BUN_INSTALL_DIR="${BUN_INSTALL_DIR:-/opt/bun}" BUN_BIN="/usr/local/bin/bun" +UPDATE=false log() { echo "==> $*"; } fail() { echo "error: $*" >&2; exit 1; } @@ -99,9 +100,17 @@ setup_service_user() { clone_or_update() { mkdir -p "$(dirname "$INSTALL_DIR")" if [ -d "$INSTALL_DIR/.git" ]; then + UPDATE=true log "updating existing install at $INSTALL_DIR ..." git -C "$INSTALL_DIR" fetch --depth 1 origin "$BRANCH" + local db_backup="$INSTALL_DIR/db/.wgui-pre-update.db" + if [ -f "$INSTALL_DIR/db/wgui" ]; then + cp -a "$INSTALL_DIR/db/wgui" "$db_backup" + fi git -C "$INSTALL_DIR" reset --hard "origin/$BRANCH" + if [ -f "$db_backup" ]; then + mv -f "$db_backup" "$INSTALL_DIR/db/wgui" + fi else log "cloning wg-ui ($REPO_URL, branch $BRANCH) ..." git clone --depth 1 --branch "$BRANCH" "$REPO_URL" "$INSTALL_DIR" @@ -180,6 +189,10 @@ EOF systemctl daemon-reload log "enabling and starting $SERVICE_NAME ..." systemctl enable --now "$SERVICE_NAME.service" + if [ "$UPDATE" = true ]; then + log "restarting $SERVICE_NAME to load updated code ..." + systemctl restart "$SERVICE_NAME.service" + fi } install_openrc_unit() { @@ -209,7 +222,11 @@ EOF chmod +x "$init_script" log "adding $SERVICE_NAME to default runlevel and starting ..." rc-update add "$SERVICE_NAME" default - rc-service "$SERVICE_NAME" start + if [ "$UPDATE" = true ]; then + rc-service "$SERVICE_NAME" restart + else + rc-service "$SERVICE_NAME" start + fi } grab_port() {