Add simpledash config
This commit is contained in:
8
content/docs/simpledash/_index.md
Normal file
8
content/docs/simpledash/_index.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Simpledash Docs"
|
||||
draft: false
|
||||
description: "Documentation for Simpledash, a simple and fast web dashboard"
|
||||
menu:
|
||||
docs:
|
||||
parent: "docs"
|
||||
---
|
||||
144
content/docs/simpledash/configuration.md
Normal file
144
content/docs/simpledash/configuration.md
Normal file
@@ -0,0 +1,144 @@
|
||||
---
|
||||
title: "Configuration"
|
||||
draft: false
|
||||
description: "Configuring simpledash"
|
||||
---
|
||||
|
||||
## Flags
|
||||
|
||||
Simpledash can be run using the simpledash binary directly, or for convenience, using `advmake run`.
|
||||
|
||||
If using the binary directly, the listen IP, port, etc. can be configured via flags.
|
||||
|
||||
This is the help screen of simpledash:
|
||||
|
||||
```text
|
||||
Usage of ./simpledash:
|
||||
-a, --addr ip Bind address for HTTP server (default 0.0.0.0)
|
||||
-c, --config string TOML config file (default "simpledash.toml")
|
||||
--hash string Generate new bcrypt password hash
|
||||
-p, --port int Bind port for HTTP server (default 8080)
|
||||
simpledash: help requested
|
||||
```
|
||||
The default address of simpledash is `0.0.0.0:8080` meaning any origin IP on any interface, port 8080.
|
||||
|
||||
The `--hash` option creates a suitable bcrypt password hash for use in the config, prints it, and exits.
|
||||
|
||||
## Config file
|
||||
|
||||
Simpledash is configured using a TOML configuration file (simpledash.toml by default). It contains the users, cards, etc.
|
||||
|
||||
An example file is provided in the simpledash repository. It contains examples of all the card types in simpledash.
|
||||
|
||||
This is the example:
|
||||
```toml
|
||||
title = "SimpleDash"
|
||||
theme = "dark"
|
||||
loginRequired = false
|
||||
allowProxy = ["https://www.metaweather.com/", "https://ifconfig.co/json"]
|
||||
|
||||
[session]
|
||||
name = "simpledash-session"
|
||||
|
||||
[users]
|
||||
[[users._public_.card]]
|
||||
type = "weather"
|
||||
title = "Weather"
|
||||
data = {"woeid" = "2442047"}
|
||||
|
||||
[[users._public_.card]]
|
||||
type = "api"
|
||||
title = "Server IP (API card example)"
|
||||
url = "https://ifconfig.co/json"
|
||||
data = {"format" = """
|
||||
<p class="subtitle">${data.ip}</p>
|
||||
Country: ${data.country} (${data.country_iso})
|
||||
Time zone: ${data.time_zone}
|
||||
"""}
|
||||
|
||||
[users.admin]
|
||||
passwordHash = "$2a$10$w00dzQ1PP6nwXLhuzV2pFOUU6m8bcZXtDX3UVxpOYq3fTSwVMqPge"
|
||||
showPublic = true
|
||||
|
||||
[[users.admin.card]]
|
||||
type = "status"
|
||||
title = "Google"
|
||||
icon = "ion:logo-google"
|
||||
desc = "Google search engine. Status card example."
|
||||
url = "https://www.google.com"
|
||||
|
||||
[[users.admin.card]]
|
||||
type = "simple"
|
||||
title = "Gmail"
|
||||
icon = "simple-icons:gmail"
|
||||
desc = "Gmail mail client. Simple card example"
|
||||
url = "https://mail.google.com/"
|
||||
|
||||
[[users.admin.card]]
|
||||
type = "collection"
|
||||
title = "Programming"
|
||||
icon = "entypo:code"
|
||||
[users.admin.card.data]
|
||||
Godoc = {"url" = "https://pkg.go.dev", "target" = "newTab"}
|
||||
Ruby-Doc = {"url" = "https://ruby-doc.org/", "target" = "sameTab"}
|
||||
|
||||
[[users.admin.card]]
|
||||
type = "collection"
|
||||
title = "Science"
|
||||
icon = "ic:outline-science"
|
||||
data = {"Google Scholar" = {"url" = "https://scholar.google.com/", "target" = "sameTab"}}
|
||||
```
|
||||
|
||||
### Title
|
||||
|
||||
The title field sets the name of the website which will be used in all mentions including title tags and headers.
|
||||
|
||||
### Theme
|
||||
|
||||
The theme can either be dark or light. The dark theme was generated using darkreader.
|
||||
|
||||
### LoginRequired
|
||||
|
||||
The loginRequired field denotes whether login is required to view the dashboard. If `false`, public cards will be viewable without logging in.
|
||||
|
||||
### Session
|
||||
|
||||
The session section contains one field, `name`. This field is the name of the session cookie set in the browser upon visiting simpledash.
|
||||
|
||||
### Users
|
||||
|
||||
The `users` section contains all users and their associated cards. A user can be defined like so:
|
||||
|
||||
```toml
|
||||
[users.admin]
|
||||
passwordHash = "$2a$10$w00dzQ1PP6nwXLhuzV2pFOUU6m8bcZXtDX3UVxpOYq3fTSwVMqPge"
|
||||
showPublic = true
|
||||
```
|
||||
|
||||
The `passwordHash` field contains a hash as created by the `--hash` flag.
|
||||
|
||||
The `showPublic` field is a boolean denoting whether to show public cards as well when logged in.
|
||||
|
||||
### Cards
|
||||
|
||||
Cards reside under their respective user in the config file. A card can be defined like so:
|
||||
|
||||
```toml
|
||||
[[users.admin.card]]
|
||||
type = "status"
|
||||
title = "Google"
|
||||
icon = "ion:logo-google"
|
||||
desc = "Google search engine. Status card example."
|
||||
url = "https://www.google.com"
|
||||
```
|
||||
|
||||
The cards contain various fields, some required, some not:
|
||||
|
||||
- `type`: The type of the card. (required)
|
||||
- `title`: The title of the card to be used in the header. (required)
|
||||
- `icon`: The icon to be used in various places depending on the card. Icons can be anything from [iconify](https://iconify.design).
|
||||
- `desc`: The description of the card's content.
|
||||
- `url`: The URL of the card to be used for various purposes depending on the card.
|
||||
- `data`: A dictionary containing any extra data not listed above.
|
||||
|
||||
Card types can be added simply by adding a file to `resources/templates/cards`. The name of the file will be used as the name of the card type
|
||||
40
content/docs/simpledash/installation.md
Normal file
40
content/docs/simpledash/installation.md
Normal file
@@ -0,0 +1,40 @@
|
||||
---
|
||||
title: "Installation"
|
||||
draft: false
|
||||
description: "Installing simpledash"
|
||||
---
|
||||
|
||||
## Building from source
|
||||
|
||||
### Prerequisites
|
||||
|
||||
Simpledash utilizes an SQLite database for session storage. That means that sqlite3 must be installed along with its development files to build simpledash. It also means cross-compilation is not as simple as setting some environment variables.
|
||||
|
||||
On Debian, the required packages are: `sqlite3` and `sqlite3-dev`.
|
||||
|
||||
On Arch, the required package is `sqlite`.
|
||||
|
||||
---
|
||||
|
||||
### Building
|
||||
|
||||
To build simpledash, first, clone the git repository of simpledash. Then, use a terminal to enter the cloned directory and run:
|
||||
|
||||
```shell
|
||||
go build
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Building with Advmake
|
||||
|
||||
Simpledash can be built with another of my projects, `advmake`. Using this also builds the CSS framework used in this project, Bulma.
|
||||
|
||||
To build simpledash using advmake, simply run:
|
||||
```shell
|
||||
advmake
|
||||
```
|
||||
To run via advmake, run:
|
||||
```shell
|
||||
advmake run
|
||||
```
|
||||
Reference in New Issue
Block a user