diff --git a/applications-tree.json b/applications-tree.json index f3dd8e8..9a5747b 100644 --- a/applications-tree.json +++ b/applications-tree.json @@ -71,6 +71,12 @@ "subtitle": "Software Development", "version": "latest", "icon": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA3OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQ4LjIzNjUgNDIuMTY2MUwzMi41NTA0IDM0LjYyNTlDMzEuMDA1MyAzMy44ODQzIDMwLjMzNzggMzIuMDA1NCAzMS4wOTE4IDMwLjQ0NzlMMzguNjMyIDE0Ljc2MTlDMzkuMzczNyAxMy4yMTY3IDQxLjI1MjUgMTIuNTQ5MyA0Mi44MSAxMy4zMDMzQzQ0LjkzNjEgMTQuMzI5MiA0Ni4xNTk4IDE0LjkxMDIgNDYuMTU5OCAxNC45MTAyTDQ2LjE0NzUgMS40MTIwMkw0OC4yMTE3IDEuMzk5NjZMNDguMjI0MSAxNS44NzQ0QzQ4LjIyNDEgMTUuODc0NCA1NS4zMTkzIDE4Ljg2NTcgNTguNDk2MSAyMC44MzExQzU4Ljk1MzQgMjEuMTE1NCA1OS43NTY5IDIxLjY3MTcgNjAuMDkwNiAyMi42MTExQzYwLjM1MDIgMjMuMzY1MSA2MC4zMzc5IDI0LjIzMDQgNTkuOTY3IDI0Ljk5NjhMNTIuNDI2OCA0MC42ODI4QzUxLjY2MDUgNDIuMjUyNyA0OS43ODE2IDQyLjkyMDIgNDguMjM2NSA0Mi4xNjYxWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTc2LjI3MTEgMC44MzEyNzZDNzUuNzY0MyAwLjMyNDQ3NyA3NS4wODQ1IDAuMzM2ODM4IDc1LjA4NDUgMC4zMzY4MzhDNzUuMDg0NSAwLjMzNjgzOCA2MC41OTc0IDEuMTUyNjYgNTMuMDk0MyAxLjMyNTcyQzUxLjQ1MDMgMS4zNjI4IDQ5LjgxODYgMS4zOTk4OCA0OC4xOTkzIDEuNDEyMjRDNDguMTk5MyA2LjI0NTM4IDQ4LjE5OTMgMTEuMDc4NSA0OC4xOTkzIDE1Ljg5OTNDNDcuNTE5NSAxNS41Nzc5IDQ2LjgyNzMgMTUuMjQ0MiA0Ni4xNDc0IDE0LjkyMjhDNDYuMTQ3NCAxMC40MjM0IDQ2LjEzNTEgMS40MjQ2IDQ2LjEzNTEgMS40MjQ2QzQyLjU1MDQgMS40NzQwNSAzNS4xMDkxIDEuMTUyNjYgMzUuMTA5MSAxLjE1MjY2QzM1LjEwOTEgMS4xNTI2NiAxNy42MzA3IDAuMjc1MDMyIDE1LjcyNzEgMC4xMDE5NzhDMTQuNTE1NyAwLjAyNzgxMjIgMTIuOTQ1OSAtMC4xNTc2MDIgMTAuOTA2MyAwLjI4NzM5M0M5LjgzMDg5IDAuNTA5ODkgNi43NjUzNyAxLjIwMjExIDQuMjU2MDkgMy42MTI1Qy0xLjMwNjM1IDguNTY5MjQgMC4xMTUxNjUgMTYuNDU1NSAwLjI4ODIxOCAxNy42NDIyQzAuNDk4MzU1IDE5LjA4ODQgMS4xNDExMyAyMy4xMDU3IDQuMjA2NjUgMjYuNjAzOUM5Ljg2Nzk3IDMzLjUzODQgMjIuMDU1OSAzMy4zNzc3IDIyLjA1NTkgMzMuMzc3N0MyMi4wNTU5IDMzLjM3NzcgMjMuNTUxNiAzNi45NSAyNS44MzgzIDQwLjIzODFDMjguOTI4NiA0NC4zMjk1IDMyLjEwNTQgNDcuNTE4NyAzNS4xOTU2IDQ3LjkwMTlDNDIuOTgzIDQ3LjkwMTkgNTguNTQ1NSA0Ny44ODk1IDU4LjU0NTUgNDcuODg5NUM1OC41NDU1IDQ3Ljg4OTUgNjAuMDI4OCA0Ny45MDE5IDYyLjA0MzYgNDYuNjE2M0M2My43NzQyIDQ1LjU2NTYgNjUuMzE5MyA0My43MjM4IDY1LjMxOTMgNDMuNzIzOEM2NS4zMTkzIDQzLjcyMzggNjYuOTEzOSA0Mi4wMTggNjkuMTM4OCAzOC4xMjQzQzY5LjgxODcgMzYuOTI1MyA3MC4zODczIDM1Ljc2MzQgNzAuODgxNyAzNC42NjMzQzcwLjg4MTcgMzQuNjYzMyA3Ny43MDUgMjAuMTg4NiA3Ny43MDUgNi4wOTcwNUM3Ny41NjkgMS44MzI1MSA3Ni41MTgzIDEuMDc4NSA3Ni4yNzExIDAuODMxMjc2Wk0xNC44MjQ3IDI2LjA2QzExLjYyMzIgMjUuMDA5MyAxMC4yNjM1IDIzLjc0ODUgMTAuMjYzNSAyMy43NDg1QzEwLjI2MzUgMjMuNzQ4NSA3LjkwMjU4IDIyLjA5MjEgNi43MTU5MiAxOC44Mjg5QzQuNjc2MzYgMTMuMzY1MyA2LjU0Mjg3IDEwLjAyNzggNi41NDI4NyAxMC4wMjc4QzYuNTQyODcgMTAuMDI3OCA3LjU4MTE5IDcuMjQ2NjIgMTEuMzAxOCA2LjMxOTU1QzEzLjAwNzcgNS44NjIxOSAxNS4xMzM3IDUuOTM2MzYgMTUuMTMzNyA1LjkzNjM2QzE1LjEzMzcgNS45MzYzNiAxNi4wMTE0IDEzLjI3ODggMTcuMDc0NCAxNy41ODA0QzE3Ljk2NDQgMjEuMTg5OCAyMC4xMzk5IDI3LjE4NDkgMjAuMTM5OSAyNy4xODQ5QzIwLjEzOTkgMjcuMTg0OSAxNi45MTM3IDI2LjgwMTcgMTQuODI0NyAyNi4wNlpNNTEuOTQ0NyAzOS4zNjA0QzUxLjk0NDcgMzkuMzYwNCA1MS4xOTA3IDQxLjE1MjggNDkuNTIyIDQxLjI2NEM0OC44MDUgNDEuMzEzNSA0OC4yNDg4IDQxLjExNTcgNDguMjQ4OCA0MS4xMTU3QzQ4LjI0ODggNDEuMTE1NyA0OC4yMTE3IDQxLjEwMzMgNDcuNTkzNyA0MC44NTYxTDMzLjYzODEgMzQuMDU3NkMzMy42MzgxIDM0LjA1NzYgMzIuMjkwOCAzMy4zNTMgMzIuMDU1OSAzMi4xMjkzQzMxLjc4NCAzMS4xMjggMzIuMzg5NyAyOS44OTE5IDMyLjM4OTcgMjkuODkxOUwzOS4xMDE3IDE2LjA2QzM5LjEwMTcgMTYuMDYgMzkuNjk1IDE0Ljg2MSA0MC42MDk3IDE0LjQ1MzFDNDAuNjgzOSAxNC40MTYgNDAuODk0IDE0LjMyOTUgNDEuMTY2IDE0LjI2NzdDNDIuMTY3MiAxNC4wMDgxIDQzLjM5MDkgMTQuNjEzOCA0My4zOTA5IDE0LjYxMzhMNTcuMDc0NSAyMS4yNTE2QzU3LjA3NDUgMjEuMjUxNiA1OC42MzIgMjEuOTU2MiA1OC45NjU3IDIzLjI1NDFDNTkuMjAwNiAyNC4xNjg4IDU4LjkwMzkgMjQuOTg0NiA1OC43NDMyIDI1LjM4MDJDNTcuOTY0NSAyNy4yODM4IDUxLjk0NDcgMzkuMzYwNCA1MS45NDQ3IDM5LjM2MDRaIiBmaWxsPSIjNjA5OTI2Ii8+CjxwYXRoIGQ9Ik0zOS42OTUgMjkuMjk4OEMzOC42ODE0IDI5LjMxMTIgMzcuNzkxNCAzMC4wMTU3IDM3LjU1NjUgMzEuMDA0NkMzNy4zMjE3IDMxLjk5MzUgMzcuODAzNyAzMy4wMTk1IDM4LjY4MTQgMzMuNDc2OEMzOS42MzMyIDMzLjk3MTMgNDAuODQ0NSAzMy42OTkzIDQxLjQ4NzMgMzIuODA5M0M0Mi4xMTc3IDMxLjkzMTcgNDIuMDE4OCAzMC43MjAzIDQxLjI2NDggMjkuOTUzOUw0NC4yMzE0IDIzLjg4NDdDNDQuNDE2OSAyMy44OTcxIDQ0LjY4ODggMjMuOTA5NCA0NC45OTc4IDIzLjgyMjlDNDUuNTA0NiAyMy43MTE2IDQ1Ljg3NTQgMjMuMzc3OSA0NS44NzU0IDIzLjM3NzlDNDYuMzk0NiAyMy42MDA0IDQ2LjkzODUgMjMuODQ3NiA0Ny41MDcxIDI0LjEzMTlDNDguMTAwNCAyNC40Mjg2IDQ4LjY1NjcgMjQuNzM3NiA0OS4xNjM1IDI1LjAzNDNDNDkuMjc0NyAyNS4wOTYxIDQ5LjM4NiAyNS4xNzAyIDQ5LjUwOTYgMjUuMjY5MUM0OS43MDczIDI1LjQyOTggNDkuOTI5OCAyNS42NTIzIDUwLjA5MDUgMjUuOTQ5QzUwLjMyNTQgMjYuNjI4OCA0OS44NTU3IDI3Ljc5MDggNDkuODU1NyAyNy43OTA4QzQ5LjU3MTQgMjguNzMwMiA0Ny41ODEzIDMyLjgwOTMgNDcuNTgxMyAzMi44MDkzQzQ2LjU4IDMyLjc4NDYgNDUuNjkgMzMuNDI3NCA0NS4zOTM0IDM0LjM1NDRDNDUuMDcyIDM1LjM1NTcgNDUuNTI5MyAzNi40OTI5IDQ2LjQ5MzUgMzYuOTg3M0M0Ny40NTc2IDM3LjQ4MTggNDguNjQ0MyAzNy4xOTc1IDQ5LjI3NDcgMzYuMzMyMkM0OS44OTI4IDM1LjQ5MTcgNDkuODQzMyAzNC4zMTc0IDQ5LjEzODcgMzMuNTM4NkM0OS4zNzM2IDMzLjA4MTMgNDkuNTk2MSAzMi42MjM5IDQ5LjgzMSAzMi4xNDE4QzUwLjQ0OSAzMC44NTYzIDUxLjQ5OTcgMjguMzg0MSA1MS40OTk3IDI4LjM4NDFDNTEuNjEwOSAyOC4xNzQgNTIuMjA0MyAyNy4xMTA5IDUxLjgzMzQgMjUuNzUxMkM1MS41MjQ0IDI0LjM0MjEgNTAuMjc2IDIzLjY4NjkgNTAuMjc2IDIzLjY4NjlDNDguNzY3OSAyMi43MTA0IDQ2LjY2NjYgMjEuODA4MSA0Ni42NjY2IDIxLjgwODFDNDYuNjY2NiAyMS44MDgxIDQ2LjY2NjUgMjEuMzAxMyA0Ni41MzA2IDIwLjkzMDRDNDYuMzk0NiAyMC41NDcyIDQ2LjE4NDUgMjAuMyA0Ni4wNDg1IDIwLjE1MTdDNDYuNjI5NSAxOC45NTI3IDQ3LjIxMDQgMTcuNzY2IDQ3Ljc5MTQgMTYuNTY3QzQ3LjI4NDYgMTYuMzE5OCA0Ni43OTAyIDE2LjA3MjYgNDYuMjgzNCAxNS44MTNDNDUuNjkgMTcuMDI0NCA0NS4wODQzIDE4LjI0ODEgNDQuNDkxIDE5LjQ1OTVDNDMuNjYyOCAxOS40NDcxIDQyLjg5NjUgMTkuODkyMSA0Mi41MDA5IDIwLjYyMTRDNDIuMDgwNiAyMS40MDAxIDQyLjE2NzIgMjIuMzY0MyA0Mi43MzU4IDIzLjA2ODlDNDEuNzIyMiAyNS4xNDU1IDQwLjcwODYgMjcuMjIyMiAzOS42OTUgMjkuMjk4OFoiIGZpbGw9IiM2MDk5MjYiLz4KPC9zdmc+Cg==" + }, + { + "name": "Pocketid", + "subtitle": "Identity management", + "version": "latest", + "icon": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIHZpZXdCb3g9IjAgMCA1MCA1MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQzIDBIN0MzLjEzNDAxIDAgMCAzLjEzNDAxIDAgN1Y0M0MwIDQ2Ljg2NiAzLjEzNDAxIDUwIDcgNTBINDNDNDYuODY2IDUwIDUwIDQ2Ljg2NiA1MCA0M1Y3QzUwIDMuMTM0MDEgNDYuODY2IDAgNDMgMFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0yNC40ODc4IDdDMzEuOTM4NCA3IDM4IDEzLjEzNjMgMzggMjAuNjc4N0MzOCAyMy42NDI2IDM3LjA3OSAyNi40NjMyIDM1LjMzNjIgMjguODM0MkMzMy42Mjc4IDMxLjE1OTUgMzEuMjkwMSAzMi44NDg2IDI4LjU3NTEgMzMuNzE5OEwyNy44MjQ3IDMzLjk2MUwyNi4wMzY0IDI1LjAzMTVMMjYuNTMxMSAyNC43ODkyQzI4LjE0NTkgMjMuOTk5IDI5LjE4OTYgMjIuMzE1NiAyOS4xODk2IDIwLjUwMTJDMjkuMTg5NiAxNy44NzY0IDI3LjA4MDUgMTUuNzQwOSAyNC40ODgxIDE1Ljc0MDlDMjEuODk1OCAxNS43NDA5IDE5Ljc4NiAxNy44NzY0IDE5Ljc4NiAyMC41MDEyQzE5Ljc4NiAyMi4zMTU2IDIwLjgzIDIzLjk5OSAyMi40NDQ4IDI0Ljc4OTJMMjIuOTMwMiAyNS4wMjcyTDIwLjA0OTUgNDNIMTJWN0gyNC40ODgxSDI0LjQ4NzhaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K" } ] } \ No newline at end of file diff --git a/pocketid/domain-pocketid.json b/pocketid/domain-pocketid.json new file mode 100644 index 0000000..fcd707e --- /dev/null +++ b/pocketid/domain-pocketid.json @@ -0,0 +1,60 @@ +{ + "main": { + "SERVICE_NAME": "pocketid", + "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": "pocketid-app" + }, + { + "PORT": "3000" + }, + { + "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/pocketid/firewall-pocketid-dns.json b/pocketid/firewall-pocketid-dns.json new file mode 100644 index 0000000..ad5f35a --- /dev/null +++ b/pocketid/firewall-pocketid-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": "pocketid-app" + }, + { + "TYPE": "udp" + }, + { + "TARGET_PORT": "53" + }, + { + "COMMENT": "dns for pocketid-app" + } + ], + "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/pocketid/firewall-pocketid-smtp.json b/pocketid/firewall-pocketid-smtp.json new file mode 100644 index 0000000..ab41bf3 --- /dev/null +++ b/pocketid/firewall-pocketid-smtp.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": "pocketid-app" + }, + { + "TARGET": "smtp" + }, + { + "TYPE": "tcp" + }, + { + "TARGET_PORT": "25" + }, + { + "COMMENT": "smtp for pocketid-app" + } + ], + "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/pocketid/firewall-pocketid.json b/pocketid/firewall-pocketid.json new file mode 100644 index 0000000..a7e6a08 --- /dev/null +++ b/pocketid/firewall-pocketid.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": "pocketid-app" + }, + { + "TYPE": "tcp" + }, + { + "TARGET_PORT": "3000" + }, + { + "COMMENT": "proxy for pocketid-app" + } + ], + "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/pocketid/pocketid-secret.json b/pocketid/pocketid-secret.json new file mode 100644 index 0000000..fb5d976 --- /dev/null +++ b/pocketid/pocketid-secret.json @@ -0,0 +1,16 @@ +{ + "pocketidpostgres": { + "POSTGRES_DB": "#POSTGRES_DB", + "POSTGRES_USER": "#POSTGRES_USER", + "POSTGRES_PASSWORD": "#POSTGRES_PASSWORD", + "POSTGRES_ROOT_PASSWORD": "#POSTGRES_ROOT_PASSWORD" + }, + "pocketidapp": { + "PUBLIC_APP_URL": "https://#DOMAIN", + "TRUST_PROXY": "true", + "PUID": "1000", + "PGID": "1000", + "DB_PROVIDER": "postgres", + "POSTGRES_CONNECTION_STRING": "postgresql://#POSTGRES_USER:#POSTGRES_PASSWORD@pocketidpostgres-db:5432/#POSTGRES_DB" + } +} \ No newline at end of file diff --git a/pocketid/service-pocketid.json b/pocketid/service-pocketid.json new file mode 100644 index 0000000..fb785e9 --- /dev/null +++ b/pocketid/service-pocketid.json @@ -0,0 +1,99 @@ +{ + "main": { + "SERVICE_NAME": "pocketid", + "DOMAIN": "#DOMAIN" + }, + "containers": [ + { + "IMAGE": "alpine:latest", + "UPDATE": "true", + "NAME": "pocketid-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 /mkdir -p /etc/user/data/pocketid/db", + "PRE_START": "null", + "POST_START": "null" + }, + { + "IMAGE": "postgres:16-alpine", + "NAME": "pocketidpostgres-db", + "UPDATE": "true", + "ROLES": "postgres-db patroni", + "MEMORY": "256M", + "NETWORK": "pocketid-net", + "SELECTOR": "pocketidpostgres-db", + "VOLUMES": [ + { + "SOURCE": "/etc/user/data/pocketid/postgresql", + "DEST": "/var/lib/postgresql/data", + "TYPE": "rw" + } + ], + "PORTS": [ + { + "SOURCE": "null", + "DEST": "5432", + "TYPE": "tcp" + } + ], + "ENV_FILES": [ + "/etc/user/secret/pocketid/pocketid.json" + ], + "ENVS": [ + { + "POSTGRES_INITDB_ARGS": "--encoding=UTF8 --locale=C" + } + ], + "EXTRA": "--label logging=promtail_user --label logging_jobname=containers --restart unless-stopped", + "DEPEND": "null", + "START_ON_BOOT": "false", + "CMD": "null", + "PRE_START": [], + "POST_START": [] + }, + { + "IMAGE": "stonith404/pocket-id", + "UPDATE": "true", + "NAME": "pocketidapp", + "DNS": [ + "coredns" + ], + "MEMORY": "256M", + "SELECTOR": "pocketid-app", + "NETWORK": "pocketid-net", + "VOLUMES": [], + "PORTS": [ + { + "SOURCE": "null", + "DEST": "3000", + "TYPE": "tcp" + } + ], + "EXTRA": "--label logging=promtail_user --label logging_jobname=containers --restart unless-stopped", + "ENV_FILES": [ + "/etc/user/secret/pocketid/pocketid.json" + ], + "DEPEND": [], + "START_ON_BOOT": "true", + "CMD": "null", + "PRE_START": "null", + "POST_START": [ + "firewall-pocketid", + "firewall-pocketid-dns", + "firewall-pocketid-smtp", + "domain-pocketid" + ] + } + ] +} \ No newline at end of file diff --git a/pocketid/template.json b/pocketid/template.json new file mode 100644 index 0000000..e24666f --- /dev/null +++ b/pocketid/template.json @@ -0,0 +1,43 @@ +{ + "name": "Pocketid", + "title": "pocketid", + "subtitle": "Identity management", + "icon": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIHZpZXdCb3g9IjAgMCA1MCA1MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQzIDBIN0MzLjEzNDAxIDAgMCAzLjEzNDAxIDAgN1Y0M0MwIDQ2Ljg2NiAzLjEzNDAxIDUwIDcgNTBINDNDNDYuODY2IDUwIDUwIDQ2Ljg2NiA1MCA0M1Y3QzUwIDMuMTM0MDEgNDYuODY2IDAgNDMgMFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0yNC40ODc4IDdDMzEuOTM4NCA3IDM4IDEzLjEzNjMgMzggMjAuNjc4N0MzOCAyMy42NDI2IDM3LjA3OSAyNi40NjMyIDM1LjMzNjIgMjguODM0MkMzMy42Mjc4IDMxLjE1OTUgMzEuMjkwMSAzMi44NDg2IDI4LjU3NTEgMzMuNzE5OEwyNy44MjQ3IDMzLjk2MUwyNi4wMzY0IDI1LjAzMTVMMjYuNTMxMSAyNC43ODkyQzI4LjE0NTkgMjMuOTk5IDI5LjE4OTYgMjIuMzE1NiAyOS4xODk2IDIwLjUwMTJDMjkuMTg5NiAxNy44NzY0IDI3LjA4MDUgMTUuNzQwOSAyNC40ODgxIDE1Ljc0MDlDMjEuODk1OCAxNS43NDA5IDE5Ljc4NiAxNy44NzY0IDE5Ljc4NiAyMC41MDEyQzE5Ljc4NiAyMi4zMTU2IDIwLjgzIDIzLjk5OSAyMi40NDQ4IDI0Ljc4OTJMMjIuOTMwMiAyNS4wMjcyTDIwLjA0OTUgNDNIMTJWN0gyNC40ODgxSDI0LjQ4NzhaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K", + "description": "PocketID is an open-source password manager and secure vault solution that allows users to store, manage, and share sensitive information such as passwords, credit card details, and personal notes. It is designed to provide a high level of security and privacy, with features like end-to-end encryption, two-factor authentication, and self-hosting options.", + "fields": [ + { + "description": "Domain", + "key": "DOMAIN", + "value": "", + "required": "true" + }, + { + "description": "Postgres database name", + "key": "POSTGRES_DB", + "value": "", + "required": "true", + "generated": "" + }, + { + "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