YAML Configuration
Nidus supports exporting and importing the full dashboard configuration as a human-readable YAML file.
This can be used for:
- Backup — save your configuration in a readable format
- Version control — track configuration changes in Git
- Migration — move your setup to a new instance
- Bootstrapping — pre-configure a fresh Nidus install via
config.yaml
Format
version: 2
settings:
theme: dark # dark, light, nord, dracula
language: fr # fr, en, es, de, pt, it, nl, ru, zh, ja, ar
refresh_interval: 30 # seconds
accent_color: "" # hex color or empty for default
custom_css: "" # custom CSS injected in <head>
categories:
- name: Infrastructure
icon: server
sort_order: 0
widgets:
- type: docker
title: Docker Containers
config: '{"environment_id": 1}'
pos_x: 0
pos_y: 0
width: 6
height: 3
services:
- type: portainer
name: Portainer
url: "https://192.168.1.100:9443"
credentials: '{"token": "your-api-token"}'
enabled: true
Widget types
| Type | Description |
|---|---|
docker | Docker containers (via Portainer) |
proxmox | Proxmox VMs and LXCs |
homeassistant | Home Assistant entities |
adguard | AdGuard Home DNS stats |
jdownloader | JDownloader queue |
transmission | Transmission torrents |
applink | Bookmark links with health check |
Grid system
- The grid uses 12 columns (
pos_x: 0-11,width: 1-12) - Rows are 80px each (
pos_yandheightare in row units) height: 0means auto-height (fit content)- Widgets cannot overlap; collisions are resolved automatically
API Endpoints
Export (admin only)
Returns the full configuration as a downloadable YAML file. Service credentials are included in plaintext.
Import (admin only)
Replaces the current configuration with the imported one. Existing categories, widgets, and services are deleted before import.
Content-Type: application/x-yaml
<yaml content>
Auto-import at startup
If data/config.yaml contains dashboard sections (settings, categories, or services) and the database is empty (no categories exist), Nidus will automatically import the dashboard configuration on startup.
This allows pre-configuring Nidus by adding dashboard sections to the same config.yaml used for server settings:
# Server settings (always read)
server:
port: 3777
database:
path: ./data/nidus.db
# Dashboard settings (auto-imported on first startup only)
settings:
theme: dark
language: fr
categories:
- name: Home
icon: home
sort_order: 0
widgets:
- type: docker
title: Containers
config: '{}'
pos_x: 0
pos_y: 0
width: 12
height: 4
services:
- type: portainer
name: Portainer
url: "https://portainer.local:9443"
credentials: '{"token": "your-token"}'
enabled: true
Security warning
For encrypted backups, use the standard export/import feature in Settings which encrypts the file with a password (AES-256-GCM).