mirror of https://github.com/lissy93/dashy
408 lines
13 KiB
JSON
408 lines
13 KiB
JSON
{
|
|
"type": "object",
|
|
"required": [
|
|
"sections"
|
|
],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"pageInfo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string",
|
|
"description": "Title and heading for the app"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": "Sub-title, displayed in header"
|
|
},
|
|
"navLinks": {
|
|
"type": "array",
|
|
"maxItems": 6,
|
|
"description": "Quick access links, displayed in header",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"title",
|
|
"path"
|
|
],
|
|
"properties": {
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"footerText": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"title"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"appConfig": {
|
|
"type": "object",
|
|
"description": "Application configuration",
|
|
"properties": {
|
|
"backgroundImg": {
|
|
"type": "string",
|
|
"description": "A URL to an image asset to be displayed as background"
|
|
},
|
|
"language": {
|
|
"type": "string",
|
|
"description": "The ISO code of your desired language, must have translations present, check docs for more info"
|
|
},
|
|
"theme": {
|
|
"type": "string",
|
|
"default": "callisto",
|
|
"description": "A theme to be applied by default on first load",
|
|
"examples": [
|
|
"callisto",
|
|
"thebe",
|
|
"dracula",
|
|
"material",
|
|
"material-dark",
|
|
"colorful",
|
|
"nord",
|
|
"nord-frost",
|
|
"minimal-dark",
|
|
"minimal-light",
|
|
"matrix",
|
|
"matrix-red",
|
|
"hacker-girl",
|
|
"raspberry-jam",
|
|
"bee",
|
|
"tiger",
|
|
"material-original",
|
|
"material-dark-original",
|
|
"vaporware",
|
|
"high-contrast-dark",
|
|
"high-contrast-light"
|
|
]
|
|
},
|
|
"enableFontAwesome": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Should load font-awesome assets"
|
|
},
|
|
"fontAwesomeKey": {
|
|
"type": "string",
|
|
"pattern": "^[a-z0-9]{10}$",
|
|
"description": "API key for font-awesome"
|
|
},
|
|
"faviconApi": {
|
|
"enum": [
|
|
"local",
|
|
"faviconkit",
|
|
"google",
|
|
"clearbit",
|
|
"webmasterapi",
|
|
"allesedv"
|
|
],
|
|
"default": "faviconkit",
|
|
"description": "Which service to use to resolve favicons. Set to local to do this locally instead"
|
|
},
|
|
"layout": {
|
|
"enum": [
|
|
"horizontal",
|
|
"vertical",
|
|
"auto",
|
|
"sidebar"
|
|
],
|
|
"default": "auto",
|
|
"description": "Specifies sections layout orientation on the home screen"
|
|
},
|
|
"iconSize": {
|
|
"enum": [
|
|
"small",
|
|
"medium",
|
|
"large"
|
|
],
|
|
"default": "medium",
|
|
"description": "The size of each link item / icon"
|
|
},
|
|
"hideComponents": {
|
|
"type": "object",
|
|
"description": "Hide individual parts of the page. If not set, all components are visible by default",
|
|
"properties": {
|
|
"hideHeading": {
|
|
"type": "boolean",
|
|
"default": "false",
|
|
"description": "If set to true, the page heading & subtitle will be hidden"
|
|
},
|
|
"hideNav": {
|
|
"type": "boolean",
|
|
"default": "false",
|
|
"description": "If set to true, the navigation menu will be hidden"
|
|
},
|
|
"hideSearch": {
|
|
"type": "boolean",
|
|
"default": "false",
|
|
"description": "If set to true, the search bar will be hidden"
|
|
},
|
|
"hideSettings": {
|
|
"type": "boolean",
|
|
"default": "false",
|
|
"description": "If set to true, the settings buttons will be hidden"
|
|
},
|
|
"hideFooter": {
|
|
"type": "boolean",
|
|
"default": "false",
|
|
"description": "If set to true, the page footer will be hidden"
|
|
},
|
|
"hideSplashScreen": {
|
|
"type": "boolean",
|
|
"default": "true",
|
|
"description": "If set to true, the loading / splash screen will not be shown"
|
|
}
|
|
}
|
|
},
|
|
"cssThemes": {
|
|
"type": "array",
|
|
"description": "Theme names to be added to the dropdown",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"customColors": {
|
|
"type": "object",
|
|
"description": "Set a custom color palette for any theme"
|
|
},
|
|
"externalStyleSheet": {
|
|
"description": "URL or URLs of external stylesheets to add to dropdown/ load",
|
|
"type": [
|
|
"string",
|
|
"array"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"customCss": {
|
|
"type": "string",
|
|
"description": "Any custom CSS overides, must be minified"
|
|
},
|
|
"statusCheck": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Displays an online/ offline status for each of your services"
|
|
},
|
|
"statusCheckInterval": {
|
|
"type": "number",
|
|
"default": 0,
|
|
"description": "How often to recheck statuses. If set to 0, status will only be checked on page load"
|
|
},
|
|
"auth": {
|
|
"type": "array",
|
|
"description": "Usernames and hashed credentials for frontend authentication",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"user",
|
|
"hash"
|
|
],
|
|
"properties": {
|
|
"user": {
|
|
"type": "string",
|
|
"description": "The username for a user"
|
|
},
|
|
"hash": {
|
|
"type": "string",
|
|
"description": "A SHA-256 hashed password for that user",
|
|
"minLength": 64,
|
|
"maxLength": 64
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"admin",
|
|
"normal"
|
|
],
|
|
"description": "User type, denoting privilege level, either admin or normal",
|
|
"default": "normal"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"allowConfigEdit": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Can user write changes to conf.yml file from the UI. If set to false, preferences are only stored locally"
|
|
},
|
|
"disableServiceWorker": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "If set to true, then service workers will not be used to cache page contents"
|
|
},
|
|
"disableContextMenu": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "If set to true, custom right-click context menu will be disabled"
|
|
},
|
|
"disableUpdateChecks": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Prevents Dashy from checking for updates"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"sections": {
|
|
"type": "array",
|
|
"description": "Array of sections, containing items",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"items"
|
|
],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Title/ heading for a section"
|
|
},
|
|
"icon": {
|
|
"type": "string",
|
|
"description": "Icon will be displayed next to title"
|
|
},
|
|
"displayData": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"description": "Optional meta data for customizing a section",
|
|
"properties": {
|
|
"collapsed": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "If true, section needs to be clicked to open"
|
|
},
|
|
"color": {
|
|
"type": "string",
|
|
"description": "Hex code, or HTML color for section fill"
|
|
},
|
|
"customStyles": {
|
|
"type": "string",
|
|
"description": "CSS overides for section container"
|
|
},
|
|
"itemSize": {
|
|
"enum": [
|
|
"small",
|
|
"medium",
|
|
"large"
|
|
],
|
|
"default": "medium",
|
|
"description": "Size of items within the section"
|
|
},
|
|
"rows": {
|
|
"type": "number",
|
|
"minimum": 1,
|
|
"maximum": 5,
|
|
"default": 1,
|
|
"description": "The amount of space that the section spans vertically"
|
|
},
|
|
"cols": {
|
|
"type": "number",
|
|
"minimum": 1,
|
|
"maximum": 5,
|
|
"default": 1,
|
|
"description": "The amount of space that the section spans horizontally"
|
|
},
|
|
"sectionLayout": {
|
|
"enum": [
|
|
"grid",
|
|
"auto"
|
|
],
|
|
"default": "auto",
|
|
"description": "If set to grid, items have uniform width, and itemCount can be set"
|
|
},
|
|
"itemCountX": {
|
|
"type": "number",
|
|
"minimum": 1,
|
|
"maximum": 12,
|
|
"description": "Number of items per column"
|
|
},
|
|
"itemCountY": {
|
|
"type": "number",
|
|
"minimum": 1,
|
|
"maximum": 12,
|
|
"description": "Number of items per row"
|
|
}
|
|
}
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"description": "Array of items to display with a section",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"title"
|
|
],
|
|
"properties": {
|
|
"title": {
|
|
"type": "string",
|
|
"description": "Text shown on the item"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"nullable": true,
|
|
"description": "Short description, shown on hover or in a tooltip"
|
|
},
|
|
"icon": {
|
|
"type": "string",
|
|
"nullable": true,
|
|
"description": "An icon, either as a font-awesome identifier, local or remote URL, or the word favicon or generative"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"description": "The destination to navigate to when item is clicked"
|
|
},
|
|
"target": {
|
|
"enum": [
|
|
"newtab",
|
|
"sametab",
|
|
"modal",
|
|
"workspace"
|
|
],
|
|
"default": "newtab",
|
|
"description": "Opening method, when item is clicked"
|
|
},
|
|
"hotkey": {
|
|
"type": "number",
|
|
"description": "A numeric shortcut key, between 0 and 9. Useful for quickly launching frequently used applications"
|
|
},
|
|
"color": {
|
|
"type": "string",
|
|
"description": "A custom fill color of the item"
|
|
},
|
|
"provider": {
|
|
"type": "string",
|
|
"description": "Provider name, e.g. Microsoft"
|
|
},
|
|
"statusCheck": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Whether or not to display online/ offline status for this service. Will override appConfig.statusCheck"
|
|
},
|
|
"statusCheckUrl": {
|
|
"type": "string",
|
|
"description": "If you've enabled statusCheck, and want to use a different URL to what is defined under the item, then specify it here"
|
|
},
|
|
"statusCheckHeaders": {
|
|
"type": "object",
|
|
"description": " If you're endpoint requires any specific headers for the status checking, then define them here"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |