From 5879ea246eb0dd82440f0851c4a560e0342f19c6 Mon Sep 17 00:00:00 2001 From: gyurix Date: Thu, 11 Jun 2026 12:07:35 +0200 Subject: [PATCH] added openwebui application --- applications-tree.json | 7 + openwebui/domain-openwebui.json | 60 ++++++++ openwebui/firewall-openwebui-dns.json | 75 ++++++++++ openwebui/firewall-openwebui.json | 75 ++++++++++ openwebui/openwebui-secret.json | 16 ++ openwebui/service-openwebui.json | 208 ++++++++++++++++++++++++++ openwebui/template.json | 86 +++++++++++ 7 files changed, 527 insertions(+) create mode 100644 openwebui/domain-openwebui.json create mode 100644 openwebui/firewall-openwebui-dns.json create mode 100644 openwebui/firewall-openwebui.json create mode 100644 openwebui/openwebui-secret.json create mode 100644 openwebui/service-openwebui.json create mode 100644 openwebui/template.json diff --git a/applications-tree.json b/applications-tree.json index c748a27..5514a9a 100644 --- a/applications-tree.json +++ b/applications-tree.json @@ -90,6 +90,13 @@ "subtitle": "Interactive platform", "version": "latest", "icon": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBHZW5lcmF0b3I6IHZpc2lvbmNvcnRleCBWVHJhY2VyIDAuNi41IC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNjQwIiBoZWlnaHQ9IjY0MCI+CjxwYXRoIGQ9Ik0wIDAgQzAuNjEgLTAgMC42MSAtMCAzLjcgLTAuMDIgQzE2LjE3IDAgMjcuNTcgMS44MSAzOS4zOCA1LjgxIEM0MC40MSA2LjE2IDQxLjQ0IDYuNTEgNDIuNTEgNi44NyBDNTUuNzEgMTEuNSA2Ny4wNSAxNy45OSA3Ny41NiAyNy4yNSBDNzcuOTcgMjcuNTkgNzcuOTcgMjcuNTkgODAuMDQgMjkuMzMgQzk5Ljg1IDQ2LjM4IDExMy40MiA3MC45NiAxMTUuNTYgOTcuMjUgQzExNS45MiA5Ny4zOSAxMTUuOTIgOTcuMzkgMTE3LjcgOTguMDggQzEyMC42MiA5OS4yNyAxMjMuNDUgMTAwLjU4IDEyNi4zIDEwMS45NCBDMTQ1Ljg3IDExMS4xOSAxNjUuNyAxMTkuMzUgMTg2IDEyNi44OCBDMTkzLjMgMTI5LjU5IDIwMC41NCAxMzIuMzkgMjA3LjY5IDEzNS41IEMyMDguMDUgMTM1LjY1IDIwOC4wNSAxMzUuNjUgMjA5Ljg2IDEzNi40MiBDMjE0Ljc3IDEzOC42MiAyMTkuOTUgMTQxLjMgMjIyLjYyIDE0Ni4xOSBDMjIyLjUyIDE0OS42IDIyMS40NyAxNTEuNDEgMjE5LjU2IDE1NC4yNSBDMTk2LjggMTc0Ljg4IDE0NS4yMiAxNzMuMTYgMTE2LjQgMTc0LjY0IEM5Ni42IDE3NS42NiA5Ni42IDE3NS42NiA4OC41NiAxODEuMjUgQzg3LjAzIDE4NC4zMSA4Ny4zNiAxODYuODYgODcuNTYgMTkwLjI1IEM5MS41IDIwMS45MiA5OS42MiAyMTEuMDkgMTA3LjU2IDIyMC4yNSBDMTA4LjIgMjIxIDEwOC44NCAyMjEuNzQgMTA5LjUgMjIyLjUxIEMxMTEuMTcgMjI0LjQ0IDExMi44NyAyMjYuMzUgMTE0LjU2IDIyOC4yNSBDMTUxLjc5IDI3MC4wNCAxNTEuNzkgMjcwLjA0IDE1Ni4xMiAyOTIuMTIgQzE1Ni4yNyAyOTIuODIgMTU2LjQxIDI5My41MiAxNTYuNTYgMjk0LjI1IEMxNTcuMjIgMjk0LjU4IDE1Ny44OCAyOTQuOTEgMTU4LjU2IDI5NS4yNSBDMTU5LjM0IDI5Ny44MiAxNTkuOTggMzAwLjMyIDE2MC41NiAzMDIuOTQgQzE2MC42NSAzMDMuMzMgMTYwLjY1IDMwMy4zMyAxNjEuMDkgMzA1LjMgQzE2MS41OSAzMDcuNjEgMTYyLjA4IDMwOS45MyAxNjIuNTYgMzEyLjI1IEMxNjIuNzkgMzEzLjMzIDE2My4wMyAzMTQuNCAxNjMuMjcgMzE1LjUxIEMxNjkuNjcgMzUxLjMgMTYxLjA0IDM4Ny41NyAxNDAuNTYgNDE3LjI1IEMxMzguMDMgNDIwLjcxIDEzNS4zNyA0MjQuMDEgMTMyLjU2IDQyNy4yNSBDMTMxLjg4IDQyOC4wNCAxMzEuMTkgNDI4Ljg0IDEzMC40OSA0MjkuNjYgQzExNi4yOSA0NDUuNzYgMTAwLjcxIDQ1OC44IDgyLjU2IDQ3MC4yNSBDODEuOTEgNDcwLjY2IDgxLjI3IDQ3MS4wNyA4MC42IDQ3MS41IEMyOS4zIDUwMy43MyAtMzQuNjggNTEzLjkxIC05NC4zNiA1MDYuNjkgQy05OC4wOCA1MDYuMjQgLTEwMS42OSA1MDYuMTcgLTEwNS40NCA1MDYuMjUgQy0xMDUuNDQgNTA1LjU5IC0xMDUuNDQgNTA0LjkzIC0xMDUuNDQgNTA0LjI1IEMtMTA2LjA4IDUwNC4yMiAtMTA2LjczIDUwNC4yIC0xMDcuMzkgNTA0LjE3IEMtMTQ5LjIzIDUwMS42NSAtMTk0LjkgNDgyLjg5IC0yMjguNDQgNDU4LjI1IEMtMjI4Ljk4IDQ1Ny44NSAtMjI5LjUzIDQ1Ny40NSAtMjMwLjA5IDQ1Ny4wNSBDLTI0Ni4yNSA0NDUuMTYgLTI2MC45OSA0MzIuMDMgLTI3My40NCA0MTYuMjUgQy0yNzQuMjIgNDE1LjI5IC0yNzUgNDE0LjMyIC0yNzUuOCA0MTMuMzMgQy0yODYuNDEgMzk5Ljk4IC0yOTUuMzEgMzg1LjUzIC0zMDIuNTUgMzcwLjExIEMtMzAzLjM5IDM2OC4zNSAtMzA0LjI4IDM2Ni42MSAtMzA1LjE2IDM2NC44NyBDLTMxNy42NCAzMzkuODQgLTMyNC4wNCAzMTEuODggLTMyNy40NCAyODQuMjUgQy0zMjcuNTMgMjgzLjQ2IC0zMjcuNjMgMjgyLjY3IC0zMjcuNzMgMjgxLjg2IEMtMzI4LjQ1IDI3NS40NiAtMzI4LjU5IDI2OS4xMiAtMzI4LjU2IDI2Mi42OSBDLTMyOC41NyAyNjEuNzEgLTMyOC41NyAyNjAuNzMgLTMyOC41NyAyNTkuNzMgQy0zMjguNTUgMjQyLjUyIC0zMjguNTUgMjQyLjUyIC0zMjQuNDQgMjM3LjI1IEMtMzIxLjIxIDIzNS42NCAtMzE3Ljk0IDIzNS43OCAtMzE0LjQ0IDIzNi4yNSBDLTMxMS43MSAyMzcuMzIgLTMwOS4zNCAyMzguODEgLTMwNi44OCAyNDAuMzggQy0yODYuMjYgMjUyLjYyIC0yNjMuMSAyNTcuODQgLTIzOS40NCAyNjAuMjUgQy0yMzguOCAyNjAuMzIgLTIzOC44IDI2MC4zMiAtMjM1LjYgMjYwLjY1IEMtMjEzLjUzIDI2Mi40OCAtMTkxLjMyIDI2MC45NiAtMTY5LjI4IDI1OS40NSBDLTE2NS43OSAyNTkuMjIgLTE2Mi4zIDI1OC45OSAtMTU4LjgxIDI1OC43NiBDLTE1OC4xMyAyNTguNzEgLTE1Ny40NSAyNTguNjcgLTE1Ni43NCAyNTguNjIgQy0xNTAuNzggMjU4LjIzIC0xNDQuODEgMjU3Ljg1IC0xMzguODQgMjU3LjQ3IEMtMTM2Ljc5IDI1Ny4zNCAtMTM0Ljc0IDI1Ny4yIC0xMzIuNjkgMjU3LjA2IEMtMTEzLjY0IDI1NS43OSAtOTQuNTMgMjU2LjE0IC03NS40NSAyNTYuMTggQy03MC43IDI1Ni4xOSAtNjUuOTUgMjU2LjIgLTYxLjIxIDI1Ni4yIEMtNTEuOTUgMjU2LjIxIC00Mi42OSAyNTYuMjMgLTMzLjQ0IDI1Ni4yNSBDLTMzLjExIDI1NS41OSAtMzIuNzggMjU0LjkzIC0zMi40NCAyNTQuMjUgQy0zMC4zOCAyNTMuMTIgLTMwLjM4IDI1My4xMiAtMjguNDQgMjUyLjI1IEMtMjcuOTIgMjQ3LjM5IC0yNy44OSAyNDQuMzkgLTMwLjgxIDI0MC4zOCBDLTM3LjMxIDIzMi42IC00NC42OCAyMjUuOTIgLTUyLjU3IDIxOS42MSBDLTU2LjIzIDIxNi42IC01OS43IDIxMy40MiAtNjMuMTYgMjEwLjIgQy02NS45MSAyMDcuNjQgLTY4LjY5IDIwNS4xNiAtNzEuNTYgMjAyLjc1IEMtOTYuMyAxODEuMDcgLTExMS44OCAxNDkuODIgLTExNC4yNSAxMTcuMDYgQy0xMTUuNDQgOTQuNzIgLTExMC4yOCA3NC42NyAtOTkuNDQgNTUuMjUgQy05OC44OSA1NC4yNiAtOTguMzUgNTMuMjggLTk3Ljc5IDUyLjI2IEMtODMuMjUgMjcuNzYgLTU3LjIgMTAuNDcgLTMwLjA3IDMuMDQgQy0xOS45NSAwLjg0IC0xMC4zNiAtMC4wNyAwIDAgWiAiIGZpbGw9IiNGN0NDMjkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM2MS40Mzc1LDczLjc1KSIvPgo8cGF0aCBkPSJNMCAwIEMtMTUuNSAxLjY3IC0zMC40NSAyLjEzIC00NiAxIEMtNDYgMC42NyAtNDYgMC4zNCAtNDYgMCBDLTQxLjk3IC0wLjI5IC0zNy45MyAtMC41OCAtMzMuOSAtMC44NSBDLTMyLjUzIC0wLjk1IC0zMS4xNiAtMS4wNSAtMjkuOCAtMS4xNSBDLTQuNDYgLTIuOTcgLTQuNDYgLTIuOTcgMCAwIFogIiBmaWxsPSIjRjlEMjM3IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMDgsMzM1KSIvPgo8cGF0aCBkPSJNMCAwIEMtMC45OSAwLjMzIC0xLjk4IDAuNjYgLTMgMSBDLTMgMS42NiAtMyAyLjMyIC0zIDMgQy01LjYgMy4yMiAtOC4yMSAzLjQzIC0xMC44MSAzLjYyIEMtMTEuNTUgMy42OSAtMTIuMjkgMy43NSAtMTMuMDUgMy44MiBDLTE4LjY2IDQuMjMgLTE4LjY2IDQuMjMgLTIyIDIgQy0xOS40NiAxLjY2IC0xNi45MiAxLjMzIC0xNC4zOCAxIEMtMTMuNjYgMC45IC0xMi45NSAwLjgxIC0xMi4yMSAwLjcxIEMtOC4xMSAwLjE4IC00LjE1IC0wLjEgMCAwIFogIiBmaWxsPSIjRjNDNDIxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNTIsNTc2KSIvPgo8cGF0aCBkPSJNMCAwIEM4LjkxIDAuNjYgMTcuODIgMS4zMiAyNyAyIEMyNyAyLjMzIDI3IDIuNjYgMjcgMyBDMjMuOTIgMy4yIDIwLjgzIDMuMzggMTcuNzUgMy41NiBDMTYuODggMy42MiAxNiAzLjY3IDE1LjExIDMuNzMgQzE0LjI2IDMuNzggMTMuNDIgMy44MyAxMi41NSAzLjg4IEMxMS43NyAzLjkzIDExIDMuOTcgMTAuMiA0LjAyIEM3Ljk3IDQgNi4xMyAzLjYzIDQgMyBDNCAyLjM0IDQgMS42OCA0IDEgQzIuNjggMC42NyAxLjM2IDAuMzQgMCAwIFogIiBmaWxsPSIjRjhENDNFIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMDgsMzMzKSIvPgo8cGF0aCBkPSJNMCAwIEMwLjMgMC4wNiAwLjMgMC4wNiAxLjggMC4zNyBDOC4xOSAxLjY2IDE0LjU5IDIuODUgMjEgNCBDMjEgNC4zMyAyMSA0LjY2IDIxIDUgQzEzLjUgNi42MiA3LjMyIDQuOTggMCAzIEMwIDIuMDEgMCAxLjAyIDAgMCBaICIgZmlsbD0iI0Y5RDEzNSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODUsMzI4KSIvPgo8cGF0aCBkPSJNMCAwIEM0LjI5IDAuMTYgNC4yOSAwLjE2IDI2IDEgQzI2IDEuMzMgMjYgMS42NiAyNiAyIEMxNi45OSAyLjU5IDguMDMgMy4xNCAtMSAzIEMtMC42NyAyLjAxIC0wLjM0IDEuMDIgMCAwIFogIiBmaWxsPSIjRkFENjNFIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0NzIsMjQ1KSIvPgo8cGF0aCBkPSJNMCAwIEM0IC0wLjAyIDggLTAuMDQgMTIuMDEgLTAuMDUgQzEzLjM2IC0wLjA2IDE0LjcyIC0wLjA3IDE2LjA4IC0wLjA4IEMxOC4wNSAtMC4wOSAyMC4wMSAtMC4wOSAyMS45NyAtMC4xIEMyMy4xNSAtMC4xIDI0LjMzIC0wLjExIDI1LjU0IC0wLjExIEMyOS4wOSAwIDMyLjUgMC40MyAzNiAxIEMzNiAxLjMzIDM2IDEuNjYgMzYgMiBDMzQuNTEgMi4xNyAzNC41MSAyLjE3IDI3IDMgQzI3IDIuMzQgMjcgMS42OCAyNyAxIEMxOC4wOSAxIDkuMTggMSAwIDEgQzAgMC42NyAwIDAuMzQgMCAwIFogIiBmaWxsPSIjRkFEOTQ1IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNDcsNzQpIi8+CjxwYXRoIGQ9Ik0wIDAgQzIuMDEgMS42NyAyLjkxIDIuNiAzLjQ4IDUuMTkgQzMuNSA1LjU4IDMuNSA1LjU4IDMuNjIgNy41NiBDMy45MiAxMS44NCAzLjkyIDExLjg0IDUgMTQgQzQuMDYgMTYuMTIgNC4wNiAxNi4xMiAzIDE4IEMyLjQ5IDE1Ljk0IDEuOTkgMTMuODggMS41IDExLjgxIEMxLjIyIDEwLjY2IDAuOTQgOS41MiAwLjY2IDguMzMgQzAuMDkgNS40MyAtMC4xMyAyLjk0IDAgMCBaICIgZmlsbD0iI0Y4RDIzOCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQ5LDIwMCkiLz4KPHBhdGggZD0iTTAgMCBDNS4yOCAwLjMzIDEwLjU2IDAuNjYgMTYgMSBDMTYgMS4zMyAxNiAxLjY2IDE2IDIgQzEzLjIgMi4xNiAxMy4yIDIuMTYgLTEgMyBDLTAuNjcgMi4wMSAtMC4zNCAxLjAyIDAgMCBaICIgZmlsbD0iI0Y5RDIzQSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTAzLDI0MykiLz4KPHBhdGggZD0iTTAgMCBDMC4zMyAwLjk5IDAuNjYgMS45OCAxIDMgQy0xLjMxIDUuMzEgLTMuNjIgNy42MiAtNiAxMCBDLTYuOTkgOS42NyAtNy45OCA5LjM0IC05IDkgQy02LjAzIDYuMDMgLTMuMDYgMy4wNiAwIDAgWiAiIGZpbGw9IiNGN0M4MUMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQ4NSw1MDcpIi8+CjxwYXRoIGQ9Ik0wIDAgQzEuODEgMC41IDEuODEgMC41IDExIDMgQzcgNSA3IDUgMy44MSA0LjMxIEMyLjg4IDMuODggMS45NiAzLjQ1IDEgMyBDMC42NyAyLjAxIDAuMzQgMS4wMiAwIDAgWiAiIGZpbGw9IiNGQUQxMzIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcwLDMyMykiLz4KPHBhdGggZD0iTTAgMCBDMCAzLjQgLTAuNTIgNC4wNyAtMi41IDYuNjkgQy0yLjk2IDcuMzEgLTMuNDMgNy45MyAtMy45MSA4LjU3IEMtNC4yNyA5LjA0IC00LjYzIDkuNTIgLTUgMTAgQy01LjYxIDguMTcgLTUuNjEgOC4xNyAtNiA2IEMtNC4yMSAzLjM1IC0yLjg4IDEuNDQgMCAwIFogIiBmaWxsPSIjRkJDRjFGIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNzAsMTE5KSIvPgo8cGF0aCBkPSJNMCAwIEMwLjY2IDAuMzMgMS4zMiAwLjY2IDIgMSBDLTAuNDYgNS44IC0wLjQ2IDUuOCAtMy4xOSA2LjgxIEMtMy43OSA2Ljg3IC00LjM4IDYuOTQgLTUgNyBDLTUuMzMgNi4wMSAtNS42NiA1LjAyIC02IDQgQy00LjAyIDIuNjggLTIuMDQgMS4zNiAwIDAgWiAiIGZpbGw9IiNGOUQyMzYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMwMiw4OSkiLz4KPHBhdGggZD0iTTAgMCBDMS4yNiAwLjEyIDIuNTIgMC4yNSAzLjgxIDAuMzggQzQuMTcgMC40MSA0LjE3IDAuNDEgNS45NiAwLjU5IEM4IDEgOCAxIDExIDMgQzcuNyAzIDQuNCAzIDEgMyBDMC42NyAyLjAxIDAuMzQgMS4wMiAwIDAgWiAiIGZpbGw9IiNGNkM0MUMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIzMiw1NzIpIi8+CjxwYXRoIGQ9Ik0wIDAgQzEuNjMgMC40NSAzLjI1IDAuOTEgNC44OCAxLjM4IEM1Ljc4IDEuNjMgNi42OCAxLjg5IDcuNjIgMi4xNSBDMTAgMyAxMCAzIDEyIDUgQzcuMTIgNS4zNSA0LjIzIDQuNDIgMCAyIEMwIDEuMzQgMCAwLjY4IDAgMCBaICIgZmlsbD0iI0Y5RDMzOSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDAzLDgxKSIvPgo8cGF0aCBkPSJNMCAwIEMwLjMzIDAuNjYgMC42NiAxLjMyIDEgMiBDMC4zNiAyLjI5IC0wLjI4IDIuNTggLTAuOTQgMi44OCBDLTMgNCAtMyA0IC00IDYgQy02LjU2IDYuNjIgLTYuNTYgNi42MiAtOSA3IEMtOC4yNiA0LjYxIC03LjUzIDMuMjkgLTUuMzEgMi4wNyBDLTMuNTYgMS4zMyAtMS43OCAwLjY2IDAgMCBaICIgZmlsbD0iI0Y0QzUxRCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDIzLDU1MikiLz4KPHBhdGggZD0iTTAgMCBDMC4zMyAwIDAuNjYgMCAxIDAgQzEuMzMgMi42NCAxLjY2IDUuMjggMiA4IEMyLjk5IDguMzMgMy45OCA4LjY2IDUgOSBDNC4wMSA5LjY2IDMuMDIgMTAuMzIgMiAxMSBDMC40NCA5LjQ0IDAuNDQgOS40NCAtMSA3IEMtMC42OSAzLjI1IC0wLjY5IDMuMjUgMCAwIFogIiBmaWxsPSIjRjdEMDNCIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0NzUsMTYzKSIvPgo8cGF0aCBkPSJNMCAwIEMwLjQ5IDAuMzMgMC40OSAwLjMzIDMgMiBDMy4xOSA1LjYyIDMuMTkgNS42MiAzIDkgQzIuNjcgOS4xNyAyLjY3IDkuMTcgMSAxMCBDMC42NyA2LjcgMC4zNCAzLjQgMCAwIFogIiBmaWxsPSIjRjZEMDM1IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNiwzNjgpIi8+CjxwYXRoIGQ9Ik0wIDAgQzAuODkgMC4xMyAxLjc5IDAuMjYgMi43MSAwLjM5IEMzLjYxIDAuNTEgNC41MSAwLjYzIDUuNDQgMC43NSBDNi4xMiAwLjg2IDYuODEgMC45NiA3LjUyIDEuMDcgQzcuNTIgMS40IDcuNTIgMS43MyA3LjUyIDIuMDcgQzUuMzcgMi4yNCA1LjM3IDIuMjQgLTUuNDggMy4wNyBDLTIuNDggMC4wNyAtMi40OCAwLjA3IDAgMCBaICIgZmlsbD0iI0Y5RDQ0MSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTI1LjQ4MDQ2ODc1LDI0MC45MjU3ODEyNSkiLz4KPHBhdGggZD0iTTAgMCBDMy42NSAxLjI1IDQuNzggMS42NyA3IDUgQzYuNjcgNS42NiA2LjM0IDYuMzIgNiA3IEM1LjM0IDcgNC42OCA3IDQgNyBDMy4zNCA1Ljg0IDMuMzQgNS44NCAwIDAgWiAiIGZpbGw9IiNGOUQxMzQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQyNyw5MykiLz4KPHBhdGggZD0iTTAgMCBDMS4zMiAwLjY2IDIuNjQgMS4zMiA0IDIgQzIuNzEgMi43IDEuNDIgMy4zOCAwLjEyIDQuMDYgQy0wLjIzIDQuMjUgLTAuMjMgNC4yNSAtMi4wNSA1LjIyIEMtMi43IDUuNDggLTMuMzQgNS43NCAtNCA2IEMtNC42NiA1LjY3IC01LjMyIDUuMzQgLTYgNSBDLTUuMiA0LjczIC00LjM5IDQuNDYgLTMuNTYgNC4xOSBDLTIuNzIgMy44IC0xLjg3IDMuNCAtMSAzIEMtMC42NyAyLjAxIC0wLjM0IDEuMDIgMCAwIFogIiBmaWxsPSIjRjVDRTNBIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0MjUsNTUxKSIvPgo8cGF0aCBkPSJNMCAwIEMwLjY2IDAuNjYgMS4zMiAxLjMyIDIgMiBDMS45NyA0LjczIDEuNDQgNy4zIDEgMTAgQy0wLjg1IDYuODggLTEuMjkgNC42MiAtMSAxIEMtMC42NyAwLjY3IC0wLjM0IDAuMzQgMCAwIFogIiBmaWxsPSIjRjhEMDNDIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzOSwzNzgpIi8+CjxwYXRoIGQ9Ik0wIDAgQzAuMzMgMCAwLjY2IDAgMSAwIEMxLjMzIDMuOTYgMS42NiA3LjkyIDIgMTIgQy0xIDkgLTEgOSAtMS4wNyA2Ljc0IEMtMC45NSA1Ljk0IC0wLjgyIDUuMTQgLTAuNjkgNC4zMSBDLTAuNTcgMy41IC0wLjQ1IDIuNyAtMC4zMiAxLjg2IEMtMC4yMiAxLjI1IC0wLjExIDAuNjMgMCAwIFogIiBmaWxsPSIjRjhEMjNBIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MjMsMzg2KSIvPgo8cGF0aCBkPSJNMCAwIEMxLjY1IDAgMy4zIDAgNSAwIEM1IDAuMzMgNSAwLjY2IDUgMSBDMy4zNSAxIDEuNyAxIDAgMSBDMCAwLjY3IDAgMC4zNCAwIDAgWiAiIGZpbGw9IiNFREM2MkUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI3NCw1ODIpIi8+CjxwYXRoIGQ9Ik0wIDAgQzQgMSA0IDEgNCAxIFogIiBmaWxsPSIjRUNDNDJDIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMjMsNTgyKSIvPgo8cGF0aCBkPSJNMCAwIEMzIDEgMyAxIDMgMSBaICIgZmlsbD0iI0YyQ0IzOCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTU2LDIzOSkiLz4KPHBhdGggZD0iTTAgMCBDMiAxIDIgMSAyIDEgWiAiIGZpbGw9IiNFREM0MkMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMwOCw1ODMpIi8+CjxwYXRoIGQ9Ik0wIDAgQzIgMSAyIDEgMiAxIFogIiBmaWxsPSIjRUZDNTJFIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyOTIsNTgzKSIvPgo8cGF0aCBkPSJNMCAwIEMyIDEgMiAxIDIgMSBaICIgZmlsbD0iI0VEQzQyRCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzcxLDU3NSkiLz4KPHBhdGggZD0iTTAgMCBDMiAxIDIgMSAyIDEgWiAiIGZpbGw9IiNGNUQwM0IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUwMiwyNDcpIi8+CjxwYXRoIGQ9Ik0wIDAgQzIgMSAyIDEgMiAxIFogIiBmaWxsPSIjRUZDQzM5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1NDksMjAwKSIvPgo8cGF0aCBkPSJNMCAwIEMyIDEgMiAxIDIgMSBaICIgZmlsbD0iI0Y0RDAzQyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzg1LDc0KSIvPgo8L3N2Zz4K" + }, + { + "name": "openwebui", + "title": "Open WebUI", + "subtitle": "AI Chat Interface", + "version": "latest", + "icon": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIHZpZXdCb3g9IjAgMCA1MCA1MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1IDNDMTIuODUgMyAzIDEyLjg1IDMgMjVDMyAzNy4xNSAxMi44NSA0NyAyNSA0N0MzNy4xNSA0NyA0NyAzNy4xNSA0NyAyNUM0NyAxMi44NSAzNy4xNSAzIDI1IDNaTTI1IDYuM0MzNS4zNSA2LjMgNDMuNyAxNC42NSA0My43IDI1QzQzLjcgMzUuMzUgMzUuMzUgNDMuNyAyNSA0My43QzE0LjY1IDQzLjcgNi4zIDM1LjM1IDYuMyAyNUM2LjMgMTQuNjUgMTQuNjUgNi4zIDI1IDYuMzhaTTI1IDkuNUMxNi40IDkuNSA5LjUgMTYuNCA5LjUgMjVDOS41IDMzLjYgMTYuNCA0MC41IDI1IDQwLjVDMzMuNiA0MC41IDQwLjUgMzMuNiA0MC41IDI1QzQwLjUgMTYuNCAzMy42IDkuNSAyNSA5LjVaTTI1IDEyLjhDMzEuNzUgMTIuOCAzNy4yIDE4LjI1IDM3LjIgMjVDMzcuMiAzMS43NSAzMS43NSAzNy4yIDI1IDM3LjJDMTguMjUgMzcuMiAxMi44IDMxLjc1IDEyLjggMjVDMTIuOCAxOC4yNSAxOC4yNSAxMi44IDI1IDEyLjhaTTI1IDE2LjFDMTkuNTkgMTYuMSAxNS4yIDIwLjQ5IDE1LjIgMjVDMTUuMiAzMC40MSAxOS41OSAzNC44IDI1IDM0LjhDMzAuNDEgMzQuOCAzNC44IDMwLjQxIDM0LjggMjVDMzQuOCAyMC40OSAzMC40MSAxNi4xIDI1IDE2LjFaTTI1IDE5LjRDMjguMDkgMTkuNCAzMC42IDIxLjkxIDMwLjYgMjVDMzAuNiAyOC4wOSAyOC4wOSAzMC42IDI1IDMwLjZDMjEuOTEgMzAuNiAxOS40IDI4LjA5IDE5LjQgMjVDMTkuNCAyMS45MSAyMS45MSAxOS40IDI1IDE5LjRaTTI1IDIyLjdDMjMuNzMgMjIuNyAyMi43IDIzLjczIDIyLjcgMjVDMjIuNyAyNi4yNyAyMy43MyAyNy4zIDI1IDI3LjNDMjYuMjcgMjcuMyAyNy4zIDI2LjI3IDI3LjMgMjVDMjcuMyAyMy43MyAyNi4yNyAyMi43IDI1IDIyLjdaTTI1IDI2QzI0LjQ1IDI2IDI0IDI1LjU1IDI0IDI1QzI0IDI0LjQ1IDI0LjQ1IDI0IDI1IDI0QzI1LjU1IDI0IDI2IDI0LjQ1IDI2IDI1QzI2IDI1LjU1IDI1LjU1IDI2IDI1IDI2WiIgZmlsbD0iIzI5NzlGRSIvPgo8L3N2Zz4K" } ] } \ No newline at end of file diff --git a/openwebui/domain-openwebui.json b/openwebui/domain-openwebui.json new file mode 100644 index 0000000..d2e76f5 --- /dev/null +++ b/openwebui/domain-openwebui.json @@ -0,0 +1,60 @@ +{ + "main": { + "SERVICE_NAME": "openwebui", + "DOMAIN": "#DOMAIN" + }, + "containers": [ + { + "IMAGE": "safebox/domain-check", + "UPDATE": "true", + "MEMORY": "64M", + "NAME": "domain_checker", + "ROLES": "domain_checker", + "NETWORK": "host", + "SELECTOR": "", + "SCALE": "0", + "EXTRA": "--rm --privileged", + "PRE_START": [], + "DEPEND": [], + "POST_START": [], + "CMD": "", + "ENVS": [ + { + "PROXY": "smarthostloadbalancer" + }, + { + "TARGET": "openwebui-app" + }, + { + "PORT": "8080" + }, + { + "DOMAIN": "#DOMAIN" + }, + { + "SMARTHOST_PROXY_PATH": "/smarthost-domains" + }, + { + "OPERATION": "CREATE" + } + ], + "VOLUMES": [ + { + "SOURCE": "/etc/user/config/smarthost-domains", + "DEST": "/smarthost-domains", + "TYPE": "rw" + }, + { + "SOURCE": "/etc/system/data/dns/hosts.local", + "DEST": "/etc/dns/hosts.local", + "TYPE": "ro" + }, + { + "SOURCE": "/var/run/docker.sock", + "DEST": "/var/run/docker.sock", + "TYPE": "rw" + } + ] + } + ] +} \ No newline at end of file diff --git a/openwebui/firewall-openwebui-dns.json b/openwebui/firewall-openwebui-dns.json new file mode 100644 index 0000000..b59ff0b --- /dev/null +++ b/openwebui/firewall-openwebui-dns.json @@ -0,0 +1,75 @@ +{ + "main": { + "SERVICE_NAME": "firewalls", + "DOMAIN": "null" + }, + "containers": [ + { + "IMAGE": "safebox/firewall", + "NAME": "firewall", + "MEMORY": "64M", + "NETWORK": "host", + "SCALE": "0", + "VOLUMES": [ + { + "SOURCE": "/run/", + "DEST": "/run/", + "TYPE": "rw" + }, + { + "SOURCE": "/etc/user/config/services", + "DEST": "/services", + "TYPE": "ro" + }, + { + "SOURCE": "/etc/system/data/dns/hosts.local", + "DEST": "/etc/dns/hosts.local", + "TYPE": "ro" + }, + { + "SOURCE": "/var/run/docker.sock", + "DEST": "/var/run/docker.sock", + "TYPE": "rw" + } + ], + "PORTS": [], + "READYNESS": [ + { + "tcp": "" + }, + { + "HTTP": "" + }, + { + "EXEC": "/ready.sh" + } + ], + "ENVS": [ + { + "CHAIN": "DOCKER-USER" + }, + { + "SOURCE": "coredns" + }, + { + "TARGET": "openwebui-app" + }, + { + "TYPE": "udp" + }, + { + "TARGET_PORT": "53" + }, + { + "COMMENT": "dns for openwebui" + } + ], + "EXTRA": "--privileged --rm", + "DEPEND": "null", + "START_ON_BOOT": "false", + "CMD": "null", + "PRE_START": "null", + "POST_START": "null" + } + ] +} \ No newline at end of file diff --git a/openwebui/firewall-openwebui.json b/openwebui/firewall-openwebui.json new file mode 100644 index 0000000..dc596be --- /dev/null +++ b/openwebui/firewall-openwebui.json @@ -0,0 +1,75 @@ +{ + "main": { + "SERVICE_NAME": "firewalls", + "DOMAIN": "null" + }, + "containers": [ + { + "IMAGE": "safebox/firewall", + "NAME": "firewall", + "MEMORY": "64M", + "NETWORK": "host", + "SCALE": "0", + "VOLUMES": [ + { + "SOURCE": "/run/", + "DEST": "/run/", + "TYPE": "rw" + }, + { + "SOURCE": "/etc/user/config/services", + "DEST": "/services", + "TYPE": "ro" + }, + { + "SOURCE": "/etc/system/data/dns/hosts.local", + "DEST": "/etc/dns/hosts.local", + "TYPE": "ro" + }, + { + "SOURCE": "/var/run/docker.sock", + "DEST": "/var/run/docker.sock", + "TYPE": "rw" + } + ], + "PORTS": [], + "READYNESS": [ + { + "tcp": "" + }, + { + "HTTP": "" + }, + { + "EXEC": "/ready.sh" + } + ], + "ENVS": [ + { + "CHAIN": "DOCKER-USER" + }, + { + "SOURCE": "smarthostbackend" + }, + { + "TARGET": "openwebui-app" + }, + { + "TYPE": "tcp" + }, + { + "TARGET_PORT": "8080" + }, + { + "COMMENT": "proxy for openwebui" + } + ], + "EXTRA": "--privileged --rm", + "DEPEND": "null", + "START_ON_BOOT": "false", + "CMD": "null", + "PRE_START": "null", + "POST_START": "null" + } + ] +} \ No newline at end of file diff --git a/openwebui/openwebui-secret.json b/openwebui/openwebui-secret.json new file mode 100644 index 0000000..861c5de --- /dev/null +++ b/openwebui/openwebui-secret.json @@ -0,0 +1,16 @@ +{ + "openwebuipostgres": { + "POSTGRES_DB": "#POSTGRES_DB", + "POSTGRES_USER": "#POSTGRES_USER", + "POSTGRES_PASSWORD": "#POSTGRES_PASSWORD", + "POSTGRES_ROOT_PASSWORD": "#POSTGRES_ROOT_PASSWORD" + }, + "openwebuiapp": { + "WEBUI_ADMIN_NAME": "#WEBUI_ADMIN_NAME", + "WEBUI_ADMIN_PASSWORD": "#WEBUI_ADMIN_PASSWORD", + "WEBUI_ADMIN_EMAIL": "#WEBUI_ADMIN_EMAIL", + "WEBUI_SECRET_KEY": "#WEBUI_SECRET_KEY", + "OPENAI_API_KEY": "#OPENAI_API_KEY", + "DATABASE_URL": "postgres://#POSTGRES_USER:#POSTGRES_PASSWORD@openwebuipostgres-db:5432/#POSTGRES_DB" + } +} \ No newline at end of file diff --git a/openwebui/service-openwebui.json b/openwebui/service-openwebui.json new file mode 100644 index 0000000..d8ac04c --- /dev/null +++ b/openwebui/service-openwebui.json @@ -0,0 +1,208 @@ +{ + "main": { + "SERVICE_NAME": "openwebui", + "DOMAIN": "#DOMAIN" + }, + "containers": [ + { + "IMAGE": "alpine:latest", + "UPDATE": "true", + "NAME": "openwebui-init", + "NETWORK": "host", + "MEMORY": "64M", + "VOLUMES": [ + { + "SOURCE": "USER_DATA", + "DEST": "/etc/user/data", + "TYPE": "rw" + } + ], + "EXTRA": "--rm", + "DEPEND": "null", + "START_ON_BOOT": "false", + "ENTRYPOINT": "sh -c", + "CMD": "mkdir -p /etc/user/data/openwebui/data && mkdir -p /etc/user/data/openwebui/db && mkdir -p /etc/user/data/openwebui/pipelines && mkdir -p /etc/user/data/openwebui/qdrant", + "PRE_START": "null", + "POST_START": "null" + }, + { + "IMAGE": "postgres:16-alpine", + "UPDATE": "true", + "NAME": "openwebuipostgres-db", + "MEMORY": "256M", + "NETWORK": "openwebui-net", + "SELECTOR": "openwebuipostgres-db", + "VOLUMES": [ + { + "SOURCE": "/etc/user/data/openwebui/db", + "DEST": "/var/lib/postgresql/data", + "TYPE": "rw" + } + ], + "PORTS": [ + { + "SOURCE": "null", + "DEST": "5432", + "TYPE": "tcp" + } + ], + "ENV_FILES": [ + "/etc/user/secret/openwebui/openwebui.json" + ], + "EXTRA": "--restart always", + "DEPEND": "null", + "START_ON_BOOT": "false", + "CMD": "null", + "PRE_START": "null", + "POST_START": "null" + }, + { + "IMAGE": "qdrant/qdrant:latest", + "UPDATE": "true", + "NAME": "openwebui-qdrant", + "MEMORY": "256M", + "NETWORK": "openwebui-net", + "SELECTOR": "openwebui-qdrant", + "VOLUMES": [ + { + "SOURCE": "/etc/user/data/openwebui/qdrant", + "DEST": "/qdrant/storage", + "TYPE": "rw" + } + ], + "PORTS": [ + { + "SOURCE": "null", + "DEST": "6333", + "TYPE": "tcp" + }, + { + "SOURCE": "null", + "DEST": "6334", + "TYPE": "tcp" + } + ], + "EXTRA": "--restart always", + "DEPEND": "null", + "START_ON_BOOT": "false", + "CMD": "null", + "PRE_START": "null", + "POST_START": "null" + }, + { + "IMAGE": "ghcr.io/open-webui/pipelines:main", + "UPDATE": "true", + "NAME": "openwebui-pipelines", + "MEMORY": "256M", + "NETWORK": "openwebui-net", + "SELECTOR": "openwebui-pipelines", + "VOLUMES": [ + { + "SOURCE": "/etc/user/data/openwebui/pipelines", + "DEST": "/app/pipelines", + "TYPE": "rw" + } + ], + "PORTS": [ + { + "SOURCE": "null", + "DEST": "9099", + "TYPE": "tcp" + } + ], + "ENVS": [ + { + "OPENAI_API_BASE_URL": "#OPENAI_API_BASE_URL" + }, + { + "VECTOR_DB": "qdrant" + }, + { + "QDRANT_HOST": "openwebui-qdrant" + }, + { + "QDRANT_PORT": "6333" + }, + { + "QDRANT_URI": "http://openwebui-qdrant:6333" + } + ], + "EXTRA": "--restart always", + "DEPEND": [], + "START_ON_BOOT": "false", + "CMD": "null", + "PRE_START": "null", + "POST_START": "null" + }, + { + "IMAGE": "ghcr.io/open-webui/open-webui:main", + "UPDATE": "true", + "NAME": "openwebui", + "MEMORY": "512M", + "NETWORK": "openwebui-net", + "SELECTOR": "openwebui-app", + "VOLUMES": [ + { + "SOURCE": "/etc/user/data/openwebui/data", + "DEST": "/app/data", + "TYPE": "rw" + } + ], + "PORTS": [ + { + "SOURCE": "null", + "DEST": "8080", + "TYPE": "tcp" + } + ], + "ENVS": [ + { + "WEBUI_ADMIN_NAME": "#WEBUI_ADMIN_NAME" + }, + { + "WEBUI_ADMIN_PASSWORD": "#WEBUI_ADMIN_PASSWORD" + }, + { + "WEBUI_ADMIN_EMAIL": "#WEBUI_ADMIN_EMAIL" + }, + { + "OPENAI_API_BASE_URL": "http://192.168.2.2:8080/v1" + }, + { + "OPENAI_API_KEY": "#OPENAI_API_KEY" + }, + { + "VECTOR_DB": "qdrant" + }, + { + "QDRANT_HOST": "openwebui-qdrant" + }, + { + "QDRANT_PORT": "6333" + }, + { + "QDRANT_URI": "http://openwebui-qdrant:6333" + }, + { + "ENABLE_RAG_PIPELINE": "True" + }, + { + "RAG_PIPELINE_URL": "http://openwebui-pipelines:9099/v1" + } + ], + "ENV_FILES": [ + "/etc/user/secret/openwebui/openwebui.json" + ], + "EXTRA": "--restart always", + "DEPEND": [], + "START_ON_BOOT": "false", + "CMD": "null", + "PRE_START": "null", + "POST_START": [ + "firewall-openwebui", + "domain-openwebui", + "firewall-openwebui-dns" + ] + } + ] +} \ No newline at end of file diff --git a/openwebui/template.json b/openwebui/template.json new file mode 100644 index 0000000..2b99609 --- /dev/null +++ b/openwebui/template.json @@ -0,0 +1,86 @@ +{ + "name": "openwebui", + "title": "Open WebUI", + "subtitle": "AI Chat Interface", + "description": "Open WebUI is a user-friendly WebUI for LLMs (formerly Ollama WebUI). It supports various LLM runners including OpenAI compatible APIs, with features like RAG, multi-modal support, and a powerful pipeline system.", + "icon": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIHZpZXdCb3g9IjAgMCA1MCA1MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1IDNDMTIuODUgMyAzIDEyLjg1IDMgMjVDMyAzNy4xNSAxMi44NSA0NyAyNSA0N0MzNy4xNSA0NyA0NyAzNy4xNSA0NyAyNUM0NyAxMi44NSAzNy4xNSAzIDI1IDNaTTI1IDYuM0MzNS4zNSA2LjMgNDMuNyAxNC42NSA0My43IDI1QzQzLjcgMzUuMzUgMzUuMzUgNDMuNyAyNSA0My43QzE0LjY1IDQzLjcgNi4zIDM1LjM1IDYuMyAyNUM2LjMgMTQuNjUgMTQuNjUgNi4zIDI1IDYuMzhaTTI1IDkuNUMxNi40IDkuNSA5LjUgMTYuNCA5LjUgMjVDOS41IDMzLjYgMTYuNCA0MC41IDI1IDQwLjVDMzMuNiA0MC41IDQwLjUgMzMuNiA0MC41IDI1QzQwLjUgMTYuNCAzMy42IDkuNSAyNSA5LjVaTTI1IDEyLjhDMzEuNzUgMTIuOCAzNy4yIDE4LjI1IDM3LjIgMjVDMzcuMiAzMS43NSAzMS43NSAzNy4yIDI1IDM3LjJDMTguMjUgMzcuMiAxMi44IDMxLjc1IDEyLjggMjVDMTIuOCAxOC4yNSAxOC4yNSAxMi44IDI1IDEyLjhaTTI1IDE2LjFDMTkuNTkgMTYuMSAxNS4yIDIwLjQ5IDE1LjIgMjVDMTUuMiAzMC40MSAxOS41OSAzNC44IDI1IDM0LjhDMzAuNDEgMzQuOCAzNC44IDMwLjQxIDM0LjggMjVDMzQuOCAyMC40OSAzMC40MSAxNi4xIDI1IDE2LjFaTTI1IDE5LjRDMjguMDkgMTkuNCAzMC42IDIxLjkxIDMwLjYgMjVDMzAuNiAyOC4wOSAyOC4wOSAzMC42IDI1IDMwLjZDMjEuOTEgMzAuNiAxOS40IDI4LjA5IDE5LjQgMjVDMTkuNCAyMS45MSAyMS45MSAxOS40IDI1IDE5LjRaTTI1IDIyLjdDMjMuNzMgMjIuNyAyMi43IDIzLjczIDIyLjcgMjVDMjIuNyAyNi4yNyAyMy43MyAyNy4zIDI1IDI3LjNDMjYuMjcgMjcuMyAyNy4zIDI2LjI3IDI3LjMgMjVDMjcuMyAyMy43MyAyNi4yNyAyMi43IDI1IDIyLjdaTTI1IDI2QzI0LjQ1IDI2IDI0IDI1LjU1IDI0IDI1QzI0IDI0LjQ1IDI0LjQ1IDI0IDI1IDI0QzI1LjU1IDI0IDI2IDI0LjQ1IDI2IDI1QzI2IDI1LjU1IDI1LjU1IDI2IDI1IDI2WiIgZmlsbD0iIzI5NzlGRSIvPgo8L3N2Zz4K", + "fields": [ + { + "description": "Domain", + "key": "DOMAIN", + "value": "", + "required": "true" + }, + { + "description": "Admin username", + "key": "WEBUI_ADMIN_NAME", + "value": "", + "info": "The initial admin username for Open WebUI.", + "required": "true" + }, + { + "description": "Admin password", + "key": "WEBUI_ADMIN_PASSWORD", + "value": "", + "info": "The initial admin password for Open WebUI.", + "required": "true", + "type": "password" + }, + { + "description": "Admin email", + "key": "WEBUI_ADMIN_EMAIL", + "value": "", + "info": "The initial admin email for Open WebUI.", + "required": "true" + }, + { + "description": "OpenAI compatible API endpoint", + "key": "OPENAI_API_BASE_URL", + "value": "", + "info": "Optional API url for OpenAI compatible API endpoint.", + "advanced": "true" + }, + { + "description": "WebUI secret key", + "key": "WEBUI_SECRET_KEY", + "value": "", + "required": "true", + "generated": "openssl|hex|32" + }, + { + "description": "OpenAI API key", + "key": "OPENAI_API_KEY", + "value": "", + "info": "Optional API key for OpenAI compatible API endpoint.", + "advanced": "true" + }, + { + "description": "Postgres database name", + "key": "POSTGRES_DB", + "value": "", + "required": "true", + "generated": "time|md5|8" + }, + { + "description": "Postgres username", + "key": "POSTGRES_USER", + "value": "", + "required": "true", + "generated": "time|md5|8" + }, + { + "description": "Postgres password for user", + "key": "POSTGRES_PASSWORD", + "value": "", + "required": "true", + "generated": "random|md5|12" + }, + { + "description": "Postgres root user password", + "key": "POSTGRES_ROOT_PASSWORD", + "value": "", + "required": "true", + "generated": "random|sha256|20" + } + ] +} \ No newline at end of file