Created
          October 2, 2025 15:02 
        
      - 
      
- 
        Save include/0f12a37751e80595379cf5665b6c1e8d to your computer and use it in GitHub Desktop. 
Revisions
- 
        include created this gist Oct 2, 2025 .There are no files selected for viewingThis file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,55 @@ #!/bin/bash # NPM Ownership Transfer Script # Transfers all Nginx Proxy Manager resources from deleted users to active admin DB_PATH="${1:-database.sqlite}" if [ ! -f "$DB_PATH" ]; then echo "Error: Database file not found: $DB_PATH" exit 1 fi # Get the active (non-deleted) admin user ID ACTIVE_ADMIN=$(sqlite3 "$DB_PATH" "SELECT id FROM user WHERE is_deleted=0 ORDER BY id LIMIT 1;") if [ -z "$ACTIVE_ADMIN" ]; then echo "Error: No active admin user found" exit 1 fi echo "Active admin user ID: $ACTIVE_ADMIN" echo "Transferring ownership of all resources..." # Transfer ownership of all resource types sqlite3 "$DB_PATH" <<EOF UPDATE proxy_host SET owner_user_id=$ACTIVE_ADMIN WHERE owner_user_id IN (SELECT id FROM user WHERE is_deleted=1) AND is_deleted=0; UPDATE certificate SET owner_user_id=$ACTIVE_ADMIN WHERE owner_user_id IN (SELECT id FROM user WHERE is_deleted=1) AND is_deleted=0; UPDATE redirection_host SET owner_user_id=$ACTIVE_ADMIN WHERE owner_user_id IN (SELECT id FROM user WHERE is_deleted=1) AND is_deleted=0; UPDATE dead_host SET owner_user_id=$ACTIVE_ADMIN WHERE owner_user_id IN (SELECT id FROM user WHERE is_deleted=1) AND is_deleted=0; UPDATE stream SET owner_user_id=$ACTIVE_ADMIN WHERE owner_user_id IN (SELECT id FROM user WHERE is_deleted=1) AND is_deleted=0; UPDATE access_list SET owner_user_id=$ACTIVE_ADMIN WHERE owner_user_id IN (SELECT id FROM user WHERE is_deleted=1) AND is_deleted=0; EOF echo "" echo "Ownership transfer complete. Summary:" echo "----------------------------------------" sqlite3 "$DB_PATH" <<EOF .mode column SELECT 'Proxy Hosts' as Resource, COUNT(*) as Count FROM proxy_host WHERE owner_user_id=$ACTIVE_ADMIN AND is_deleted=0 UNION ALL SELECT 'Certificates', COUNT(*) FROM certificate WHERE owner_user_id=$ACTIVE_ADMIN AND is_deleted=0 UNION ALL SELECT 'Redirections', COUNT(*) FROM redirection_host WHERE owner_user_id=$ACTIVE_ADMIN AND is_deleted=0 UNION ALL SELECT 'Dead Hosts', COUNT(*) FROM dead_host WHERE owner_user_id=$ACTIVE_ADMIN AND is_deleted=0 UNION ALL SELECT 'Streams', COUNT(*) FROM stream WHERE owner_user_id=$ACTIVE_ADMIN AND is_deleted=0 UNION ALL SELECT 'Access Lists', COUNT(*) FROM access_list WHERE owner_user_id=$ACTIVE_ADMIN AND is_deleted=0; EOF echo "" echo "All resources now owned by user ID: $ACTIVE_ADMIN" Usage: ./transfer_npm_ownership.sh [path/to/database.sqlite]