HomeLabDocs/homarr_complete.md

113 lines
3.4 KiB
Markdown

# 🧩 Homarr - Container 112
## Overview
Homarr is a sleek, customizable homepage dashboard that consolidates self-hosted services into one convenient UI. In this homelab, Homarr runs **natively inside an unprivileged LXC container** on Proxmox (not Docker), installed using the community script.
## Service Details
- **Container ID**: 112
- **Hostname**: homarr
- **IP Address**: [http://192.168.1.33:7575](http://192.168.1.33:7575)
- **Port**: 7575 (Web UI)
- **Access**: LAN-only (secured via Tailscale or VLAN isolation)
- **Authentication**: Disabled by default (access protected via local network)
- **Admin Login**: Stored in Bitwarden under `homelab > Homarr` (if enabled)
## Hosting & Platform
- **Proxmox Host Node**: `proxmox04`
- **OS Type**: Debian 12
- **LXC Type**: Unprivileged
- **CPU Cores**: 3
- **RAM**: 6144 MiB
- **Disk Size**: 8 GB
- **Bridge**: `vmbr0`
- **IPv4**: `192.168.1.33/24`
- **Gateway**: `192.168.1.1`
- **IPv6**: SLAAC/Auto
- **FUSE Support**: Disabled
- **Root SSH Access**: Enabled
- **Features**: `keyctl=1`, `nesting=1`
- **Tags**: `arr`, `dashboard`, `community-script`
- **Autostart**: ✅ Enabled (`onboot: 1`)
## Deployment & Service
- **Installation Method**: Community Script (via GitHub)
- **Version**: Homarr `1.28.1`
- **Node.js Version**: 22
- **Package Manager**: `pnpm@10.13.1`
- **Service Path**: `/opt/homarr/start.sh`
- **Runs As**: `root`
- **Service Manager**: `systemd` (`homarr.service`)
### systemd Service File
`/etc/systemd/system/homarr.service`
```ini
[Unit]
Description=Homarr Dashboard
After=network.target
[Service]
Type=simple
ExecStart=/opt/homarr/start.sh
WorkingDirectory=/opt/homarr
Restart=always
User=root
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
```
## Storage & Mounts
| Host Path | Container Path | Purpose |
|--------------------------------|------------------------------------|----------------------------------|
| `/mnt/smb_shares/dash_config` | `/var/lib/homarr` | Persistent Homarr config |
| `/mnt/smb_shares/common_icons` | `/var/lib/homarr/public/icons` | Optional custom icon set |
## Configuration
- **Config Path**: `/var/lib/homarr/configs/`
- **Environment Variables**:
- `PORT=7575`
- `NODE_ENV=production`
- **Reverse Proxy** (optional): Cloudflare Tunnel or Apache/Nginx
- **TLS**: Not enabled directly on Homarr (handled via proxy if needed)
## Backup & Recovery
- **Backup Target**: `/var/lib/homarr`
- **Strategy**: Scheduled LXC snapshots + tarball or rsync
- **Manual Backup**:
```bash
tar -czvf /root/homarr-config-backup-$(date +%F).tar.gz /var/lib/homarr
```
## Logs & Monitoring
- **Log Path**: No centralized log; recommend redirecting stdout to `/var/log/homarr.log` via systemd if needed
- **Monitoring**: Not yet configured (can integrate with Netdata, Uptime Kuma, or Homarr widgets)
## Updates
Manual update steps:
```bash
systemctl stop homarr
cd /opt/homarr
git pull origin main
pnpm install --frozen-lockfile --production
systemctl start homarr
```
## Notes
- Authentication is disabled — access is restricted at the network level.
- Config files are versioned JSON stored at `/var/lib/homarr/configs/`.
- IPv6 is enabled, but not internet-routable.
- Icons can be customized under `public/icons/` for enhanced UI.
- Container created using the Proxmox community-script installer.