Skip to main content
This guide helps you diagnose and resolve common issues with your Homarr installation. Use the sections below to find solutions for specific problems.

Quick Diagnostics

Before diving into specific issues, gather basic diagnostic information:
1

Check Application Status

Verify Homarr is running:
# Docker Compose
docker compose ps

# Docker
docker ps | grep homarr
Status should show “Up” or “running”.
2

Review Logs

Check Homarr logs for errors:
# Docker Compose
docker compose logs homarr

# Follow logs in real-time
docker compose logs -f homarr

# Docker
docker logs homarr
3

Verify Database Connection

Ensure database is accessible:
# For MySQL
docker compose exec db mysql -u homarr -p -e "SELECT 1;"

# For PostgreSQL
docker compose exec db psql -U homarr -d homarrdb -c "SELECT 1;"
4

Check Environment Variables

Verify critical environment variables are set:
docker compose exec homarr env | grep -E "DB_|AUTH_|SECRET_"

Installation Issues

Container Won’t Start

Symptom: Container fails to start with port conflict error.Solution:
# Find what's using the port (default: 3000)
sudo lsof -i :3000

# Change port in docker-compose.yml
ports:
  - "3001:3000"  # Use different external port
Or stop the conflicting service:
# Kill the process using the port
sudo kill -9 <PID>
Symptom: Container can’t find database or config files.Solution: Ensure volume paths exist and have correct permissions:
# Create data directory
mkdir -p /path/to/homarr/data

# Set permissions
chmod 755 /path/to/homarr/data

# For Docker, may need specific user
chown -R 1000:1000 /path/to/homarr/data
Symptom: Cannot download Homarr image.Solution:
# Verify internet connectivity
ping github.com

# Try pulling image manually
docker pull ghcr.io/homarr-labs/homarr:latest

# Check Docker registry authentication
docker login ghcr.io

Database Connection Errors

Symptom: Homarr can’t connect to database.Causes and Solutions:
  1. Database not running:
docker compose ps db
docker compose up -d db
  1. Wrong host/port in connection string:
# In docker-compose, use service name as host
DB_URL='mysql://homarr:password@db:3306/homarrdb'
#                                  ^^^ service name, not 'localhost'
  1. Database not ready yet: Add health check or depends_on with condition:
services:
  homarr:
    depends_on:
      db:
        condition: service_healthy
Symptom: Incorrect database credentials.Solution: Verify credentials match between Homarr and database:
# docker-compose.yml
services:
  db:
    environment:
      MYSQL_USER: homarr
      MYSQL_PASSWORD: secure_password
      MYSQL_DATABASE: homarrdb
  
  homarr:
    environment:
      DB_URL: 'mysql://homarr:secure_password@db:3306/homarrdb'
      #                      ^^^^^^^^^^^^^^^
      #                      Must match MYSQL_PASSWORD
Symptom: SQLite database lock errors.Solutions:
  1. Multiple instances accessing same database:
  • Stop all Homarr instances
  • Ensure only one instance accesses the database
  1. File permission issues:
# Fix permissions
chmod 644 /path/to/db.sqlite
chown homarr:homarr /path/to/db.sqlite
  1. Consider migrating to MySQL/PostgreSQL for multi-user scenarios.

Authentication and User Issues

Can’t Log In

Solution: Use CLI to reset password:
# Docker Compose
docker compose exec homarr homarr-cli reset-password --username admin

# Docker
docker exec -it homarr homarr-cli reset-password --username admin
The command generates a new random password.
The credentials provider must be enabled in AUTH_PROVIDERS.
Solution: Create new admin user via CLI:
docker compose exec homarr homarr-cli recreate-admin --username newadmin
This creates a new admin user with a random password.
Checks:
  1. Verify provider configuration:
# Check AUTH_PROVIDERS includes your provider
echo $AUTH_PROVIDERS
  1. Check provider-specific settings:
  • OIDC: Client ID, Client Secret, Issuer URL
  • LDAP: Server URL, Bind DN, Search Base
  1. Review logs for specific error:
docker compose logs homarr | grep -i "auth\|oidc\|ldap"
  1. Test connectivity to auth provider:
# From Homarr container
docker compose exec homarr curl -v https://your-oidc-provider.com
Symptom: Logged out immediately after login.Causes:
  1. Missing or incorrect AUTH_SECRET:
# Generate new secret
openssl rand -hex 32

# Add to .env
AUTH_SECRET="your-generated-secret"
  1. Time synchronization issues:
# Check system time
date

# Sync time if needed
sudo ntpdate -s time.nist.gov
  1. Cookie domain issues:
  • Clear browser cookies for Homarr domain
  • Check browser console for cookie errors

Permission Errors

Solution:
  1. Check user group membership:
  • Navigate to Settings > Users
  • Verify user is in appropriate groups
  • Ensure groups have board permissions
  1. Check board permissions:
  • Open board settings
  • Go to Permissions tab
  • Add user or group with appropriate level (view/modify/full)
  1. Verify ‘everyone’ group:
  • All users should be in the ‘everyone’ group
  • Check group has basic permissions
Checks:
  1. User has “modify” or “full” permission on the board
  2. Board is not in read-only mode
  3. Browser cache - try hard refresh (Ctrl+Shift+R)
  4. Check browser console for JavaScript errors

Widget and Integration Issues

Widget Shows Errors

Symptom: Widget requires an integration.Solution:
  1. Edit widget settings
  2. Select appropriate integration from dropdown
  3. Save changes
If no integrations are available:
  1. Go to Settings > Integrations
  2. Add the required integration type
  3. Return to widget and select it
Symptom: Widget can’t reach the integration service.Debugging:
  1. Verify service is running:
# Check if service is accessible
curl http://your-service:port
  1. Test from Homarr container:
docker compose exec homarr curl -v http://your-service:port
  1. Check network connectivity:
  • Ensure services are on same Docker network
  • Verify firewall rules allow connection
  • Check service logs for errors
  1. Verify integration URL:
  • Go to Settings > Integrations
  • Edit integration
  • Ensure URL is correct and accessible from Homarr
Symptom: Authentication failed with integration.Solution:
  1. Update integration credentials:
  • Settings > Integrations
  • Edit integration
  • Re-enter API key or credentials
  • Save changes
  1. Verify API key permissions:
  • Check that API key has required permissions in the service
  • Some services require specific scopes or roles
  1. Re-encrypt secrets: If you changed SECRET_ENCRYPTION_KEY, you’ll need to re-enter all integration credentials.
Symptom: Widget shows stale data.Solutions:
  1. Check refresh interval:
  • Edit widget settings
  • Verify refresh interval is set appropriately
  • Try manual refresh
  1. Check integration status:
  • Green indicator = online and working
  • Red indicator = offline or error
  1. Review logs:
docker compose logs homarr | grep -i "widget\|integration"
  1. Clear cache:
  • Hard refresh browser (Ctrl+Shift+R)
  • Clear browser cache completely

Integration Connection Issues

Common Scenarios:Service on same Docker network:
services:
  homarr:
    networks:
      - homarr-network
  
  plex:  # or other service
    networks:
      - homarr-network

networks:
  homarr-network:
URL in Homarr: http://plex:32400Service on host machine:
  • Linux: http://172.17.0.1:32400 (Docker host IP)
  • Mac/Windows: http://host.docker.internal:32400
Service on local network:
  • Use direct IP: http://192.168.1.100:32400
  • Ensure no firewall blocking
Symptom: “certificate verify failed” or similar.Solutions:
  1. Use HTTP instead of HTTPS (for local services)
  2. Add custom CA certificate:
# Set certificate path in .env
LOCAL_CERTIFICATE_PATH='/path/to/certificates'

# Mount certificates in docker-compose.yml
volumes:
  - /path/to/certs:/appdata/trusted-certificates:ro
  1. For self-signed certificates:
  • Export certificate from service
  • Add to Homarr’s trusted certificates directory
  • Restart Homarr

Performance Issues

Slow Response Times

Optimizations:
  1. Reduce widget refresh rates:
  • Edit widgets with high refresh rates
  • Increase interval (e.g., from 10s to 30s)
  1. Disable status checks:
  • Settings > Server Settings
  • Disable status checks for widgets you don’t need to monitor
  1. Optimize database:
-- MySQL
OPTIMIZE TABLE board, item, widget;

-- PostgreSQL
VACUUM ANALYZE;
  1. Check system resources:
docker stats homarr
Consider increasing resource limits if needed.
Diagnosis:
# Monitor resource usage
docker stats homarr

# Check for resource limits
docker inspect homarr | grep -A 5 Memory
Solutions:
  1. Increase resource limits:
services:
  homarr:
    deploy:
      resources:
        limits:
          memory: 1G
          cpus: '1.0'
  1. Reduce active widgets:
  • Remove unused widgets
  • Disable widgets temporarily to identify culprits
  1. Optimize integrations:
  • Reduce number of simultaneous integration queries
  • Increase cache TTL

Data and Configuration Issues

Lost Configuration or Data

Causes:
  1. Database connection changed:
  • Check DB_URL in .env
  • Ensure pointing to correct database
  1. Database volume issue:
# List volumes
docker volume ls

# Inspect volume
docker volume inspect homarr-db-volume
  1. Restore from backup: See Backup and Restore Guide
Cause: SECRET_ENCRYPTION_KEY changed or missing.Solution:The encryption key must match the original:
# In .env file
SECRET_ENCRYPTION_KEY="<your-original-key>"
If the original key is lost, you’ll need to:
  1. Remove all integrations
  2. Re-create them with credentials
Encrypted integration data cannot be recovered without the original encryption key.

Browser and UI Issues

Solutions:
  1. Clear browser cache:
  • Hard refresh: Ctrl+Shift+R (Windows/Linux) or Cmd+Shift+R (Mac)
  • Clear all cache and cookies for Homarr domain
  1. Check browser console:
  • Open Developer Tools (F12)
  • Check Console tab for errors
  • Look for failed network requests in Network tab
  1. Try different browser:
  • Test in incognito/private mode
  • Try different browser (Chrome, Firefox, Safari)
  1. Check reverse proxy configuration: If using a reverse proxy, ensure WebSocket support is enabled.
Nginx Example:
location / {
    proxy_pass http://homarr:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}
Traefik Example:
labels:
  - "traefik.enable=true"
  - "traefik.http.routers.homarr.rule=Host(`homarr.example.com`)"
  - "traefik.http.services.homarr.loadbalancer.server.port=3000"
Solution:
  1. Check user preferences: Settings > Appearance
  2. Clear browser local storage
  3. Try system default theme setting

Log Locations and Debugging

Accessing Logs

# Docker Compose - all services
docker compose logs

# Specific service
docker compose logs homarr
docker compose logs db

# Follow logs in real-time
docker compose logs -f homarr

# Last 100 lines
docker compose logs --tail=100 homarr

# With timestamps
docker compose logs -t homarr

# Filter by time
docker compose logs --since="2024-01-01" homarr

Log Levels

Control log verbosity with LOG_LEVEL environment variable:
# .env
LOG_LEVEL='debug'  # Options: error, warn, info, debug
  • error: Only errors
  • warn: Errors and warnings
  • info: Normal operation (default)
  • debug: Verbose debugging information

Common Log Messages

✅ Normal - Database migrations ran successfully.
❌ Error - Can’t connect to database. Check database is running and connection string is correct.
❌ Error - Authentication failed with integration. Verify credentials.
❌ Error - Port conflict. Change port mapping in docker-compose.yml.

Getting Help

If you can’t resolve your issue:

Discord Community

Join our Discord server for community support and discussions

GitHub Issues

Report bugs or request features on GitHub

Documentation

Browse the complete documentation

Discussions

Ask questions in GitHub Discussions

When Reporting Issues

Include the following information:
  1. Homarr version:
    docker inspect homarr | grep -A 5 "Image"
    
  2. Environment:
    • Operating system
    • Docker version
    • Database type and version
  3. Configuration:
    • Deployment method (Docker, Docker Compose, etc.)
    • Relevant environment variables (redact secrets!)
  4. Logs:
    docker compose logs homarr --tail=100 > homarr-logs.txt
    
  5. Steps to reproduce:
    • What you did
    • What you expected
    • What actually happened
Never share sensitive information like passwords, API keys, or encryption keys in public issues or forums.

Next Steps

Backup Your System

Set up automated backups to prevent data loss

CLI Reference

Learn about CLI tools for maintenance and recovery

Migration Guide

Upgrade Homarr or migrate databases

Configuration Guide

Optimize your Homarr configuration

Build docs developers (and LLMs) love