fix: Add environment variable truncation fix documentation and verification script
- Document the solution for Docker environment variable truncation issue - Add verification script to test the fix - Include proper .env configuration with quoted values - Add Docker network (172.20.0.0/16) to allowed IPs The fix ensures bcrypt hashes and other values with special characters are properly passed to Docker containers without truncation. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,47 @@
|
|||||||
|
# Environment Variable Truncation Fix
|
||||||
|
|
||||||
|
## Issue
|
||||||
|
Environment variables with special characters (like `$` in bcrypt hashes) were being truncated when passed to Docker containers, causing authentication failures.
|
||||||
|
|
||||||
|
## Solution
|
||||||
|
|
||||||
|
1. **Created proper .env file** with quoted values:
|
||||||
|
```bash
|
||||||
|
ADMIN_PASSWORD_HASH='$2b$12$LQv7c3SijBJLhSHPDOLkDe7YfPzFaXhJNXLKqFsFC37GA9xc1wSNi'
|
||||||
|
JWT_SECRET='your-very-long-secret-key-that-should-be-at-least-32-characters-long'
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Added Docker network to ALLOWED_IPS**:
|
||||||
|
- Added `172.20.0.0/16` to support Docker's default bridge network
|
||||||
|
- This allows testing from the Docker host
|
||||||
|
|
||||||
|
3. **Default credentials**:
|
||||||
|
- Password: `admin123`
|
||||||
|
- The hash in .env corresponds to this password
|
||||||
|
|
||||||
|
## Verification
|
||||||
|
|
||||||
|
Run the verification script:
|
||||||
|
```bash
|
||||||
|
./scripts/verify-env-fix.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
This script will:
|
||||||
|
- Rebuild containers
|
||||||
|
- Check environment variables are properly loaded
|
||||||
|
- Test authentication API
|
||||||
|
- Show if login is working
|
||||||
|
|
||||||
|
## Testing Login
|
||||||
|
|
||||||
|
1. Access the WebUI at http://localhost:7511
|
||||||
|
2. Use password: `admin123`
|
||||||
|
3. You should be able to log in successfully
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
If issues persist:
|
||||||
|
1. Check that .env file exists and has proper quotes around values with special characters
|
||||||
|
2. Ensure Docker containers were rebuilt: `docker compose -f docker-compose.dev.yml up -d --build`
|
||||||
|
3. Check logs: `docker logs minio-webui-backend-dev`
|
||||||
|
4. Run debug script: `./scripts/debug-auth.sh`
|
||||||
Executable
+47
@@ -0,0 +1,47 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "========================================"
|
||||||
|
echo "MinIO WebUI - Environment Variable Fix Verification"
|
||||||
|
echo "========================================"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Stop existing containers
|
||||||
|
echo "1. Stopping existing containers..."
|
||||||
|
docker compose -f docker-compose.dev.yml down
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "2. Rebuilding and starting containers..."
|
||||||
|
docker compose -f docker-compose.dev.yml up -d --build
|
||||||
|
|
||||||
|
# Wait for container to start
|
||||||
|
echo ""
|
||||||
|
echo "3. Waiting for containers to start..."
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
# Check environment variables
|
||||||
|
echo ""
|
||||||
|
echo "4. Checking environment variables in container:"
|
||||||
|
echo "-----------------------------------------------"
|
||||||
|
docker exec minio-webui-backend-dev sh -c 'echo "ADMIN_PASSWORD_HASH length: ${#ADMIN_PASSWORD_HASH}"'
|
||||||
|
docker exec minio-webui-backend-dev sh -c 'echo "ADMIN_PASSWORD_HASH prefix: ${ADMIN_PASSWORD_HASH:0:7}"'
|
||||||
|
docker exec minio-webui-backend-dev sh -c 'echo "JWT_SECRET length: ${#JWT_SECRET}"'
|
||||||
|
docker exec minio-webui-backend-dev sh -c 'echo "ALLOWED_IPS: $ALLOWED_IPS"'
|
||||||
|
|
||||||
|
# Run debug script
|
||||||
|
echo ""
|
||||||
|
echo "5. Running auth debug:"
|
||||||
|
echo "---------------------"
|
||||||
|
./scripts/debug-auth.sh
|
||||||
|
|
||||||
|
# Test API
|
||||||
|
echo ""
|
||||||
|
echo "6. Testing API directly:"
|
||||||
|
echo "-----------------------"
|
||||||
|
./scripts/test-auth-api.sh
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "========================================"
|
||||||
|
echo "Check the outputs above. The password hash should be 60 characters long"
|
||||||
|
echo "and start with '$2b$12$'. If successful, you should be able to log in"
|
||||||
|
echo "with password 'admin123'."
|
||||||
|
echo "========================================"
|
||||||
Reference in New Issue
Block a user