Hello everyone,
after updating our Mailcow stack (including the database container upgrade from MariaDB 10.5 → 10.11), the entire system seems to run normally — mails are processed, SOGo works, all containers are healthy — but the web admin login is no longer possible.
🧠 Situation
• Mailcow version: current master branch as of late October 2025
• Database upgrade successfully completed (mysql_upgrade: upgrade was applied)
• All Mailcow containers show healthy in docker-compose ps
• Mails are being sent/received correctly
Only the Admin login at /admin fails with “Invalid credentials”.
Other user accounts (mailboxes) and SOGo logins work fine.
🔍 What we tried so far
1. Executed ./helper-scripts/mailcow-reset-admin.sh →
returns Access denied for user ‘mailcow’@‘localhost’ (socket auth issue).
2. Verified DB connection manually via
source mailcow.conf
docker-compose exec mysql-mailcow mysql -u${DBUSER} -p${DBPASS} -h localhost ${DBNAME}
→ works fine.
3. Tried resetting the admin password manually:
• via SQL UPDATE admin SET password=… with new BCrypt hashes
• via password_hash() inside the PHP container
→ changes are visible in DB, but login still fails.
4. Tried with simple passwords (no special chars), cleared caches, restarted PHP/Nginx/SOGo.
→ still “Login failed”.
📊 Observations
• The admin table still exists, entry looks normal.
• Old hash formats ($6$…) no longer work.
• New {BLF-CRYPT}$2y$10$… or $2y$10$… hashes are accepted in DB,
but authentication via UI fails anyway.
• There are no explicit PHP errors in logs, just “login failed” on the admin page.
❓Question
Has anything changed recently in how Mailcow validates admin credentials
(e.g. hashing, salt, prefix, or login scope)?
Is there a known migration step or script for converting old admin passwords
after upgrading MariaDB / Mailcow?
Or is there a new required procedure to recreate the admin user correctly?
Any pointers or confirmations from others facing the same issue would be greatly appreciated.
Thanks in advance!
Marius