From 3b32d631cbd00fe9927e7ccad27e91f243184604 Mon Sep 17 00:00:00 2001 From: CyberMind-FR Date: Wed, 25 Feb 2026 12:07:45 +0100 Subject: [PATCH] fix(metablogizer): Auto-republish and Gitea push on file upload - Add auto-republish to method_upload_file (was only in upload_finalize) - Add Gitea push to cmd_publish when gitea.enabled=1 - Use haproxyctl reload instead of init.d (container-aware) - Uploaded content now triggers full republish flow for emancipated sites This fixes the issue where uploading new HTML content didn't update the live site because republish wasn't triggered. Co-Authored-By: Claude Opus 4.5 --- .claude/HISTORY.md | 17 +++++++++++++++++ .../root/usr/libexec/rpcd/luci.metablogizer | 9 +++++++++ .../files/usr/sbin/metablogizerctl | 11 +++++++++-- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/.claude/HISTORY.md b/.claude/HISTORY.md index 3f82e8e5..4829c076 100644 --- a/.claude/HISTORY.md +++ b/.claude/HISTORY.md @@ -3604,3 +3604,20 @@ git checkout HEAD -- index.html - **Verified:** test2.gk2.secubox.in emancipation successful with WAF enabled - **Files Modified:** - `secubox-app-streamlit/files/usr/sbin/streamlitctl`: Added waf_enabled UCI field, use haproxyctl reload + +34. **Portal Password Change & MetaBlogizer Upload Fix (2026-02-25)** + - **Portal Password Change:** + - New "Account" section with "Change Password" and "My Services" cards + - Password change modal with current/new/confirm fields + - RPC method `change_password` verifies current password, syncs to all services + - Syncs to: email (mailserver), jabber, nextcloud + - Matrix/PeerTube noted as manual update required + - **MetaBlogizer Upload Fix:** + - `method_upload_file` now auto-republishes emancipated sites (was only in finalize) + - `cmd_publish` now auto-pushes to Gitea if enabled + - Uses `haproxyctl reload` (container-aware) + - **Files Modified:** + - `luci-app-secubox-users/root/usr/libexec/rpcd/luci.secubox-users`: New change_password method + - `luci-app-secubox-portal/root/www/gk2-hub/portal.html`: Account section + password modal + - `luci-app-metablogizer/root/usr/libexec/rpcd/luci.metablogizer`: Auto-republish on upload + - `secubox-app-metablogizer/files/usr/sbin/metablogizerctl`: Gitea push on publish diff --git a/package/secubox/luci-app-metablogizer/root/usr/libexec/rpcd/luci.metablogizer b/package/secubox/luci-app-metablogizer/root/usr/libexec/rpcd/luci.metablogizer index e54ff8b4..b0bc681f 100755 --- a/package/secubox/luci-app-metablogizer/root/usr/libexec/rpcd/luci.metablogizer +++ b/package/secubox/luci-app-metablogizer/root/usr/libexec/rpcd/luci.metablogizer @@ -961,10 +961,19 @@ method_upload_file() { if [ $rc -eq 0 ]; then # Fix permissions for entire site directory fix_permissions "$site_path" + + # Auto-republish if site is emancipated (ensures content is served immediately) + local is_emancipated=$(get_uci "$id" emancipated "0") + if [ "$is_emancipated" = "1" ]; then + # Republish in background to reload HAProxy and push to Gitea if configured + metablogizerctl publish "$name" >/dev/null 2>&1 & + fi + json_init json_add_boolean "success" 1 json_add_string "filename" "$filename" json_add_string "path" "$file_path" + json_add_string "republished" "$is_emancipated" json_dump else json_init diff --git a/package/secubox/secubox-app-metablogizer/files/usr/sbin/metablogizerctl b/package/secubox/secubox-app-metablogizer/files/usr/sbin/metablogizerctl index d8b445c7..bd506b41 100644 --- a/package/secubox/secubox-app-metablogizer/files/usr/sbin/metablogizerctl +++ b/package/secubox/secubox-app-metablogizer/files/usr/sbin/metablogizerctl @@ -368,9 +368,9 @@ cmd_publish() { uci commit haproxy - # Regenerate HAProxy config + # Regenerate HAProxy config and reload container /usr/sbin/haproxyctl generate 2>/dev/null - /etc/init.d/haproxy reload 2>/dev/null + /usr/sbin/haproxyctl reload 2>/dev/null log_info "Site published!" echo "" @@ -379,6 +379,13 @@ cmd_publish() { echo "To request SSL certificate:" echo " haproxyctl cert add $domain" + # Auto-push to Gitea if configured + local gitea_enabled=$(uci_get gitea.enabled) + if [ "$gitea_enabled" = "1" ]; then + log_info "Pushing to Gitea repository..." + cmd_gitea_push "$name" 2>/dev/null & + fi + # Auto-package for P2P distribution if [ -x /usr/sbin/secubox-content-pkg ]; then log_info "Packaging site for P2P distribution..."