Complete documentation refactoring with 57 service docs

- Refactored README.md, getting-started.md, quick-reference.md
- Enhanced setup-homelab.sh with 9-step automated process
- Created services-overview.md with all stacks
- Added comprehensive documentation for 57 services in docs/service-docs/
- All services include: overview, configuration, resources, educational content
- Coverage: Core, Infrastructure, Dashboards, Media, Media-Extended, Home Assistant, Productivity, Utilities, Monitoring, Development stacks
- Educational focus with links to tutorials, videos, and guides
This commit is contained in:
kelinfoxy
2026-01-12 18:03:12 -05:00
parent 906e6008ea
commit cba45556c7
69 changed files with 24404 additions and 1522 deletions

724
docs/service-docs/homarr.md Normal file
View File

@@ -0,0 +1,724 @@
# Homarr - Another Application Dashboard
## Table of Contents
- [Overview](#overview)
- [What is Homarr?](#what-is-homarr)
- [Why Use Homarr?](#why-use-homarr)
- [How It Works](#how-it-works)
- [Configuration in AI-Homelab](#configuration-in-ai-homelab)
- [Official Resources](#official-resources)
- [Educational Resources](#educational-resources)
- [Docker Configuration](#docker-configuration)
- [Setup and Usage](#setup-and-usage)
- [Widgets and Apps](#widgets-and-apps)
- [Advanced Topics](#advanced-topics)
- [Troubleshooting](#troubleshooting)
## Overview
**Category:** Dashboard
**Docker Image:** [ghcr.io/ajnart/homarr](https://github.com/ajnart/homarr/pkgs/container/homarr)
**Default Stack:** `dashboards.yml`
**Web UI:** `https://homarr.${DOMAIN}` or `http://SERVER_IP:7575`
**Authentication:** Built-in user system
**Purpose:** Interactive application dashboard (alternative to Homepage)
## What is Homarr?
Homarr is a customizable application dashboard with a focus on ease of use and interactivity. Unlike Homepage's YAML configuration, Homarr offers a web-based drag-and-drop interface for building your dashboard.
### Key Features
- **Drag-and-Drop UI:** Visual dashboard builder
- **Built-in Auth:** User accounts and permissions
- **App Integrations:** 50+ service widgets
- **Custom Widgets:** RSS, Calendar, Weather, Docker stats
- **Responsive Design:** Mobile-friendly
- **Multi-Board Support:** Create multiple dashboards
- **Search Integration:** Built-in search aggregation
- **Docker Integration:** Container status monitoring
- **Customizable Themes:** Light/dark mode with colors
- **Widget Variety:** Information, media, monitoring widgets
- **No Configuration Files:** Everything managed via GUI
- **Modern UI:** Clean, intuitive interface
## Why Use Homarr?
### Homarr vs Homepage
**Use Homarr if you want:**
- ✅ GUI-based configuration (no YAML)
- ✅ Drag-and-drop dashboard building
- ✅ Built-in user authentication
- ✅ Interactive widget management
- ✅ Visual customization
- ✅ More widget variety
- ✅ Easier for non-technical users
**Use Homepage if you want:**
- ✅ YAML configuration (GitOps friendly)
- ✅ Lighter resource usage
- ✅ Faster performance
- ✅ More mature project
- ✅ Configuration as code
### Common Use Cases
1. **Family Dashboard:** Easy for non-technical users
2. **Media Center:** Integrated media widgets
3. **Multiple Dashboards:** Different boards for different purposes
4. **Interactive Monitoring:** Clickable, actionable widgets
5. **Visual Customization:** Design your perfect dashboard
## How It Works
```
User → Browser → Homarr Web UI
Dashboard Editor
(Drag-and-drop interface)
┌────────────┴────────────┐
↓ ↓
App Tiles Widgets
(Services) (Live data, RSS, etc.)
↓ ↓
Click to access API integrations
service (Sonarr, Radarr, etc.)
```
### Architecture
**Data Storage:**
- SQLite database (stores dashboards, users, settings)
- Configuration directory (icons, backups)
- No YAML files required
**Components:**
1. **Web Interface:** Dashboard builder and viewer
2. **API Backend:** Service integrations
3. **Database:** User accounts, dashboards, settings
4. **Docker Integration:** Container monitoring
## Configuration in AI-Homelab
### Directory Structure
```
/opt/stacks/dashboards/homarr/
├── data/ # Database and configs
├── icons/ # Custom icons
└── backups/ # Dashboard backups
```
### Environment Variables
```bash
# Base URL (if behind reverse proxy)
BASE_URL=https://homarr.yourdomain.com
# Port
PORT=7575
# Timezone
TZ=America/New_York
# Optional: Disable analytics
DISABLE_ANALYTICS=true
```
## Official Resources
- **Website:** https://homarr.dev
- **GitHub:** https://github.com/ajnart/homarr
- **Documentation:** https://homarr.dev/docs/introduction
- **Discord:** https://discord.gg/aCsmEV5RgA
- **Demo:** https://demo.homarr.dev
## Educational Resources
### Videos
- [Homarr - Modern Dashboard for Your Homelab (Techno Tim)](https://www.youtube.com/watch?v=a2S5iHG5C0M)
- [Homarr Setup Tutorial (DB Tech)](https://www.youtube.com/watch?v=tdMAXd9sHY4)
- [Homepage vs Homarr - Which Dashboard?](https://www.youtube.com/results?search_query=homarr+vs+homepage)
### Articles & Guides
- [Homarr Official Documentation](https://homarr.dev/docs)
- [Widget Configuration Guide](https://homarr.dev/docs/widgets)
- [Integration Setup](https://homarr.dev/docs/integrations)
### Concepts to Learn
- **Dashboard Builders:** Visual interface design
- **Widget Systems:** Modular dashboard components
- **API Integration:** Service data fetching
- **User Authentication:** Multi-user support
- **Docker Integration:** Container monitoring
- **Responsive Design:** Mobile-friendly layouts
## Docker Configuration
### Complete Service Definition
```yaml
homarr:
image: ghcr.io/ajnart/homarr:latest
container_name: homarr
restart: unless-stopped
networks:
- traefik-network
ports:
- "7575:7575"
volumes:
- /opt/stacks/dashboards/homarr/data:/app/data/configs
- /opt/stacks/dashboards/homarr/icons:/app/public/icons
- /opt/stacks/dashboards/homarr/data:/data
- /var/run/docker.sock:/var/run/docker.sock:ro # For Docker integration
environment:
- BASE_URL=https://homarr.${DOMAIN}
- PORT=7575
- TZ=America/New_York
- DISABLE_ANALYTICS=true
labels:
- "traefik.enable=true"
- "traefik.http.routers.homarr.rule=Host(`homarr.${DOMAIN}`)"
- "traefik.http.routers.homarr.entrypoints=websecure"
- "traefik.http.routers.homarr.tls.certresolver=letsencrypt"
- "traefik.http.services.homarr.loadbalancer.server.port=7575"
```
## Setup and Usage
### Initial Setup
1. **Access Homarr:**
- Navigate to: `https://homarr.yourdomain.com`
- Or: `http://SERVER_IP:7575`
2. **Create Admin Account:**
- Click "Get Started"
- Enter username and password
- Create first dashboard
3. **Dashboard Creation:**
- Name your dashboard
- Choose layout (grid, list, etc.)
- Start adding apps and widgets
### Adding Applications
**Method 1: Manual Add**
1. Click "Edit Mode" (pencil icon)
2. Click "+" button
3. Select "App"
4. Fill in details:
- Name
- URL
- Icon (search or upload)
- Description
5. Save
**Method 2: Integration**
1. Add app as above
2. Click "Integration" tab
3. Select service type (Sonarr, Radarr, etc.)
4. Enter API URL and key
5. Save - widget will show live data
**Method 3: Docker Discovery**
1. Enable Docker integration
2. Homarr auto-discovers containers
3. Add discovered apps to dashboard
### Dashboard Editor
**Edit Mode:**
- Click pencil icon to enter edit mode
- Drag tiles to rearrange
- Resize tiles by dragging corners
- Delete tiles with X button
- Click tiles to edit settings
**Grid System:**
- Tiles snap to grid
- Customizable grid size
- Responsive layout
- Mobile-optimized views
**Categories:**
- Create sections (Media, Management, etc.)
- Collapse/expand categories
- Organize apps logically
### User Management
**Create Users:**
1. Settings → Users → Add User
2. Set username and password
3. Assign permissions
4. User can login and customize their dashboard
**Permissions:**
- **Admin:** Full access
- **User:** View and edit own dashboards
- **Guest:** Read-only access
## Widgets and Apps
### Application Widgets
**Supported Integrations:**
**Media:**
- Plex, Jellyfin, Emby
- Sonarr, Radarr, Lidarr, Readarr
- Prowlarr, Jackett
- qBittorrent, Transmission, Deluge
- Tautulli (Plex stats)
- Overseerr, Jellyseerr
**Infrastructure:**
- Portainer
- Traefik
- Pi-hole, AdGuard Home
- Uptime Kuma
- Proxmox
**Other:**
- Home Assistant
- Nextcloud
- Gitea
- Calibre-Web
- Many more...
### Information Widgets
**Weather Widget:**
```
Location: Auto-detect or manual
Provider: OpenWeatherMap, WeatherAPI
Units: Imperial/Metric
Forecast: 3-7 days
```
**Calendar Widget:**
```
Type: iCal URL
Source: Google Calendar, Nextcloud, etc.
Events: Upcoming events display
```
**RSS Widget:**
```
Feed URL: Any RSS/Atom feed
Items: Number to show
Refresh: Update interval
```
**Docker Widget:**
```
Shows: Running/Stopped containers
Stats: CPU, Memory, Network
Control: Start/Stop containers (if permissions)
```
**Clock Widget:**
```
Format: 12h/24h
Timezone: Custom or system
Date: Show/hide
Analog/Digital: Style choice
```
**Media Server Widget:**
```
Plex/Jellyfin: Currently playing
Recent: Recently added
Stats: Library counts
```
### Custom Widgets
**HTML Widget:**
- Embed custom HTML
- Use for iframes, custom content
- CSS styling support
**Iframe Widget:**
- Embed external websites
- Dashboard within dashboard
- Useful for Grafana, etc.
**Image Widget:**
- Display static images
- Backgrounds, logos
- Network/local images
## Advanced Topics
### Custom Icons
**Upload Custom Icons:**
1. Place icons in `/icons/` directory
2. Or upload via UI
3. Reference in app settings
**Icon Sources:**
- Built-in icon library (1000+)
- Upload your own (PNG, SVG, JPG)
- URL to external icon
- Dashboard Icons repository
### Multiple Dashboards
**Create Multiple Boards:**
1. Settings → Boards → New Board
2. Name and configure
3. Switch between boards
4. Different dashboards for different purposes:
- Family board
- Admin board
- Media board
- etc.
**Board Sharing:**
- Share board link
- Set access permissions
- Public vs private boards
### Themes and Customization
**Theme Options:**
- Light/Dark mode
- Accent colors
- Background images
- Custom CSS (advanced)
**Layout Options:**
- Grid size
- Tile spacing
- Column count
- Responsive breakpoints
### Docker Integration
**Enable Docker:**
1. Mount Docker socket
2. Settings → Docker → Enable
3. Select which containers to show
4. Auto-discovery or manual
**Docker Features:**
- Container status
- Start/Stop controls (if enabled)
- Resource usage
- Quick access to logs
### API Access
**REST API:**
- Endpoint: `https://homarr.domain.com/api`
- Authentication: API key
- Use for automation
- Integration with other tools
**API Uses:**
- Automated dashboard updates
- External monitoring
- Custom integrations
- Backup automation
### Backup and Restore
**Manual Backup:**
1. Settings → Backups
2. Create backup
3. Download JSON file
**Restore:**
1. Settings → Backups
2. Upload backup file
3. Select boards to restore
**File System Backup:**
```bash
# Backup entire data directory
tar -czf homarr-backup-$(date +%Y%m%d).tar.gz /opt/stacks/dashboards/homarr/data/
# Restore
tar -xzf homarr-backup-20240112.tar.gz -C /opt/stacks/dashboards/homarr/
docker restart homarr
```
### Import/Export
**Export Dashboard:**
- Settings → Export → Download JSON
- Share with others
- Version control
**Import Dashboard:**
- Settings → Import → Upload JSON
- Community dashboards
- Template boards
## Troubleshooting
### Homarr Not Loading
```bash
# Check container status
docker ps | grep homarr
# View logs
docker logs homarr
# Test port
curl http://localhost:7575
# Check Traefik routing
docker logs traefik | grep homarr
```
### Can't Login
```bash
# Reset admin password
docker exec -it homarr npm run db:reset-password
# Or recreate database (WARNING: loses data)
docker stop homarr
rm -rf /opt/stacks/dashboards/homarr/data/db.sqlite
docker start homarr
# Creates new database, need to setup again
```
### Widgets Not Showing Data
```bash
# Check API connectivity
docker exec homarr curl http://service:port
# Verify API key
# Re-enter in widget settings
# Check service logs
docker logs service-name
# Test API manually
curl -H "X-Api-Key: key" http://service:port/api/endpoint
```
### Icons Not Displaying
```bash
# Clear browser cache
# Ctrl+Shift+R (hard refresh)
# Check icon path
ls -la /opt/stacks/dashboards/homarr/icons/
# Ensure proper permissions
sudo chown -R 1000:1000 /opt/stacks/dashboards/homarr/
# Re-upload icon via UI
```
### Docker Integration Not Working
```bash
# Verify socket mount
docker inspect homarr | grep -A5 Mounts
# Check socket permissions
ls -la /var/run/docker.sock
# Fix permissions
sudo chmod 666 /var/run/docker.sock
# Or use Docker Socket Proxy (recommended)
```
### High Memory Usage
```bash
# Check container stats
docker stats homarr
# Typical usage: 100-300MB
# If higher, restart container
docker restart homarr
# Reduce widgets if needed
# Remove unused integrations
```
### Slow Performance
```bash
# Reduce widget refresh rates
# Edit widget → Change refresh interval
# Disable unused features
# Settings → Integrations → Disable unused
# Check network latency
# Ping services from Homarr container
# Restart container
docker restart homarr
```
## Performance Optimization
### Reduce API Calls
- Increase widget refresh intervals
- Disable widgets for services you don't monitor frequently
- Use lazy loading for images
### Optimize Docker
```yaml
homarr:
deploy:
resources:
limits:
cpus: '1.0'
memory: 512M
reservations:
memory: 128M
```
### Cache Settings
- Enable browser caching
- Use CDN for icons if available
- Optimize image sizes
## Comparison with Alternatives
### Homarr vs Homepage
**Homarr:**
- GUI configuration
- Built-in authentication
- Drag-and-drop
- More interactive
- Higher resource usage
**Homepage:**
- YAML configuration
- External auth required
- Faster performance
- GitOps friendly
- Lighter weight
### Homarr vs Heimdall
**Homarr:**
- More modern UI
- Better integrations
- Active development
- More features
**Heimdall:**
- Simpler
- Very lightweight
- Established project
- Basic functionality
### Homarr vs Organizr
**Homarr:**
- Newer, modern
- Better mobile support
- Easier setup
- More widgets
**Organizr:**
- More mature
- Tab-based interface
- Different philosophy
- Large community
## Tips and Tricks
### Efficient Layouts
**Media Dashboard:**
- Large tiles for Plex/Jellyfin
- Medium tiles for *arr apps
- Small tiles for indexers
- Weather widget in corner
**Admin Dashboard:**
- Grid of management tools
- Docker status widget
- System resource widget
- Recent logs/alerts
**Family Dashboard:**
- Large, simple icons
- Hide technical services
- Focus on media/content
- Bright, friendly theme
### Widget Combinations
**Media Setup:**
1. Plex/Jellyfin (large, with integration)
2. Sonarr/Radarr (medium, with stats)
3. qBittorrent (small, with speed)
4. Recently added (widget)
**Monitoring Setup:**
1. Docker widget (container status)
2. Pi-hole widget (blocking stats)
3. Uptime Kuma widget (service status)
4. Weather widget (why not?)
### Custom Styling
Use custom CSS for unique looks:
- Rounded corners
- Custom colors
- Transparency effects
- Animations
## Summary
Homarr is a user-friendly, interactive dashboard that offers:
- Visual dashboard builder
- Built-in authentication
- Rich widget ecosystem
- Drag-and-drop interface
- Modern, responsive design
- No configuration files needed
**Perfect for:**
- Users who prefer GUI over YAML
- Multi-user environments
- Interactive dashboards
- Visual customization fans
- Quick setup without learning curve
**Trade-offs:**
- Higher resource usage than Homepage
- Database dependency
- Less GitOps friendly
- Newer project (less mature)
**Best Practices:**
- Use both Homepage and Homarr (they complement each other)
- Homepage for you, Homarr for family
- Regular backups of database
- Optimize widget refresh rates
- Use Docker Socket Proxy for security
- Keep updated for new features
**Remember:**
- Homarr is all about visual customization
- No YAML - everything in UI
- Great for non-technical users
- Built-in auth is convenient
- Can coexist with Homepage
- Choose based on your preference and use case