Hallo @rgrzesk Willkommen!
Dein global:admin-Plan funktioniert nicht — der Setup-Assistent ist am settings-Schlüssel userManagement.isInstanceOwnerSetUp = true gated, nicht daran, ob eine global:owner-Zeile existiert. Das Herabstufen des Eigentümers hinterlässt dich also ohne Eigentümer und immer noch ohne /setup. (global:admin ist auch eine Enterprise-lizenzierte Rolle.)
Da du Postgres nutzt, schreib einfach den bcrypt-Hash dieses Benutzers um. Eine Spalte, nichts sonst angefasst, kein Redeploy:
1. Hash generieren (n8n nutzt bcryptjs, cost 10):
docker run --rm node:20-alpine sh -c \
"npm i bcryptjs --silent --prefix /tmp >/dev/null 2>&1 && \
node -e \"console.log(require('/tmp/node_modules/bcryptjs').hashSync('YourNewPass1',10))\""
Nutz ein Passwort, das n8ns Regeln erfüllt (8–64 Zeichen, 1 Ziffer, 1 Großbuchstabe), oder du kannst es später in der UI nicht ändern.
2. Verbinden und aktualisieren:
UPDATE "user"
SET password = '$2b$10$...your hash...'
WHERE email = 'owner@yourdomain.com';
Zwei Dinge, die Leute stolpern lassen: user ist in Postgres ein reserviertes Wort und muss mit doppelten Anführungszeichen versehen werden, und der Hash muss in einfachen Anführungszeichen in deinem Shell-Befehl stehen, sonst expandiert bash $2b/$10 und schreibt Unsinn.
Hatte das Konto MFA aktiviert, dann auch SET "mfaEnabled" = false, "mfaSecret" = NULL, "mfaRecoveryCodes" = NULL.
3. Meld dich von einem Inkognito-Fenster an — n8n leitet einen Teil des Auth-JWT vom Passwort-Hash ab, also werden alte Sessions ungültig und ein stales Cookie wirft dich raus. Kein Container-Restart nötig.
Vermeide n8n user-management:reset hier: Du kannst nicht in Cloud Run mit docker exec gehen, und es löscht alle Benutzerkonten und versetzt die Instanz zurück in den Setup-Assistenten. Es lohnt sich, danach SMTP-Umgebungsvariablen auf deinen Cloud-Run-Services zu setzen, damit das nicht über die ganze Fleet hinweg wieder vorkommt.