You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 KiB
56 KiB
<html>
<head>
</head>
</html>
In [ ]:
%%sh
rm templates/template.test
cat << EOF >> templates/template.test
[Settings]
theme = dark
accent = purple
background = None
roles = admin,user,public_user
home_access_groups = admin_only
settings_access_groups = admin_only
custom_app_title = DashMachine
sidebar_default = open
tags = {"name": "foo", "icon": "home", "sort_pos": "2"}
[admin]
role = admin
password = os.getenv(password)
confirm_password = os.getenv(password)
{% for item in items %}
[{{ item.service }}]
prefix = https://
url = {{ item.url }}
{% if item.icon_url %}
icon = item.icon_url
sidebar_icon = item.icon_url
{% else %}
icon = static/images/apps/{{ item.service }}.png
sidebar_icon = static/images/apps/{{ item.service }}.png
{% endif %}
description = default
open_in = iframe
# data_sources = $0_http,$0_health,$0_ping,$0_rest
tags = default
# groups = admin_only
{% endfor %}
{# a comment #}
EOF
In [ ]:
%%sh
cat << EOF >> template.ini
[$0_curl]
platform curl
resource = http://$0.com
value_template My IP: [{value.ip}}
response_type = json
[$0_rest]
platform = rest
resource = http://$0/api
value_template = {{value}}
method = post
authentication = basic
username = my_username
password = my_password
payload = {"var1": "hi", "var2": 1}
headers {"Content-Type": "application/json"}
verify = false
[$0_ping]
platform = ping
resource = 192.168.1.1
[$0_http]
platform = http_status
resource = https://your-website.com/api
method = get
authentication = basic
username = my_username
password = my_password
headers = {"Content-Type": "application/json"}
return_codes = 2XX, 3XX
[$0_health]
platform = healthchecks
prefix = http://
host = localhost
port = 8080
api_key = {{ Healthchecks project API Key }}
project {{ Healthchecks project name }}
verify = true
value_template = { { value_template }}
[$0]
prefix = https://
url = your-website.com
icon = static/images/apps/$0.png
sidebar_icon = static/images/apps/{{ name }}.png
description = default
open_in = iframe
data_sources = $0_http,$0_health,$0_ping,$0_rest
tags = default
groups = admin_only
EOF
In [1]:
import json
import os
import pprint
import requests
headers = {
"Authorization": os.env(directus_token),
"Content-Type": "application/json",
}
response = requests.get(
"https://cms.donavanaldrich.com/items/containers", headers=headers
)
data = response.json()
items = data["data"]
# name = (items[0]['id'])
# t = Template("Jinja {{ name }}!")
# t.render(name=items[0]['id'])
#
--------------------------------------------------------------------------- KeyError Traceback (most recent call last) /home/donaldrich/projects/secrets/jupyter-notebooks/templating/Dashmachine Config Template.ipynb Cell 3 in <cell line: 16>() <a href='vscode-notebook-cell://ssh-remote%2Bwebserver/home/donaldrich/projects/secrets/jupyter-notebooks/templating/Dashmachine%20Config%20Template.ipynb#W2sdnNjb2RlLXJlbW90ZQ%3D%3D?line=10'>11</a> response = requests.get( <a href='vscode-notebook-cell://ssh-remote%2Bwebserver/home/donaldrich/projects/secrets/jupyter-notebooks/templating/Dashmachine%20Config%20Template.ipynb#W2sdnNjb2RlLXJlbW90ZQ%3D%3D?line=11'>12</a> "https://cms.donavanaldrich.com/items/containers", headers=headers <a href='vscode-notebook-cell://ssh-remote%2Bwebserver/home/donaldrich/projects/secrets/jupyter-notebooks/templating/Dashmachine%20Config%20Template.ipynb#W2sdnNjb2RlLXJlbW90ZQ%3D%3D?line=12'>13</a> ) <a href='vscode-notebook-cell://ssh-remote%2Bwebserver/home/donaldrich/projects/secrets/jupyter-notebooks/templating/Dashmachine%20Config%20Template.ipynb#W2sdnNjb2RlLXJlbW90ZQ%3D%3D?line=13'>14</a> data = response.json() ---> <a href='vscode-notebook-cell://ssh-remote%2Bwebserver/home/donaldrich/projects/secrets/jupyter-notebooks/templating/Dashmachine%20Config%20Template.ipynb#W2sdnNjb2RlLXJlbW90ZQ%3D%3D?line=15'>16</a> items = data["data"] KeyError: 'data'
In [41]:
import json
import re
import requests
my_headers = {
"Content-Type": "application/json",
"Accept": "application/json",
}
response = requests.get(
"http://traefik:8080/api/http/routers",
headers=my_headers,
)
initial = response.json()
# pprint.pprint(initial)
items = []
for x in initial:
rule = x["rule"]
service = x["service"]
find = re.findall("Host\(`([^\)]+)`\)", rule)
if find:
item = {"service": x["service"], "url": find[0]}
else:
pass
items.append(item)
# print(items)
In [42]:
deduplicated_list = []
deduped_keys = list()
for y in items:
key = y['url']
if key not in deduped_keys:
deduped_keys.append(key)
deduplicated_list.append(y)
pprint.pprint(deduplicated_list)
[{'service': 'active_workflow', 'url': 'workflow.donavanaldrich.com'},
{'service': 'alertmanager', 'url': 'alertmanager.donavanaldrich.com'},
{'service': 'ansible', 'url': 'ansible.donavanaldrich.com'},
{'service': 'apprise', 'url': 'notify.donavanaldrich.com'},
{'service': 'authelia', 'url': 'authelia.donavanaldrich.com'},
{'service': 'bitwarden2', 'url': 'password.donavanaldrich.com'},
{'service': 'blackbox', 'url': 'blackbox.donavanaldrich.com'},
{'service': 'browserless', 'url': 'browserless.donavanaldrich.com'},
{'service': 'cachet', 'url': 'cachet.donavanaldrich.com'},
{'service': 'caddy', 'url': 'caddy.donavanaldrich.com'},
{'service': 'chronograf', 'url': 'chronograf.donavanaldrich.com'},
{'service': 'cloudflare', 'url': 'cloudflare.donavanaldrich.com'},
{'service': 'cron', 'url': 'cron.donavanaldrich.com'},
{'service': 'cronicle', 'url': 'cronicle.donavanaldrich.com'},
{'service': 'cyberchef', 'url': 'cyberchef.donavanaldrich.com'},
{'service': 'dashmachine', 'url': 'menu.donavanaldrich.com'},
{'service': 'directus', 'url': 'cms.donavanaldrich.com'},
{'service': 'dozzle', 'url': 'dozzle.donavanaldrich.com'},
{'service': 'elastichq', 'url': 'elastic.donavanaldrich.com'},
{'service': 'gatus', 'url': 'gatus.donavanaldrich.com'},
{'service': 'grafana', 'url': 'grafana.donavanaldrich.com'},
{'service': 'hass-configurator', 'url': 'home-config.donavanaldrich.com'},
{'service': 'healthcheck', 'url': 'health.donavanaldrich.com'},
{'service': 'homeassistant', 'url': 'home.donavanaldrich.com'},
{'service': 'homebridge', 'url': 'homebridge.donavanaldrich.com'},
{'service': 'homer', 'url': 'homer.donavanaldrich.com'},
{'service': 'huginn', 'url': 'huginn.donavanaldrich.com'},
{'service': 'influx', 'url': 'influx.donavanaldrich.com'},
{'service': 'jackett', 'url': 'jackett.donavanaldrich.com'},
{'service': 'jupyter', 'url': 'jupyter.donavanaldrich.com'},
{'service': 'kong', 'url': 'api.donavanaldrich.com'},
{'service': 'kong', 'url': 'kong.donavanaldrich.com'},
{'service': 'konga', 'url': 'konga.donavanaldrich.com'},
{'service': 'lidarr', 'url': 'lidarr.donavanaldrich.com'},
{'service': 'linkace', 'url': 'bookmarks.donavanaldrich.com'},
{'service': 'mattermost', 'url': 'chat.donavanaldrich.com'},
{'service': 'metabase', 'url': 'analytics.donavanaldrich.com'},
{'service': 'minio', 'url': 'minio.donavanaldrich.com'},
{'service': 'monica', 'url': 'monica.donavanaldrich.com'},
{'service': 'netdata', 'url': 'netdata.donavanaldrich.com'},
{'service': 'nextcloud', 'url': 'cloud.donavanaldrich.com'},
{'service': 'nodejs-dev', 'url': 'dev.donavanaldrich.com'},
{'service': 'nodejs', 'url': 'node.donavanaldrich.com'},
{'service': 'nodered', 'url': 'nodered.donavanaldrich.com'},
{'service': 'opsdroid', 'url': 'droid.donavanaldrich.com'},
{'service': 'overseerr', 'url': 'media.donavanaldrich.com'},
{'service': 'paperless', 'url': 'docs.donavanaldrich.com'},
{'service': 'pdf-rendering-srv', 'url': 'pdf-render.donavanaldrich.com'},
{'service': 'pgadmin', 'url': 'pgadmin.donavanaldrich.com'},
{'service': 'pgweb', 'url': 'pgweb.donavanaldrich.com'},
{'service': 'phpmyadmin', 'url': 'mysql.donavanaldrich.com'},
{'service': 'pihole', 'url': 'pihole.donavanaldrich.com'},
{'service': 'plex', 'url': 'plex.donavanaldrich.com'},
{'service': 'portainer', 'url': 'portainer.donavanaldrich.com'},
{'service': 'prometheus', 'url': 'prometheus.donavanaldrich.com'},
{'service': 'promtail', 'url': 'promtail.donavanaldrich.com'},
{'service': 'proxmox', 'url': 'proxmox.donavanaldrich.com'},
{'service': 'pushgateway', 'url': 'pushgateway.donavanaldrich.com'},
{'service': 'pyload', 'url': 'pyload.donavanaldrich.com'},
{'service': 'radarr', 'url': 'radarr.donavanaldrich.com'},
{'service': 'redis', 'url': 'redis.donavanaldrich.com'},
{'service': 'request-baskets', 'url': 'requests.donavanaldrich.com'},
{'service': 'requestrr', 'url': 'requestrr.donavanaldrich.com'},
{'service': 'router', 'url': 'router.donavanaldrich.com'},
{'service': 'script-server', 'url': 'script.donavanaldrich.com'},
{'service': 'scrutiny', 'url': 'disk.donavanaldrich.com'},
{'service': 'snmp', 'url': 'snmp.donavanaldrich.com'},
{'service': 'sonarr', 'url': 'sonarr.donavanaldrich.com'},
{'service': 'speedtest', 'url': 'speedtest.donavanaldrich.com'},
{'service': 'splash', 'url': 'splash.donavanaldrich.com'},
{'service': 'sshwifty', 'url': 'ssh.donavanaldrich.com'},
{'service': 'swagger-editor', 'url': 'swagger.donavanaldrich.com'},
{'service': 'api@internal', 'url': 'traefik.donavanaldrich.com'},
{'service': 'transmission', 'url': 'transmission.donavanaldrich.com'},
{'service': 'ubooquity-admin', 'url': 'books.donavanaldrich.com'},
{'service': 'vault', 'url': 'vault.donavanaldrich.com'},
{'service': 'vpn', 'url': 'vpn.donavanaldrich.com'},
{'service': 'vscode', 'url': 'code.donavanaldrich.com'}]
In [44]:
from jinja2 import Environment, FileSystemLoader, select_autoescape
items = deduplicated_list
env = Environment(
loader=FileSystemLoader(["templates"]),
# autoescape=select_autoescape()
)
t = env.get_template("template.test")
pprint.pprint(t.render(item=items[0], items=items))
#
with open("test.ini", "w") as external_file:
# add_text = "This text will be added to the file"
print(t.render(item=items[0], items=items), file=external_file)
external_file.close()
('\n'
'[Settings]\n'
'theme = dark\n'
'accent = purple\n'
'background = None\n'
'roles = admin,user,public_user\n'
'home_access_groups = admin_only\n'
'settings_access_groups = admin_only\n'
'custom_app_title = DashMachine\n'
'sidebar_default = open\n'
'tags = {"name": "foo", "icon": "home", "sort_pos": "2"}\n'
'\n'
'[admin]\n'
'role = admin\n'
'password = 69\n'
'confirm_password = ibanez69\n'
'\n'
'\n'
'\n'
'[active_workflow]\n'
'prefix = https://\n'
'url = workflow.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/active_workflow.png\n'
'sidebar_icon = static/images/apps/active_workflow.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[alertmanager]\n'
'prefix = https://\n'
'url = alertmanager.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/alertmanager.png\n'
'sidebar_icon = static/images/apps/alertmanager.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[ansible]\n'
'prefix = https://\n'
'url = ansible.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/ansible.png\n'
'sidebar_icon = static/images/apps/ansible.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[apprise]\n'
'prefix = https://\n'
'url = notify.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/apprise.png\n'
'sidebar_icon = static/images/apps/apprise.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[authelia]\n'
'prefix = https://\n'
'url = authelia.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/authelia.png\n'
'sidebar_icon = static/images/apps/authelia.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[bitwarden2]\n'
'prefix = https://\n'
'url = password.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/bitwarden2.png\n'
'sidebar_icon = static/images/apps/bitwarden2.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[blackbox]\n'
'prefix = https://\n'
'url = blackbox.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/blackbox.png\n'
'sidebar_icon = static/images/apps/blackbox.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[browserless]\n'
'prefix = https://\n'
'url = browserless.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/browserless.png\n'
'sidebar_icon = static/images/apps/browserless.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[cachet]\n'
'prefix = https://\n'
'url = cachet.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/cachet.png\n'
'sidebar_icon = static/images/apps/cachet.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[caddy]\n'
'prefix = https://\n'
'url = caddy.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/caddy.png\n'
'sidebar_icon = static/images/apps/caddy.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[chronograf]\n'
'prefix = https://\n'
'url = chronograf.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/chronograf.png\n'
'sidebar_icon = static/images/apps/chronograf.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[cloudflare]\n'
'prefix = https://\n'
'url = cloudflare.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/cloudflare.png\n'
'sidebar_icon = static/images/apps/cloudflare.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[cron]\n'
'prefix = https://\n'
'url = cron.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/cron.png\n'
'sidebar_icon = static/images/apps/cron.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[cronicle]\n'
'prefix = https://\n'
'url = cronicle.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/cronicle.png\n'
'sidebar_icon = static/images/apps/cronicle.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[cyberchef]\n'
'prefix = https://\n'
'url = cyberchef.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/cyberchef.png\n'
'sidebar_icon = static/images/apps/cyberchef.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[dashmachine]\n'
'prefix = https://\n'
'url = menu.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/dashmachine.png\n'
'sidebar_icon = static/images/apps/dashmachine.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[directus]\n'
'prefix = https://\n'
'url = cms.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/directus.png\n'
'sidebar_icon = static/images/apps/directus.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[dozzle]\n'
'prefix = https://\n'
'url = dozzle.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/dozzle.png\n'
'sidebar_icon = static/images/apps/dozzle.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[elastichq]\n'
'prefix = https://\n'
'url = elastic.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/elastichq.png\n'
'sidebar_icon = static/images/apps/elastichq.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[gatus]\n'
'prefix = https://\n'
'url = gatus.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/gatus.png\n'
'sidebar_icon = static/images/apps/gatus.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[grafana]\n'
'prefix = https://\n'
'url = grafana.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/grafana.png\n'
'sidebar_icon = static/images/apps/grafana.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[hass-configurator]\n'
'prefix = https://\n'
'url = home-config.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/hass-configurator.png\n'
'sidebar_icon = static/images/apps/hass-configurator.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[healthcheck]\n'
'prefix = https://\n'
'url = health.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/healthcheck.png\n'
'sidebar_icon = static/images/apps/healthcheck.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[homeassistant]\n'
'prefix = https://\n'
'url = home.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/homeassistant.png\n'
'sidebar_icon = static/images/apps/homeassistant.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[homebridge]\n'
'prefix = https://\n'
'url = homebridge.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/homebridge.png\n'
'sidebar_icon = static/images/apps/homebridge.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[homer]\n'
'prefix = https://\n'
'url = homer.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/homer.png\n'
'sidebar_icon = static/images/apps/homer.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[huginn]\n'
'prefix = https://\n'
'url = huginn.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/huginn.png\n'
'sidebar_icon = static/images/apps/huginn.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[influx]\n'
'prefix = https://\n'
'url = influx.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/influx.png\n'
'sidebar_icon = static/images/apps/influx.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[jackett]\n'
'prefix = https://\n'
'url = jackett.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/jackett.png\n'
'sidebar_icon = static/images/apps/jackett.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[jupyter]\n'
'prefix = https://\n'
'url = jupyter.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/jupyter.png\n'
'sidebar_icon = static/images/apps/jupyter.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[kong]\n'
'prefix = https://\n'
'url = api.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/kong.png\n'
'sidebar_icon = static/images/apps/kong.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[kong]\n'
'prefix = https://\n'
'url = kong.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/kong.png\n'
'sidebar_icon = static/images/apps/kong.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[konga]\n'
'prefix = https://\n'
'url = konga.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/konga.png\n'
'sidebar_icon = static/images/apps/konga.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[lidarr]\n'
'prefix = https://\n'
'url = lidarr.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/lidarr.png\n'
'sidebar_icon = static/images/apps/lidarr.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[linkace]\n'
'prefix = https://\n'
'url = bookmarks.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/linkace.png\n'
'sidebar_icon = static/images/apps/linkace.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[mattermost]\n'
'prefix = https://\n'
'url = chat.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/mattermost.png\n'
'sidebar_icon = static/images/apps/mattermost.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[metabase]\n'
'prefix = https://\n'
'url = analytics.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/metabase.png\n'
'sidebar_icon = static/images/apps/metabase.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[minio]\n'
'prefix = https://\n'
'url = minio.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/minio.png\n'
'sidebar_icon = static/images/apps/minio.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[monica]\n'
'prefix = https://\n'
'url = monica.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/monica.png\n'
'sidebar_icon = static/images/apps/monica.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[netdata]\n'
'prefix = https://\n'
'url = netdata.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/netdata.png\n'
'sidebar_icon = static/images/apps/netdata.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[nextcloud]\n'
'prefix = https://\n'
'url = cloud.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/nextcloud.png\n'
'sidebar_icon = static/images/apps/nextcloud.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[nodejs-dev]\n'
'prefix = https://\n'
'url = dev.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/nodejs-dev.png\n'
'sidebar_icon = static/images/apps/nodejs-dev.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[nodejs]\n'
'prefix = https://\n'
'url = node.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/nodejs.png\n'
'sidebar_icon = static/images/apps/nodejs.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[nodered]\n'
'prefix = https://\n'
'url = nodered.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/nodered.png\n'
'sidebar_icon = static/images/apps/nodered.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[opsdroid]\n'
'prefix = https://\n'
'url = droid.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/opsdroid.png\n'
'sidebar_icon = static/images/apps/opsdroid.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[overseerr]\n'
'prefix = https://\n'
'url = media.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/overseerr.png\n'
'sidebar_icon = static/images/apps/overseerr.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[paperless]\n'
'prefix = https://\n'
'url = docs.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/paperless.png\n'
'sidebar_icon = static/images/apps/paperless.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[pdf-rendering-srv]\n'
'prefix = https://\n'
'url = pdf-render.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/pdf-rendering-srv.png\n'
'sidebar_icon = static/images/apps/pdf-rendering-srv.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[pgadmin]\n'
'prefix = https://\n'
'url = pgadmin.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/pgadmin.png\n'
'sidebar_icon = static/images/apps/pgadmin.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[pgweb]\n'
'prefix = https://\n'
'url = pgweb.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/pgweb.png\n'
'sidebar_icon = static/images/apps/pgweb.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[phpmyadmin]\n'
'prefix = https://\n'
'url = mysql.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/phpmyadmin.png\n'
'sidebar_icon = static/images/apps/phpmyadmin.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[pihole]\n'
'prefix = https://\n'
'url = pihole.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/pihole.png\n'
'sidebar_icon = static/images/apps/pihole.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[plex]\n'
'prefix = https://\n'
'url = plex.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/plex.png\n'
'sidebar_icon = static/images/apps/plex.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[portainer]\n'
'prefix = https://\n'
'url = portainer.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/portainer.png\n'
'sidebar_icon = static/images/apps/portainer.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[prometheus]\n'
'prefix = https://\n'
'url = prometheus.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/prometheus.png\n'
'sidebar_icon = static/images/apps/prometheus.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[promtail]\n'
'prefix = https://\n'
'url = promtail.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/promtail.png\n'
'sidebar_icon = static/images/apps/promtail.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[proxmox]\n'
'prefix = https://\n'
'url = proxmox.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/proxmox.png\n'
'sidebar_icon = static/images/apps/proxmox.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[pushgateway]\n'
'prefix = https://\n'
'url = pushgateway.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/pushgateway.png\n'
'sidebar_icon = static/images/apps/pushgateway.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[pyload]\n'
'prefix = https://\n'
'url = pyload.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/pyload.png\n'
'sidebar_icon = static/images/apps/pyload.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[radarr]\n'
'prefix = https://\n'
'url = radarr.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/radarr.png\n'
'sidebar_icon = static/images/apps/radarr.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[redis]\n'
'prefix = https://\n'
'url = redis.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/redis.png\n'
'sidebar_icon = static/images/apps/redis.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[request-baskets]\n'
'prefix = https://\n'
'url = requests.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/request-baskets.png\n'
'sidebar_icon = static/images/apps/request-baskets.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[requestrr]\n'
'prefix = https://\n'
'url = requestrr.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/requestrr.png\n'
'sidebar_icon = static/images/apps/requestrr.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[router]\n'
'prefix = https://\n'
'url = router.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/router.png\n'
'sidebar_icon = static/images/apps/router.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[script-server]\n'
'prefix = https://\n'
'url = script.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/script-server.png\n'
'sidebar_icon = static/images/apps/script-server.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[scrutiny]\n'
'prefix = https://\n'
'url = disk.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/scrutiny.png\n'
'sidebar_icon = static/images/apps/scrutiny.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[snmp]\n'
'prefix = https://\n'
'url = snmp.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/snmp.png\n'
'sidebar_icon = static/images/apps/snmp.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[sonarr]\n'
'prefix = https://\n'
'url = sonarr.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/sonarr.png\n'
'sidebar_icon = static/images/apps/sonarr.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[speedtest]\n'
'prefix = https://\n'
'url = speedtest.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/speedtest.png\n'
'sidebar_icon = static/images/apps/speedtest.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[splash]\n'
'prefix = https://\n'
'url = splash.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/splash.png\n'
'sidebar_icon = static/images/apps/splash.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[sshwifty]\n'
'prefix = https://\n'
'url = ssh.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/sshwifty.png\n'
'sidebar_icon = static/images/apps/sshwifty.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[swagger-editor]\n'
'prefix = https://\n'
'url = swagger.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/swagger-editor.png\n'
'sidebar_icon = static/images/apps/swagger-editor.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[api@internal]\n'
'prefix = https://\n'
'url = traefik.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/api@internal.png\n'
'sidebar_icon = static/images/apps/api@internal.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[transmission]\n'
'prefix = https://\n'
'url = transmission.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/transmission.png\n'
'sidebar_icon = static/images/apps/transmission.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[ubooquity-admin]\n'
'prefix = https://\n'
'url = books.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/ubooquity-admin.png\n'
'sidebar_icon = static/images/apps/ubooquity-admin.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[vault]\n'
'prefix = https://\n'
'url = vault.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/vault.png\n'
'sidebar_icon = static/images/apps/vault.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[vpn]\n'
'prefix = https://\n'
'url = vpn.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/vpn.png\n'
'sidebar_icon = static/images/apps/vpn.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n'
'[vscode]\n'
'prefix = https://\n'
'url = code.donavanaldrich.com\n'
'\n'
'icon = static/images/apps/vscode.png\n'
'sidebar_icon = static/images/apps/vscode.png\n'
'\n'
'description = default\n'
'open_in = iframe\n'
'# data_sources = sh_http,sh_health,sh_ping,sh_rest\n'
'tags = default\n'
'# groups = admin_only\n'
'\n'
'\n'
'\n')
In [ ]: