{ "cells": [ { "cell_type": "code", "execution_count": null, "id": "f6b2c601-3b50-4514-9e5a-382400244bab", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%sh\n", "rm templates/template.test\n", "\n", "cat << EOF >> templates/template.test\n", "\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 = os.getenv(password)\n", "confirm_password = os.getenv(password)\n", "\n", "{% for item in items %}\n", "\n", "[{{ item.service }}]\n", "prefix = https://\n", "url = {{ item.url }}\n", "{% if item.icon_url %}\n", "icon = item.icon_url\n", "sidebar_icon = item.icon_url\n", "{% else %}\n", "icon = static/images/apps/{{ item.service }}.png\n", "sidebar_icon = static/images/apps/{{ item.service }}.png\n", "{% endif %}\n", "description = default\n", "open_in = iframe\n", "# data_sources = $0_http,$0_health,$0_ping,$0_rest\n", "tags = default\n", "# groups = admin_only\n", "\n", "{% endfor %}\n", "\n", "{# a comment #}\n", "EOF" ] }, { "cell_type": "code", "execution_count": null, "id": "5e0c08bd-aaff-4236-9b79-df5e2aa14a3e", "metadata": { "jupyter": { "source_hidden": true }, "tags": [] }, "outputs": [], "source": [ "%%sh\n", "cat << EOF >> template.ini\n", "\n", "[$0_curl]\n", "platform curl\n", "resource = http://$0.com\n", "value_template My IP: [{value.ip}}\n", "response_type = json\n", "\n", "[$0_rest]\n", "platform = rest\n", "resource = http://$0/api\n", "value_template = {{value}}\n", "method = post\n", "authentication = basic\n", "username = my_username\n", "password = my_password\n", "payload = {\"var1\": \"hi\", \"var2\": 1}\n", "headers {\"Content-Type\": \"application/json\"}\n", "verify = false\n", "\n", "[$0_ping]\n", "platform = ping\n", "resource = 192.168.1.1\n", "[$0_http]\n", "platform = http_status\n", "resource = https://your-website.com/api\n", "method = get\n", "authentication = basic\n", "username = my_username\n", "password = my_password\n", "headers = {\"Content-Type\": \"application/json\"}\n", "return_codes = 2XX, 3XX\n", "\n", "[$0_health]\n", "platform = healthchecks\n", "prefix = http://\n", "host = localhost\n", "port = 8080\n", "api_key = {{ Healthchecks project API Key }}\n", "project {{ Healthchecks project name }}\n", "verify = true\n", "value_template = { { value_template }}\n", "\n", "[$0]\n", "prefix = https://\n", "url = your-website.com\n", "icon = static/images/apps/$0.png\n", "sidebar_icon = static/images/apps/{{ name }}.png\n", "description = default\n", "open_in = iframe\n", "data_sources = $0_http,$0_health,$0_ping,$0_rest\n", "tags = default\n", "groups = admin_only\n", "\n", "EOF" ] }, { "cell_type": "code", "execution_count": 1, "id": "ad3a0cde-8e53-403d-bbb6-6fc95c392093", "metadata": { "scrolled": true, "tags": [] }, "outputs": [ { "ename": "KeyError", "evalue": "'data'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m/home/donaldrich/projects/secrets/jupyter-notebooks/templating/Dashmachine Config Template.ipynb Cell 3\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 11\u001b[0m response \u001b[39m=\u001b[39m requests\u001b[39m.\u001b[39mget(\n\u001b[1;32m 12\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mhttps://cms.donavanaldrich.com/items/containers\u001b[39m\u001b[39m\"\u001b[39m, headers\u001b[39m=\u001b[39mheaders\n\u001b[1;32m 13\u001b[0m )\n\u001b[1;32m 14\u001b[0m data \u001b[39m=\u001b[39m response\u001b[39m.\u001b[39mjson()\n\u001b[0;32m---> 16\u001b[0m items \u001b[39m=\u001b[39m data[\u001b[39m\"\u001b[39;49m\u001b[39mdata\u001b[39;49m\u001b[39m\"\u001b[39;49m]\n", "\u001b[0;31mKeyError\u001b[0m: 'data'" ] } ], "source": [ "import json\n", "import os\n", "import pprint\n", "\n", "import requests\n", "\n", "headers = {\n", " \"Authorization\": os.env(directus_token),\n", " \"Content-Type\": \"application/json\",\n", "}\n", "response = requests.get(\n", " \"https://cms.donavanaldrich.com/items/containers\", headers=headers\n", ")\n", "data = response.json()\n", "\n", "items = data[\"data\"]\n", "# name = (items[0]['id'])\n", "\n", "# t = Template(\"Jinja {{ name }}!\")\n", "# t.render(name=items[0]['id'])\n", "#" ] }, { "cell_type": "code", "execution_count": 41, "id": "3fc3ac9f-22bf-495b-9a23-214219d04543", "metadata": { "scrolled": true, "tags": [] }, "outputs": [], "source": [ "import json\n", "import re\n", "\n", "import requests\n", "\n", "my_headers = {\n", " \"Content-Type\": \"application/json\",\n", " \"Accept\": \"application/json\",\n", "}\n", "\n", "response = requests.get(\n", " \"http://traefik:8080/api/http/routers\",\n", " headers=my_headers,\n", ")\n", "\n", "initial = response.json()\n", "# pprint.pprint(initial)\n", "items = []\n", "\n", "for x in initial:\n", " rule = x[\"rule\"]\n", " service = x[\"service\"]\n", " find = re.findall(\"Host\\(`([^\\)]+)`\\)\", rule)\n", " if find:\n", " item = {\"service\": x[\"service\"], \"url\": find[0]}\n", " else:\n", " pass\n", " items.append(item)\n", "# print(items)\n" ] }, { "cell_type": "code", "execution_count": 42, "id": "147949bd-d0a7-4ebc-af12-b21d3d8fa0b3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[{'service': 'active_workflow', 'url': 'workflow.donavanaldrich.com'},\n", " {'service': 'alertmanager', 'url': 'alertmanager.donavanaldrich.com'},\n", " {'service': 'ansible', 'url': 'ansible.donavanaldrich.com'},\n", " {'service': 'apprise', 'url': 'notify.donavanaldrich.com'},\n", " {'service': 'authelia', 'url': 'authelia.donavanaldrich.com'},\n", " {'service': 'bitwarden2', 'url': 'password.donavanaldrich.com'},\n", " {'service': 'blackbox', 'url': 'blackbox.donavanaldrich.com'},\n", " {'service': 'browserless', 'url': 'browserless.donavanaldrich.com'},\n", " {'service': 'cachet', 'url': 'cachet.donavanaldrich.com'},\n", " {'service': 'caddy', 'url': 'caddy.donavanaldrich.com'},\n", " {'service': 'chronograf', 'url': 'chronograf.donavanaldrich.com'},\n", " {'service': 'cloudflare', 'url': 'cloudflare.donavanaldrich.com'},\n", " {'service': 'cron', 'url': 'cron.donavanaldrich.com'},\n", " {'service': 'cronicle', 'url': 'cronicle.donavanaldrich.com'},\n", " {'service': 'cyberchef', 'url': 'cyberchef.donavanaldrich.com'},\n", " {'service': 'dashmachine', 'url': 'menu.donavanaldrich.com'},\n", " {'service': 'directus', 'url': 'cms.donavanaldrich.com'},\n", " {'service': 'dozzle', 'url': 'dozzle.donavanaldrich.com'},\n", " {'service': 'elastichq', 'url': 'elastic.donavanaldrich.com'},\n", " {'service': 'gatus', 'url': 'gatus.donavanaldrich.com'},\n", " {'service': 'grafana', 'url': 'grafana.donavanaldrich.com'},\n", " {'service': 'hass-configurator', 'url': 'home-config.donavanaldrich.com'},\n", " {'service': 'healthcheck', 'url': 'health.donavanaldrich.com'},\n", " {'service': 'homeassistant', 'url': 'home.donavanaldrich.com'},\n", " {'service': 'homebridge', 'url': 'homebridge.donavanaldrich.com'},\n", " {'service': 'homer', 'url': 'homer.donavanaldrich.com'},\n", " {'service': 'huginn', 'url': 'huginn.donavanaldrich.com'},\n", " {'service': 'influx', 'url': 'influx.donavanaldrich.com'},\n", " {'service': 'jackett', 'url': 'jackett.donavanaldrich.com'},\n", " {'service': 'jupyter', 'url': 'jupyter.donavanaldrich.com'},\n", " {'service': 'kong', 'url': 'api.donavanaldrich.com'},\n", " {'service': 'kong', 'url': 'kong.donavanaldrich.com'},\n", " {'service': 'konga', 'url': 'konga.donavanaldrich.com'},\n", " {'service': 'lidarr', 'url': 'lidarr.donavanaldrich.com'},\n", " {'service': 'linkace', 'url': 'bookmarks.donavanaldrich.com'},\n", " {'service': 'mattermost', 'url': 'chat.donavanaldrich.com'},\n", " {'service': 'metabase', 'url': 'analytics.donavanaldrich.com'},\n", " {'service': 'minio', 'url': 'minio.donavanaldrich.com'},\n", " {'service': 'monica', 'url': 'monica.donavanaldrich.com'},\n", " {'service': 'netdata', 'url': 'netdata.donavanaldrich.com'},\n", " {'service': 'nextcloud', 'url': 'cloud.donavanaldrich.com'},\n", " {'service': 'nodejs-dev', 'url': 'dev.donavanaldrich.com'},\n", " {'service': 'nodejs', 'url': 'node.donavanaldrich.com'},\n", " {'service': 'nodered', 'url': 'nodered.donavanaldrich.com'},\n", " {'service': 'opsdroid', 'url': 'droid.donavanaldrich.com'},\n", " {'service': 'overseerr', 'url': 'media.donavanaldrich.com'},\n", " {'service': 'paperless', 'url': 'docs.donavanaldrich.com'},\n", " {'service': 'pdf-rendering-srv', 'url': 'pdf-render.donavanaldrich.com'},\n", " {'service': 'pgadmin', 'url': 'pgadmin.donavanaldrich.com'},\n", " {'service': 'pgweb', 'url': 'pgweb.donavanaldrich.com'},\n", " {'service': 'phpmyadmin', 'url': 'mysql.donavanaldrich.com'},\n", " {'service': 'pihole', 'url': 'pihole.donavanaldrich.com'},\n", " {'service': 'plex', 'url': 'plex.donavanaldrich.com'},\n", " {'service': 'portainer', 'url': 'portainer.donavanaldrich.com'},\n", " {'service': 'prometheus', 'url': 'prometheus.donavanaldrich.com'},\n", " {'service': 'promtail', 'url': 'promtail.donavanaldrich.com'},\n", " {'service': 'proxmox', 'url': 'proxmox.donavanaldrich.com'},\n", " {'service': 'pushgateway', 'url': 'pushgateway.donavanaldrich.com'},\n", " {'service': 'pyload', 'url': 'pyload.donavanaldrich.com'},\n", " {'service': 'radarr', 'url': 'radarr.donavanaldrich.com'},\n", " {'service': 'redis', 'url': 'redis.donavanaldrich.com'},\n", " {'service': 'request-baskets', 'url': 'requests.donavanaldrich.com'},\n", " {'service': 'requestrr', 'url': 'requestrr.donavanaldrich.com'},\n", " {'service': 'router', 'url': 'router.donavanaldrich.com'},\n", " {'service': 'script-server', 'url': 'script.donavanaldrich.com'},\n", " {'service': 'scrutiny', 'url': 'disk.donavanaldrich.com'},\n", " {'service': 'snmp', 'url': 'snmp.donavanaldrich.com'},\n", " {'service': 'sonarr', 'url': 'sonarr.donavanaldrich.com'},\n", " {'service': 'speedtest', 'url': 'speedtest.donavanaldrich.com'},\n", " {'service': 'splash', 'url': 'splash.donavanaldrich.com'},\n", " {'service': 'sshwifty', 'url': 'ssh.donavanaldrich.com'},\n", " {'service': 'swagger-editor', 'url': 'swagger.donavanaldrich.com'},\n", " {'service': 'api@internal', 'url': 'traefik.donavanaldrich.com'},\n", " {'service': 'transmission', 'url': 'transmission.donavanaldrich.com'},\n", " {'service': 'ubooquity-admin', 'url': 'books.donavanaldrich.com'},\n", " {'service': 'vault', 'url': 'vault.donavanaldrich.com'},\n", " {'service': 'vpn', 'url': 'vpn.donavanaldrich.com'},\n", " {'service': 'vscode', 'url': 'code.donavanaldrich.com'}]\n" ] } ], "source": [ "deduplicated_list = []\n", "deduped_keys = list()\n", "for y in items:\n", " key = y['url']\n", " if key not in deduped_keys:\n", " deduped_keys.append(key)\n", " deduplicated_list.append(y)\n", "\n", "pprint.pprint(deduplicated_list)" ] }, { "cell_type": "code", "execution_count": 44, "id": "fc0c7be4-acdb-4468-9428-c15f682b4c1e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "('\\n'\n", " '[Settings]\\n'\n", " 'theme = dark\\n'\n", " 'accent = purple\\n'\n", " 'background = None\\n'\n", " 'roles = admin,user,public_user\\n'\n", " 'home_access_groups = admin_only\\n'\n", " 'settings_access_groups = admin_only\\n'\n", " 'custom_app_title = DashMachine\\n'\n", " 'sidebar_default = open\\n'\n", " 'tags = {\"name\": \"foo\", \"icon\": \"home\", \"sort_pos\": \"2\"}\\n'\n", " '\\n'\n", " '[admin]\\n'\n", " 'role = admin\\n'\n", " 'password = 69\\n'\n", " 'confirm_password = ibanez69\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[active_workflow]\\n'\n", " 'prefix = https://\\n'\n", " 'url = workflow.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/active_workflow.png\\n'\n", " 'sidebar_icon = static/images/apps/active_workflow.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[alertmanager]\\n'\n", " 'prefix = https://\\n'\n", " 'url = alertmanager.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/alertmanager.png\\n'\n", " 'sidebar_icon = static/images/apps/alertmanager.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[ansible]\\n'\n", " 'prefix = https://\\n'\n", " 'url = ansible.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/ansible.png\\n'\n", " 'sidebar_icon = static/images/apps/ansible.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[apprise]\\n'\n", " 'prefix = https://\\n'\n", " 'url = notify.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/apprise.png\\n'\n", " 'sidebar_icon = static/images/apps/apprise.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[authelia]\\n'\n", " 'prefix = https://\\n'\n", " 'url = authelia.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/authelia.png\\n'\n", " 'sidebar_icon = static/images/apps/authelia.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[bitwarden2]\\n'\n", " 'prefix = https://\\n'\n", " 'url = password.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/bitwarden2.png\\n'\n", " 'sidebar_icon = static/images/apps/bitwarden2.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[blackbox]\\n'\n", " 'prefix = https://\\n'\n", " 'url = blackbox.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/blackbox.png\\n'\n", " 'sidebar_icon = static/images/apps/blackbox.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[browserless]\\n'\n", " 'prefix = https://\\n'\n", " 'url = browserless.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/browserless.png\\n'\n", " 'sidebar_icon = static/images/apps/browserless.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[cachet]\\n'\n", " 'prefix = https://\\n'\n", " 'url = cachet.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/cachet.png\\n'\n", " 'sidebar_icon = static/images/apps/cachet.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[caddy]\\n'\n", " 'prefix = https://\\n'\n", " 'url = caddy.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/caddy.png\\n'\n", " 'sidebar_icon = static/images/apps/caddy.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[chronograf]\\n'\n", " 'prefix = https://\\n'\n", " 'url = chronograf.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/chronograf.png\\n'\n", " 'sidebar_icon = static/images/apps/chronograf.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[cloudflare]\\n'\n", " 'prefix = https://\\n'\n", " 'url = cloudflare.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/cloudflare.png\\n'\n", " 'sidebar_icon = static/images/apps/cloudflare.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[cron]\\n'\n", " 'prefix = https://\\n'\n", " 'url = cron.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/cron.png\\n'\n", " 'sidebar_icon = static/images/apps/cron.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[cronicle]\\n'\n", " 'prefix = https://\\n'\n", " 'url = cronicle.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/cronicle.png\\n'\n", " 'sidebar_icon = static/images/apps/cronicle.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[cyberchef]\\n'\n", " 'prefix = https://\\n'\n", " 'url = cyberchef.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/cyberchef.png\\n'\n", " 'sidebar_icon = static/images/apps/cyberchef.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[dashmachine]\\n'\n", " 'prefix = https://\\n'\n", " 'url = menu.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/dashmachine.png\\n'\n", " 'sidebar_icon = static/images/apps/dashmachine.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[directus]\\n'\n", " 'prefix = https://\\n'\n", " 'url = cms.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/directus.png\\n'\n", " 'sidebar_icon = static/images/apps/directus.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[dozzle]\\n'\n", " 'prefix = https://\\n'\n", " 'url = dozzle.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/dozzle.png\\n'\n", " 'sidebar_icon = static/images/apps/dozzle.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[elastichq]\\n'\n", " 'prefix = https://\\n'\n", " 'url = elastic.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/elastichq.png\\n'\n", " 'sidebar_icon = static/images/apps/elastichq.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[gatus]\\n'\n", " 'prefix = https://\\n'\n", " 'url = gatus.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/gatus.png\\n'\n", " 'sidebar_icon = static/images/apps/gatus.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[grafana]\\n'\n", " 'prefix = https://\\n'\n", " 'url = grafana.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/grafana.png\\n'\n", " 'sidebar_icon = static/images/apps/grafana.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[hass-configurator]\\n'\n", " 'prefix = https://\\n'\n", " 'url = home-config.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/hass-configurator.png\\n'\n", " 'sidebar_icon = static/images/apps/hass-configurator.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[healthcheck]\\n'\n", " 'prefix = https://\\n'\n", " 'url = health.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/healthcheck.png\\n'\n", " 'sidebar_icon = static/images/apps/healthcheck.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[homeassistant]\\n'\n", " 'prefix = https://\\n'\n", " 'url = home.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/homeassistant.png\\n'\n", " 'sidebar_icon = static/images/apps/homeassistant.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[homebridge]\\n'\n", " 'prefix = https://\\n'\n", " 'url = homebridge.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/homebridge.png\\n'\n", " 'sidebar_icon = static/images/apps/homebridge.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[homer]\\n'\n", " 'prefix = https://\\n'\n", " 'url = homer.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/homer.png\\n'\n", " 'sidebar_icon = static/images/apps/homer.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[huginn]\\n'\n", " 'prefix = https://\\n'\n", " 'url = huginn.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/huginn.png\\n'\n", " 'sidebar_icon = static/images/apps/huginn.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[influx]\\n'\n", " 'prefix = https://\\n'\n", " 'url = influx.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/influx.png\\n'\n", " 'sidebar_icon = static/images/apps/influx.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[jackett]\\n'\n", " 'prefix = https://\\n'\n", " 'url = jackett.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/jackett.png\\n'\n", " 'sidebar_icon = static/images/apps/jackett.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[jupyter]\\n'\n", " 'prefix = https://\\n'\n", " 'url = jupyter.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/jupyter.png\\n'\n", " 'sidebar_icon = static/images/apps/jupyter.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[kong]\\n'\n", " 'prefix = https://\\n'\n", " 'url = api.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/kong.png\\n'\n", " 'sidebar_icon = static/images/apps/kong.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[kong]\\n'\n", " 'prefix = https://\\n'\n", " 'url = kong.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/kong.png\\n'\n", " 'sidebar_icon = static/images/apps/kong.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[konga]\\n'\n", " 'prefix = https://\\n'\n", " 'url = konga.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/konga.png\\n'\n", " 'sidebar_icon = static/images/apps/konga.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[lidarr]\\n'\n", " 'prefix = https://\\n'\n", " 'url = lidarr.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/lidarr.png\\n'\n", " 'sidebar_icon = static/images/apps/lidarr.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[linkace]\\n'\n", " 'prefix = https://\\n'\n", " 'url = bookmarks.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/linkace.png\\n'\n", " 'sidebar_icon = static/images/apps/linkace.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[mattermost]\\n'\n", " 'prefix = https://\\n'\n", " 'url = chat.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/mattermost.png\\n'\n", " 'sidebar_icon = static/images/apps/mattermost.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[metabase]\\n'\n", " 'prefix = https://\\n'\n", " 'url = analytics.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/metabase.png\\n'\n", " 'sidebar_icon = static/images/apps/metabase.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[minio]\\n'\n", " 'prefix = https://\\n'\n", " 'url = minio.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/minio.png\\n'\n", " 'sidebar_icon = static/images/apps/minio.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[monica]\\n'\n", " 'prefix = https://\\n'\n", " 'url = monica.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/monica.png\\n'\n", " 'sidebar_icon = static/images/apps/monica.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[netdata]\\n'\n", " 'prefix = https://\\n'\n", " 'url = netdata.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/netdata.png\\n'\n", " 'sidebar_icon = static/images/apps/netdata.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[nextcloud]\\n'\n", " 'prefix = https://\\n'\n", " 'url = cloud.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/nextcloud.png\\n'\n", " 'sidebar_icon = static/images/apps/nextcloud.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[nodejs-dev]\\n'\n", " 'prefix = https://\\n'\n", " 'url = dev.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/nodejs-dev.png\\n'\n", " 'sidebar_icon = static/images/apps/nodejs-dev.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[nodejs]\\n'\n", " 'prefix = https://\\n'\n", " 'url = node.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/nodejs.png\\n'\n", " 'sidebar_icon = static/images/apps/nodejs.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[nodered]\\n'\n", " 'prefix = https://\\n'\n", " 'url = nodered.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/nodered.png\\n'\n", " 'sidebar_icon = static/images/apps/nodered.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[opsdroid]\\n'\n", " 'prefix = https://\\n'\n", " 'url = droid.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/opsdroid.png\\n'\n", " 'sidebar_icon = static/images/apps/opsdroid.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[overseerr]\\n'\n", " 'prefix = https://\\n'\n", " 'url = media.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/overseerr.png\\n'\n", " 'sidebar_icon = static/images/apps/overseerr.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[paperless]\\n'\n", " 'prefix = https://\\n'\n", " 'url = docs.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/paperless.png\\n'\n", " 'sidebar_icon = static/images/apps/paperless.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[pdf-rendering-srv]\\n'\n", " 'prefix = https://\\n'\n", " 'url = pdf-render.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/pdf-rendering-srv.png\\n'\n", " 'sidebar_icon = static/images/apps/pdf-rendering-srv.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[pgadmin]\\n'\n", " 'prefix = https://\\n'\n", " 'url = pgadmin.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/pgadmin.png\\n'\n", " 'sidebar_icon = static/images/apps/pgadmin.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[pgweb]\\n'\n", " 'prefix = https://\\n'\n", " 'url = pgweb.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/pgweb.png\\n'\n", " 'sidebar_icon = static/images/apps/pgweb.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[phpmyadmin]\\n'\n", " 'prefix = https://\\n'\n", " 'url = mysql.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/phpmyadmin.png\\n'\n", " 'sidebar_icon = static/images/apps/phpmyadmin.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[pihole]\\n'\n", " 'prefix = https://\\n'\n", " 'url = pihole.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/pihole.png\\n'\n", " 'sidebar_icon = static/images/apps/pihole.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[plex]\\n'\n", " 'prefix = https://\\n'\n", " 'url = plex.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/plex.png\\n'\n", " 'sidebar_icon = static/images/apps/plex.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[portainer]\\n'\n", " 'prefix = https://\\n'\n", " 'url = portainer.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/portainer.png\\n'\n", " 'sidebar_icon = static/images/apps/portainer.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[prometheus]\\n'\n", " 'prefix = https://\\n'\n", " 'url = prometheus.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/prometheus.png\\n'\n", " 'sidebar_icon = static/images/apps/prometheus.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[promtail]\\n'\n", " 'prefix = https://\\n'\n", " 'url = promtail.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/promtail.png\\n'\n", " 'sidebar_icon = static/images/apps/promtail.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[proxmox]\\n'\n", " 'prefix = https://\\n'\n", " 'url = proxmox.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/proxmox.png\\n'\n", " 'sidebar_icon = static/images/apps/proxmox.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[pushgateway]\\n'\n", " 'prefix = https://\\n'\n", " 'url = pushgateway.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/pushgateway.png\\n'\n", " 'sidebar_icon = static/images/apps/pushgateway.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[pyload]\\n'\n", " 'prefix = https://\\n'\n", " 'url = pyload.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/pyload.png\\n'\n", " 'sidebar_icon = static/images/apps/pyload.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[radarr]\\n'\n", " 'prefix = https://\\n'\n", " 'url = radarr.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/radarr.png\\n'\n", " 'sidebar_icon = static/images/apps/radarr.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[redis]\\n'\n", " 'prefix = https://\\n'\n", " 'url = redis.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/redis.png\\n'\n", " 'sidebar_icon = static/images/apps/redis.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[request-baskets]\\n'\n", " 'prefix = https://\\n'\n", " 'url = requests.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/request-baskets.png\\n'\n", " 'sidebar_icon = static/images/apps/request-baskets.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[requestrr]\\n'\n", " 'prefix = https://\\n'\n", " 'url = requestrr.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/requestrr.png\\n'\n", " 'sidebar_icon = static/images/apps/requestrr.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[router]\\n'\n", " 'prefix = https://\\n'\n", " 'url = router.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/router.png\\n'\n", " 'sidebar_icon = static/images/apps/router.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[script-server]\\n'\n", " 'prefix = https://\\n'\n", " 'url = script.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/script-server.png\\n'\n", " 'sidebar_icon = static/images/apps/script-server.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[scrutiny]\\n'\n", " 'prefix = https://\\n'\n", " 'url = disk.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/scrutiny.png\\n'\n", " 'sidebar_icon = static/images/apps/scrutiny.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[snmp]\\n'\n", " 'prefix = https://\\n'\n", " 'url = snmp.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/snmp.png\\n'\n", " 'sidebar_icon = static/images/apps/snmp.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[sonarr]\\n'\n", " 'prefix = https://\\n'\n", " 'url = sonarr.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/sonarr.png\\n'\n", " 'sidebar_icon = static/images/apps/sonarr.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[speedtest]\\n'\n", " 'prefix = https://\\n'\n", " 'url = speedtest.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/speedtest.png\\n'\n", " 'sidebar_icon = static/images/apps/speedtest.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[splash]\\n'\n", " 'prefix = https://\\n'\n", " 'url = splash.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/splash.png\\n'\n", " 'sidebar_icon = static/images/apps/splash.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[sshwifty]\\n'\n", " 'prefix = https://\\n'\n", " 'url = ssh.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/sshwifty.png\\n'\n", " 'sidebar_icon = static/images/apps/sshwifty.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[swagger-editor]\\n'\n", " 'prefix = https://\\n'\n", " 'url = swagger.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/swagger-editor.png\\n'\n", " 'sidebar_icon = static/images/apps/swagger-editor.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[api@internal]\\n'\n", " 'prefix = https://\\n'\n", " 'url = traefik.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/api@internal.png\\n'\n", " 'sidebar_icon = static/images/apps/api@internal.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[transmission]\\n'\n", " 'prefix = https://\\n'\n", " 'url = transmission.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/transmission.png\\n'\n", " 'sidebar_icon = static/images/apps/transmission.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[ubooquity-admin]\\n'\n", " 'prefix = https://\\n'\n", " 'url = books.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/ubooquity-admin.png\\n'\n", " 'sidebar_icon = static/images/apps/ubooquity-admin.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[vault]\\n'\n", " 'prefix = https://\\n'\n", " 'url = vault.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/vault.png\\n'\n", " 'sidebar_icon = static/images/apps/vault.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[vpn]\\n'\n", " 'prefix = https://\\n'\n", " 'url = vpn.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/vpn.png\\n'\n", " 'sidebar_icon = static/images/apps/vpn.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n'\n", " '[vscode]\\n'\n", " 'prefix = https://\\n'\n", " 'url = code.donavanaldrich.com\\n'\n", " '\\n'\n", " 'icon = static/images/apps/vscode.png\\n'\n", " 'sidebar_icon = static/images/apps/vscode.png\\n'\n", " '\\n'\n", " 'description = default\\n'\n", " 'open_in = iframe\\n'\n", " '# data_sources = sh_http,sh_health,sh_ping,sh_rest\\n'\n", " 'tags = default\\n'\n", " '# groups = admin_only\\n'\n", " '\\n'\n", " '\\n'\n", " '\\n')\n" ] } ], "source": [ "from jinja2 import Environment, FileSystemLoader, select_autoescape\n", "\n", "items = deduplicated_list\n", "\n", "env = Environment(\n", " loader=FileSystemLoader([\"templates\"]),\n", " # autoescape=select_autoescape()\n", ")\n", "\n", "t = env.get_template(\"template.test\")\n", "pprint.pprint(t.render(item=items[0], items=items))\n", "#\n", "with open(\"test.ini\", \"w\") as external_file:\n", " # add_text = \"This text will be added to the file\"\n", " print(t.render(item=items[0], items=items), file=external_file)\n", " external_file.close()" ] }, { "cell_type": "code", "execution_count": null, "id": "6c539205-93cd-4b0a-9a0d-6c88696ee92a", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3.10.4 64-bit", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.4" }, "vscode": { "interpreter": { "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6" } } }, "nbformat": 4, "nbformat_minor": 5 }