homarr-dashboard/IMPORT_JSON.md

241 lines
4.9 KiB
Markdown

# 📥 Import JSON Boards into Homarr
## Step-by-Step Import Guide
### Step 1: Download the JSON Files
From your Gitea repo:
```
https://git.lemonlink.eu/impulsivefps/homarr-dashboard/tree/main/boards
```
Download these files:
- `main-dashboard.json`
- `system-overview.json`
- `infrastructure.json`
### Step 2: Get the Files to Your Server
Option A - Download directly on server:
```bash
cd /tmp
wget https://git.lemonlink.eu/impulsivefps/homarr-dashboard/raw/main/boards/main-dashboard.json
wget https://git.lemonlink.eu/impulsivefps/homarr-dashboard/raw/main/boards/system-overview.json
wget https://git.lemonlink.eu/impulsivefps/homarr-dashboard/raw/main/boards/infrastructure.json
```
Option B - Clone the repo:
```bash
git clone https://git.lemonlink.eu/impulsivefps/homarr-dashboard.git
cd homarr-dashboard/boards
```
### Step 3: Import Each Board
#### Import Main Dashboard
```bash
# Copy JSON into Homarr container
docker cp /tmp/main-dashboard.json homarr:/tmp/
# Access Homarr container
docker exec -it homarr sh
# The board data needs to be inserted via the Homarr API
# Exit container for now
exit
```
#### Alternative: Use Homarr's Web UI
Unfortunately, Homarr 1.0 doesn't have a direct JSON import in the UI yet.
**You'll need to manually create the boards using the JSON as reference.**
---
## 🛠️ Manual Import (Current Method)
Since Homarr 1.0 doesn't have JSON import yet, do this:
### Create Main Dashboard Manually
1. **Create Board:**
```
Profile → Manage → Boards → New Board
Name: Main Dashboard
Visibility: Public
```
2. **Add Apps First:**
```
Manage → Apps → New App
App 1:
- Name: Gmail
- Icon: gmail
- URL: https://mail.google.com
App 2:
- Name: GitHub
- Icon: github
- URL: https://github.com
App 3:
- Name: Reddit
- Icon: reddit
- URL: https://reddit.com
App 4:
- Name: YouTube
- Icon: youtube
- URL: https://youtube.com
App 5:
- Name: Discord
- Icon: discord
- URL: https://discord.com
App 6:
- Name: Proxmox
- Icon: proxmox
- URL: https://proxmox.lemonlink.eu
App 7:
- Name: Portainer
- Icon: portainer
- URL: https://portainer.lemonlink.eu
App 8:
- Name: Plex
- Icon: plex
- URL: https://plex.lemonlink.eu
App 9:
- Name: Nextcloud
- Icon: nextcloud
- URL: https://cloud.lemonlink.eu
App 10:
- Name: Vaultwarden
- Icon: vaultwarden
- URL: https://vault.lemonlink.eu
```
3. **Add Widgets to Board:**
```
Open Main Dashboard → Edit Mode (pencil icon)
Widget 1 - Clock:
- Add Item → Clock
- Settings: Show date ✅, 24h format
- Position: Top left
- Size: 2x2
Widget 2 - Weather:
- Add Item → Weather
- Location: Stockholm, Sweden (change to yours)
- Position: Next to clock
- Size: 2x2
Widget 3 - RSS Homelab:
- Add Item → RSS Feed
- Name: Homelab News
- URLs:
https://selfh.st/rss/
https://noted.lol/rss/
https://feeds.fireside.fm/selfhosted/rss
- Posts limit: 10
- Size: 3x4
Widget 4 - RSS Cyber:
- Add Item → RSS Feed
- Name: Cybersecurity
- URLs:
https://www.bleepingcomputer.com/feed/
https://feeds.feedburner.com/TheHackersNews
https://krebsonsecurity.com/feed/
- Posts limit: 10
- Size: 3x4
Widget 5 - RSS Tech:
- Add Item → RSS Feed
- Name: Tech News
- URLs:
https://news.ycombinator.com/rss
https://techcrunch.com/feed/
- Posts limit: 8
- Hide description ✅
- Size: 2x4
```
4. **Add Apps to Board:**
```
Add Item → App → Select each app you created
Arrange them in a row at the bottom
```
5. **Apply Theme:**
```
Settings (gear icon) → Appearance
Primary Color: #6366f1
Secondary Color: #8b5cf6
Background: #0a0a0f
Text Color: #e2e8f0
Custom CSS: Copy from config/custom-boards.css
```
### Create System Overview Board
```
1. New Board
Name: System Overview
Visibility: Private
2. Add Widget
Type: iFrame
Name: System Monitor
URL: http://YOUR-SERVER-IP:3001
Size: Full width (as large as possible)
3. Save
```
### Create Infrastructure Board
```
1. New Board
Name: Infrastructure
Visibility: Private
2. Add Apps (create these first in Manage → Apps):
- Proxmox, Portainer, TrueNAS
- Pi-hole, AdGuard, NPM, UniFi
- Tailscale, Grafana, Prometheus
- Uptime Kuma, Netdata, WireGuard
3. Arrange them on the board
```
---
## 🚀 Quick Alternative
Since manual import is tedious, would you like me to:
**Option A: Create a script that auto-creates these via API?**
**Option B: Give you copy-paste commands for every single field?**
**Option C: Create SQL insert statements to directly populate the database?**
The SQL method would be fastest - one command and all boards are ready!
---
## Need Help?
If you get stuck on any step, tell me which one and I'll help! 🚀