5.2 KiB
5.2 KiB
🏗️ Dashboard as Code for Homarr
Homarr 1.0 stores data in SQLite, but there are ways to work with it programmatically.
Option 1: JSON Export/Import (Recommended)
Homarr 1.0+ supports exporting/importing boards as JSON.
How to Export Your Current Board
1. Go to Manage → Boards
2. Click on a board
3. Click "Export" button
4. Download JSON file
JSON Structure Example
Here's a complete board JSON you can import:
{
"name": "Main Dashboard",
"description": "Public dashboard with news and links",
"backgroundImage": "",
"backgroundImageAttachment": "fixed",
"backgroundImageRepeat": "no-repeat",
"backgroundImageSize": "cover",
"colorScheme": "dark",
"customCss": "/* Paste CSS from custom-boards.css here */",
"items": [
{
"type": "clock",
"x": 0,
"y": 0,
"width": 2,
"height": 2,
"options": {
"showDate": true,
"timeFormat": "24"
}
},
{
"type": "weather",
"x": 2,
"y": 0,
"width": 2,
"height": 2,
"options": {
"location": "Stockholm, Sweden",
"unit": "celsius"
}
},
{
"type": "rss",
"x": 0,
"y": 2,
"width": 4,
"height": 3,
"options": {
"feedUrls": [
"https://selfh.st/rss/",
"https://noted.lol/rss/",
"https://feeds.fireside.fm/selfhosted/rss"
],
"postsLimit": 10,
"enableRtl": false,
"descriptionLineClamp": 3,
"hideDescription": false
}
},
{
"type": "rss",
"x": 4,
"y": 2,
"width": 4,
"height": 3,
"options": {
"feedUrls": [
"https://www.bleepingcomputer.com/feed/",
"https://feeds.feedburner.com/TheHackersNews",
"https://krebsonsecurity.com/feed/"
],
"postsLimit": 10,
"descriptionLineClamp": 2
}
},
{
"type": "app",
"x": 0,
"y": 5,
"width": 1,
"height": 1,
"options": {
"appId": "gmail-id"
}
},
{
"type": "app",
"x": 1,
"y": 5,
"width": 1,
"height": 1,
"options": {
"appId": "github-id"
}
}
],
"visibility": "public",
"layout": {
"columnCount": 8
}
}
How to Import
1. Manage → Boards
2. Click "Import" button
3. Upload JSON file
4. Review and confirm
Option 2: SQLite Database Editing (Advanced)
Homarr stores everything in /opt/homarr/appdata/db/homarr.db
Access the Database
# SSH to your server
docker exec -it homarr sh
# Install sqlite3
apk add sqlite3
# Open database
sqlite3 /appdata/db/homarr.db
# View tables
.tables
# View boards
SELECT * FROM Board;
# View apps
SELECT * FROM App;
Key Tables
| Table | Purpose |
|---|---|
Board |
Board definitions |
Section |
Board sections/items |
App |
App definitions |
Integration |
Integration configs |
Option 3: API Approach (Scripting)
Homarr has internal APIs you can script against:
Get Board Data
# Get all boards
curl http://localhost:7575/api/boards
# Get specific board
curl http://localhost:7575/api/boards/main-dashboard
Create Board via API
# This requires authentication cookie/session
# You'd need to extract from browser DevTools
curl -X POST http://localhost:7575/api/boards \
-H "Content-Type: application/json" \
-H "Cookie: your-auth-cookie" \
-d '{
"name": "Auto Created Board",
"visibility": "public"
}'
Option 4: Pre-built JSON Files (I Can Create These)
I can create complete JSON files for you to import!
Board 1: Main Dashboard JSON
File: boards/main-dashboard.json
Board 2: System Monitor JSON
File: boards/system-overview.json
Board 3: Infrastructure JSON
File: boards/infrastructure.json
You would:
- Download these JSON files
- Import each one in Homarr
- Done!
What I Can Do For You
Option A: Create Importable JSON Files
I'll create complete JSON files for each board:
- ✅ Main Dashboard (with RSS feeds, clock, weather)
- ✅ System Overview (full-screen Dash.)
- ✅ Infrastructure (with all your apps)
- ✅ Media Center (if needed)
You just import them!
Option B: Create SQL Scripts
Generate SQL INSERT statements to directly populate the database.
Option C: Step-by-Step Copy/Paste
Provide exact values to enter in each field.
Which Option Do You Want?
| Option | Effort For You | Effort For Me | Best For |
|---|---|---|---|
| A - JSON Import | Low (just import) | Medium | Quick setup |
| B - SQL Script | Low (run script) | Medium | Automation |
| C - Copy/Paste | Medium | Low | Learning |
Tell Me:
-
Which boards do you want me to build?
- Main Dashboard (public)
- System Overview (private)
- Infrastructure (private)
- Media Center (private)
- News Hub (public)
-
Which method?
- JSON import files
- SQL script
- Copy/paste guide
-
Your details:
- Location (for weather)
- Apps you want included (from the 60+ list)
- RSS feed preferences
I'll build them for you! 🚀