diff --git a/blueprints/scrypted/docker-compose.yml b/blueprints/scrypted/docker-compose.yml new file mode 100644 index 00000000..3ed4a4a6 --- /dev/null +++ b/blueprints/scrypted/docker-compose.yml @@ -0,0 +1,14 @@ +version: "3.8" +services: + scrypted: + image: ghcr.io/koush/scrypted:latest + environment: + - SCRYPTED_WEBHOOK_UPDATE_AUTHORIZATION=${SCRYPTED_WEBHOOK_UPDATE_AUTHORIZATION} + - SCRYPTED_WEBHOOK_UPDATE=http://${main_domain}:10444/v1/update + volumes: + - ../files/scrypted-volume:/server/volume + # Optional NVR volume, uncomment if needed + # - ../files/nvr:/nvr + restart: unless-stopped + logging: + driver: "none" diff --git a/blueprints/scrypted/image.png b/blueprints/scrypted/image.png new file mode 100644 index 00000000..33b41ca9 Binary files /dev/null and b/blueprints/scrypted/image.png differ diff --git a/blueprints/scrypted/template.toml b/blueprints/scrypted/template.toml new file mode 100644 index 00000000..821bb97d --- /dev/null +++ b/blueprints/scrypted/template.toml @@ -0,0 +1,24 @@ +[variables] +main_domain = "${domain}" +SCRYPTED_WEBHOOK_UPDATE_AUTHORIZATION = "${password:32}" + +[config] +[[config.domains]] +serviceName = "scrypted" +port = 11080 +host = "${main_domain}" + +[config.env] +# Scrypted service environment variables +# SCRYPTED_WEBHOOK_UPDATE_AUTHORIZATION: API key for Scrypted webhook updates +SCRYPTED_WEBHOOK_UPDATE_AUTHORIZATION = "${SCRYPTED_WEBHOOK_UPDATE_AUTHORIZATION}" +SCRYPTED_WEBHOOK_UPDATE = "http://${main_domain}:10444/v1/update" + +[[config.mounts]] +filePath = "/files/scrypted-volume" +content = "" + +# Optional NVR volume, uncomment if needed +# [[config.mounts]] +# filePath = "/files/nvr" +# content = "" \ No newline at end of file diff --git a/meta.json b/meta.json index 821b4423..076344a8 100644 --- a/meta.json +++ b/meta.json @@ -10,13 +10,7 @@ "docs": "https://autobase.tech/docs" }, "logo": "autobase.svg", - "tags": [ - "database", - "postgres", - "automation", - "self-hosted", - "dbaas" - ] + "tags": ["database", "postgres", "automation", "self-hosted", "dbaas"] }, { "id": "capso", @@ -63,13 +57,7 @@ "docs": "https://github.com/freescout-helpdesk/freescout/wiki/Installation-Guide" }, "logo": "freescout.svg", - "tags": [ - "helpdesk", - "support", - "email", - "customer-service", - "self-hosted" - ] + "tags": ["helpdesk", "support", "email", "customer-service", "self-hosted"] }, { "id": "openresty-manager", @@ -82,14 +70,7 @@ "docs": "https://github.com/Safe3/openresty-manager" }, "logo": "logo.svg", - "tags": [ - "web", - "proxy", - "security", - "self-hosted", - "openresty", - "nginx" - ] + "tags": ["web", "proxy", "security", "self-hosted", "openresty", "nginx"] }, { "id": "appwrite", @@ -102,11 +83,7 @@ "docs": "https://appwrite.io/docs" }, "logo": "appwrite.svg", - "tags": [ - "database", - "firebase", - "postgres" - ] + "tags": ["database", "firebase", "postgres"] }, { "id": "outline", @@ -119,11 +96,7 @@ "docs": "https://docs.getoutline.com/s/guide" }, "logo": "outline.png", - "tags": [ - "documentation", - "knowledge-base", - "self-hosted" - ] + "tags": ["documentation", "knowledge-base", "self-hosted"] }, { "id": "supabase", @@ -136,11 +109,7 @@ "docs": "https://supabase.com/docs/guides/self-hosting" }, "logo": "supabase.svg", - "tags": [ - "database", - "firebase", - "postgres" - ], + "tags": ["database", "firebase", "postgres"], "dokploy_version": ">=0.22.5" }, { @@ -154,11 +123,7 @@ "docs": "https://supabase.com/docs/guides/self-hosting" }, "logo": "supabase.svg", - "tags": [ - "database", - "firebase", - "postgres" - ], + "tags": ["database", "firebase", "postgres"], "dokploy_version": "<0.22.5" }, { @@ -172,11 +137,7 @@ "website": "https://pocketbase.io/", "docs": "https://pocketbase.io/docs/" }, - "tags": [ - "backend", - "database", - "api" - ] + "tags": ["backend", "database", "api"] }, { "id": "plausible", @@ -189,9 +150,7 @@ "website": "https://plausible.io/", "docs": "https://plausible.io/docs" }, - "tags": [ - "analytics" - ] + "tags": ["analytics"] }, { "id": "calcom", @@ -204,10 +163,7 @@ "docs": "https://cal.com/docs" }, "logo": "calcom.jpg", - "tags": [ - "scheduling", - "booking" - ] + "tags": ["scheduling", "booking"] }, { "id": "grafana", @@ -220,9 +176,7 @@ "website": "https://grafana.com/", "docs": "https://grafana.com/docs/" }, - "tags": [ - "monitoring" - ] + "tags": ["monitoring"] }, { "id": "stalwart", @@ -256,12 +210,7 @@ "website": "https://datalens.tech/", "docs": "https://datalens.tech/docs/" }, - "tags": [ - "analytics", - "self-hosted", - "bi", - "monitoring" - ] + "tags": ["analytics", "self-hosted", "bi", "monitoring"] }, { "id": "directus", @@ -274,9 +223,7 @@ "website": "https://directus.io/", "docs": "https://docs.directus.io/" }, - "tags": [ - "cms" - ] + "tags": ["cms"] }, { "id": "baserow", @@ -289,9 +236,7 @@ "website": "https://baserow.io/", "docs": "https://baserow.io/docs/index" }, - "tags": [ - "database" - ] + "tags": ["database"] }, { "id": "budibase", @@ -304,12 +249,7 @@ "website": "https://budibase.com/", "docs": "https://docs.budibase.com/docs/" }, - "tags": [ - "database", - "low-code", - "nocode", - "applications" - ] + "tags": ["database", "low-code", "nocode", "applications"] }, { "id": "forgejo", @@ -322,10 +262,7 @@ "website": "https://forgejo.org/", "docs": "https://forgejo.org/docs/latest/" }, - "tags": [ - "self-hosted", - "storage" - ] + "tags": ["self-hosted", "storage"] }, { "id": "gitlab-ce", @@ -351,9 +288,7 @@ "website": "https://ghost.org/", "docs": "https://ghost.org/docs/" }, - "tags": [ - "cms" - ] + "tags": ["cms"] }, { "id": "lodestone", @@ -366,11 +301,7 @@ "website": "https://lodestone.cc", "docs": "https://github.com/Lodestone-Team/lodestone/wiki" }, - "tags": [ - "minecraft", - "hosting", - "server" - ] + "tags": ["minecraft", "hosting", "server"] }, { "id": "dragonfly-db", @@ -383,10 +314,7 @@ "website": "https://www.dragonflydb.io/", "docs": "https://www.dragonflydb.io/docs" }, - "tags": [ - "database", - "redis" - ] + "tags": ["database", "redis"] }, { "id": "stack-auth", @@ -399,11 +327,7 @@ "website": "https://stack-auth.com/", "docs": "https://docs.stack-auth.com/next/overview" }, - "tags": [ - "authentication", - "auth", - "authorization" - ] + "tags": ["authentication", "auth", "authorization"] }, { "id": "uptime-kuma", @@ -416,9 +340,7 @@ "website": "https://uptime.kuma.pet/", "docs": "https://github.com/louislam/uptime-kuma/wiki" }, - "tags": [ - "monitoring" - ] + "tags": ["monitoring"] }, { "id": "n8n", @@ -431,9 +353,7 @@ "website": "https://n8n.io/", "docs": "https://docs.n8n.io/" }, - "tags": [ - "automation" - ] + "tags": ["automation"] }, { "id": "kestra", @@ -446,9 +366,7 @@ "website": "https://kestra.io", "docs": "https://kestra.io/docs" }, - "tags": [ - "automation" - ] + "tags": ["automation"] }, { "id": "wordpress", @@ -461,9 +379,7 @@ "website": "https://wordpress.org/", "docs": "https://wordpress.org/documentation/" }, - "tags": [ - "cms" - ] + "tags": ["cms"] }, { "id": "odoo", @@ -476,9 +392,7 @@ "website": "https://odoo.com/", "docs": "https://www.odoo.com/documentation/" }, - "tags": [ - "cms" - ] + "tags": ["cms"] }, { "id": "appsmith", @@ -491,9 +405,7 @@ "website": "https://appsmith.com/", "docs": "https://docs.appsmith.com/" }, - "tags": [ - "cms" - ] + "tags": ["cms"] }, { "id": "excalidraw", @@ -506,9 +418,7 @@ "website": "https://excalidraw.com/", "docs": "https://docs.excalidraw.com/" }, - "tags": [ - "drawing" - ] + "tags": ["drawing"] }, { "id": "documenso", @@ -521,9 +431,7 @@ "docs": "https://documenso.com/docs" }, "logo": "documenso.png", - "tags": [ - "document-signing" - ] + "tags": ["document-signing"] }, { "id": "nocodb", @@ -536,12 +444,7 @@ "docs": "https://docs.nocodb.com/" }, "logo": "nocodb.png", - "tags": [ - "database", - "spreadsheet", - "low-code", - "nocode" - ] + "tags": ["database", "spreadsheet", "low-code", "nocode"] }, { "id": "meilisearch", @@ -554,9 +457,7 @@ "website": "https://www.meilisearch.com/", "docs": "https://docs.meilisearch.com/" }, - "tags": [ - "search" - ] + "tags": ["search"] }, { "id": "mattermost", @@ -569,10 +470,7 @@ "website": "https://mattermost.com/", "docs": "https://docs.mattermost.com/" }, - "tags": [ - "chat", - "self-hosted" - ] + "tags": ["chat", "self-hosted"] }, { "id": "phpmyadmin", @@ -585,9 +483,7 @@ "website": "https://www.phpmyadmin.net/", "docs": "https://www.phpmyadmin.net/docs/" }, - "tags": [ - "database" - ] + "tags": ["database"] }, { "id": "rocketchat", @@ -600,9 +496,7 @@ "website": "https://rocket.chat/", "docs": "https://rocket.chat/docs/" }, - "tags": [ - "chat" - ] + "tags": ["chat"] }, { "id": "minio", @@ -615,9 +509,7 @@ "website": "https://minio.io/", "docs": "https://docs.minio.io/" }, - "tags": [ - "storage" - ] + "tags": ["storage"] }, { "id": "metabase", @@ -630,10 +522,7 @@ "website": "https://www.metabase.com/", "docs": "https://www.metabase.com/docs/" }, - "tags": [ - "database", - "dashboard" - ] + "tags": ["database", "dashboard"] }, { "id": "glitchtip", @@ -646,9 +535,7 @@ "website": "https://glitchtip.com/", "docs": "https://glitchtip.com/documentation" }, - "tags": [ - "hosting" - ] + "tags": ["hosting"] }, { "id": "open-webui", @@ -661,9 +548,7 @@ "website": "https://openwebui.com/", "docs": "https://docs.openwebui.com/" }, - "tags": [ - "chat" - ] + "tags": ["chat"] }, { "id": "mailpit", @@ -676,10 +561,7 @@ "website": "https://mailpit.axllent.org/", "docs": "https://mailpit.axllent.org/docs/" }, - "tags": [ - "email", - "smtp" - ] + "tags": ["email", "smtp"] }, { "id": "listmonk", @@ -692,11 +574,7 @@ "website": "https://listmonk.app/", "docs": "https://listmonk.app/docs/" }, - "tags": [ - "email", - "newsletter", - "mailing-list" - ] + "tags": ["email", "newsletter", "mailing-list"] }, { "id": "doublezero", @@ -709,9 +587,7 @@ "website": "https://www.double-zero.cloud/", "docs": "https://github.com/technomancy-dev/00" }, - "tags": [ - "email" - ] + "tags": ["email"] }, { "id": "umami", @@ -724,9 +600,7 @@ "website": "https://umami.is", "docs": "https://umami.is/docs" }, - "tags": [ - "analytics" - ] + "tags": ["analytics"] }, { "id": "jellyfin", @@ -739,9 +613,7 @@ "website": "https://jellyfin.org/", "docs": "https://jellyfin.org/docs/" }, - "tags": [ - "media system" - ] + "tags": ["media system"] }, { "id": "teable", @@ -754,12 +626,7 @@ "website": "https://teable.io/", "docs": "https://help.teable.io/" }, - "tags": [ - "database", - "spreadsheet", - "low-code", - "nocode" - ] + "tags": ["database", "spreadsheet", "low-code", "nocode"] }, { "id": "zipline", @@ -772,10 +639,7 @@ "website": "https://zipline.diced.sh/", "docs": "https://zipline.diced.sh/docs/" }, - "tags": [ - "media system", - "storage" - ] + "tags": ["media system", "storage"] }, { "id": "soketi", @@ -788,9 +652,7 @@ "website": "https://soketi.app/", "docs": "https://docs.soketi.app/" }, - "tags": [ - "chat" - ] + "tags": ["chat"] }, { "id": "aptabase", @@ -803,10 +665,7 @@ "website": "https://aptabase.com/", "docs": "https://github.com/aptabase/aptabase/blob/main/README.md" }, - "tags": [ - "analytics", - "self-hosted" - ] + "tags": ["analytics", "self-hosted"] }, { "id": "typebot", @@ -819,11 +678,7 @@ "website": "https://typebot.io/", "docs": "https://docs.typebot.io/get-started/introduction" }, - "tags": [ - "chatbot", - "builder", - "open-source" - ] + "tags": ["chatbot", "builder", "open-source"] }, { "id": "typecho", @@ -836,11 +691,7 @@ "website": "https://typecho.org/", "docs": "http://docs.typecho.org" }, - "tags": [ - "blog", - "cms", - "php" - ] + "tags": ["blog", "cms", "php"] }, { "id": "gitea", @@ -853,10 +704,7 @@ "website": "https://gitea.com/", "docs": "https://docs.gitea.com/installation/install-with-docker" }, - "tags": [ - "self-hosted", - "storage" - ] + "tags": ["self-hosted", "storage"] }, { "id": "gitea-mirror", @@ -869,14 +717,7 @@ "website": "https://github.com/arunavo4/gitea-mirror", "docs": "https://github.com/arunavo4/gitea-mirror#readme" }, - "tags": [ - "git", - "mirror", - "github", - "gitea", - "self-hosted", - "automation" - ] + "tags": ["git", "mirror", "github", "gitea", "self-hosted", "automation"] }, { "id": "roundcube", @@ -889,11 +730,7 @@ "website": "https://roundcube.net/", "docs": "https://roundcube.net/about/" }, - "tags": [ - "self-hosted", - "email", - "webmail" - ] + "tags": ["self-hosted", "email", "webmail"] }, { "id": "filebrowser", @@ -906,10 +743,7 @@ "website": "https://filebrowser.org/", "docs": "https://filebrowser.org/" }, - "tags": [ - "file-manager", - "storage" - ] + "tags": ["file-manager", "storage"] }, { "id": "focalboard", @@ -922,9 +756,7 @@ "website": "https://focalboard.com", "docs": "https://www.focalboard.com/docs/" }, - "tags": [ - "kanban" - ] + "tags": ["kanban"] }, { "id": "tolgee", @@ -937,12 +769,7 @@ "website": "https://tolgee.io", "docs": "https://tolgee.io/platform" }, - "tags": [ - "self-hosted", - "i18n", - "localization", - "translations" - ] + "tags": ["self-hosted", "i18n", "localization", "translations"] }, { "id": "portainer", @@ -955,10 +782,7 @@ "website": "https://www.portainer.io/", "docs": "https://docs.portainer.io/" }, - "tags": [ - "cloud", - "monitoring" - ] + "tags": ["cloud", "monitoring"] }, { "id": "plane", @@ -971,9 +795,7 @@ "website": "https://plane.so", "docs": "https://docs.plane.so/" }, - "tags": [ - "kanban" - ] + "tags": ["kanban"] }, { "id": "pterodactyl", @@ -986,11 +808,7 @@ "website": "https://pterodactyl.io", "docs": "https://pterodactyl.io/project/introduction.html" }, - "tags": [ - "self-hosted", - "open-source", - "management" - ] + "tags": ["self-hosted", "open-source", "management"] }, { "id": "pyrodactyl", @@ -1003,11 +821,7 @@ "website": "https://pyrodactyl.dev", "docs": "https://pyrodactyl.dev/docs" }, - "tags": [ - "self-hosted", - "open-source", - "management" - ] + "tags": ["self-hosted", "open-source", "management"] }, { "id": "influxdb", @@ -1020,12 +834,7 @@ "website": "https://www.influxdata.com/", "docs": "https://docs.influxdata.com/influxdb/v2/" }, - "tags": [ - "self-hosted", - "open-source", - "storage", - "database" - ] + "tags": ["self-hosted", "open-source", "storage", "database"] }, { "id": "infisical", @@ -1038,10 +847,7 @@ "website": "https://infisical.com/", "docs": "https://infisical.com/docs/documentation/getting-started/introduction" }, - "tags": [ - "self-hosted", - "open-source" - ] + "tags": ["self-hosted", "open-source"] }, { "id": "docmost", @@ -1054,11 +860,7 @@ "website": "https://docmost.com/", "docs": "https://docmost.com/docs/" }, - "tags": [ - "self-hosted", - "open-source", - "manager" - ] + "tags": ["self-hosted", "open-source", "manager"] }, { "id": "vaultwarden", @@ -1071,9 +873,7 @@ "website": "", "docs": "https://github.com/dani-garcia/vaultwarden/wiki" }, - "tags": [ - "open-source" - ] + "tags": ["open-source"] }, { "id": "linkding", @@ -1086,10 +886,7 @@ "website": "https://sissbruecker.github.io/linkding/", "docs": "https://github.com/sissbruecker/linkding/blob/master/docs/Options.md" }, - "tags": [ - "bookmark-manager", - "self-hosted" - ] + "tags": ["bookmark-manager", "self-hosted"] }, { "id": "linkwarden", @@ -1102,10 +899,7 @@ "website": "https://linkwarden.app/", "docs": "https://docs.linkwarden.app/" }, - "tags": [ - "bookmarks", - "link-sharing" - ] + "tags": ["bookmarks", "link-sharing"] }, { "id": "hi-events", @@ -1118,11 +912,7 @@ "website": "https://hi.events/", "docs": "https://hi.events/docs" }, - "tags": [ - "self-hosted", - "open-source", - "manager" - ] + "tags": ["self-hosted", "open-source", "manager"] }, { "id": "habitica", @@ -1148,11 +938,7 @@ "website": "https://hoarder.app/", "docs": "https://docs.hoarder.app/" }, - "tags": [ - "self-hosted", - "bookmarks", - "link-sharing" - ] + "tags": ["self-hosted", "bookmarks", "link-sharing"] }, { "id": "windows", @@ -1165,11 +951,7 @@ "website": "", "docs": "https://github.com/dockur/windows?tab=readme-ov-file#how-do-i-use-it" }, - "tags": [ - "self-hosted", - "open-source", - "os" - ] + "tags": ["self-hosted", "open-source", "os"] }, { "id": "macos", @@ -1182,11 +964,7 @@ "website": "", "docs": "https://github.com/dockur/macos?tab=readme-ov-file#how-do-i-use-it" }, - "tags": [ - "self-hosted", - "open-source", - "os" - ] + "tags": ["self-hosted", "open-source", "os"] }, { "id": "coder", @@ -1199,11 +977,7 @@ "website": "https://coder.com/", "docs": "https://coder.com/docs" }, - "tags": [ - "self-hosted", - "open-source", - "builder" - ] + "tags": ["self-hosted", "open-source", "builder"] }, { "id": "stirling", @@ -1216,10 +990,7 @@ "website": "https://www.stirlingpdf.com/", "docs": "https://docs.stirlingpdf.com/" }, - "tags": [ - "pdf", - "tools" - ] + "tags": ["pdf", "tools"] }, { "id": "lobe-chat", @@ -1232,10 +1003,7 @@ "website": "https://chat-preview.lobehub.com/", "docs": "https://lobehub.com/docs/self-hosting/platform/docker-compose" }, - "tags": [ - "IA", - "chat" - ] + "tags": ["IA", "chat"] }, { "id": "peppermint", @@ -1248,11 +1016,7 @@ "website": "https://peppermint.sh/", "docs": "https://docs.peppermint.sh/" }, - "tags": [ - "api", - "development", - "documentation" - ] + "tags": ["api", "development", "documentation"] }, { "id": "windmill", @@ -1265,11 +1029,7 @@ "website": "https://www.windmill.dev/", "docs": "https://docs.windmill.dev/" }, - "tags": [ - "workflow", - "automation", - "development" - ] + "tags": ["workflow", "automation", "development"] }, { "id": "activepieces", @@ -1282,11 +1042,7 @@ "website": "https://www.activepieces.com/", "docs": "https://www.activepieces.com/docs" }, - "tags": [ - "automation", - "workflow", - "no-code" - ] + "tags": ["automation", "workflow", "no-code"] }, { "id": "invoiceshelf", @@ -1299,11 +1055,7 @@ "website": "https://invoiceshelf.com", "docs": "https://github.com/InvoiceShelf/invoiceshelf#readme" }, - "tags": [ - "invoice", - "business", - "finance" - ] + "tags": ["invoice", "business", "finance"] }, { "id": "postiz", @@ -1316,11 +1068,7 @@ "website": "https://postiz.com", "docs": "https://docs.postiz.com" }, - "tags": [ - "cms", - "content-management", - "publishing" - ] + "tags": ["cms", "content-management", "publishing"] }, { "id": "slash", @@ -1333,11 +1081,7 @@ "website": "https://github.com/yourselfhosted/slash#readme", "docs": "https://github.com/yourselfhosted/slash/wiki" }, - "tags": [ - "bookmarks", - "link-shortener", - "self-hosted" - ] + "tags": ["bookmarks", "link-shortener", "self-hosted"] }, { "id": "discord-tickets", @@ -1350,11 +1094,7 @@ "website": "https://discordtickets.app", "docs": "https://discordtickets.app/self-hosting/installation/docker/" }, - "tags": [ - "discord", - "tickets", - "support" - ] + "tags": ["discord", "tickets", "support"] }, { "id": "nextcloud-aio", @@ -1367,10 +1107,7 @@ "website": "https://nextcloud.com/", "docs": "https://docs.nextcloud.com/" }, - "tags": [ - "file-manager", - "sync" - ] + "tags": ["file-manager", "sync"] }, { "id": "blender", @@ -1383,11 +1120,7 @@ "website": "https://www.blender.org/", "docs": "https://docs.blender.org/" }, - "tags": [ - "3d", - "rendering", - "animation" - ] + "tags": ["3d", "rendering", "animation"] }, { "id": "heyform", @@ -1400,13 +1133,7 @@ "website": "https://heyform.net", "docs": "https://docs.heyform.net" }, - "tags": [ - "form", - "builder", - "questionnaire", - "quiz", - "survey" - ] + "tags": ["form", "builder", "questionnaire", "quiz", "survey"] }, { "id": "chatwoot", @@ -1419,11 +1146,7 @@ "website": "https://www.chatwoot.com", "docs": "https://www.chatwoot.com/docs" }, - "tags": [ - "support", - "chat", - "customer-service" - ] + "tags": ["support", "chat", "customer-service"] }, { "id": "discourse", @@ -1436,11 +1159,7 @@ "website": "https://www.discourse.org/", "docs": "https://meta.discourse.org/" }, - "tags": [ - "forum", - "community", - "discussion" - ] + "tags": ["forum", "community", "discussion"] }, { "id": "immich", @@ -1453,12 +1172,7 @@ "website": "https://immich.app/", "docs": "https://immich.app/docs/overview/introduction" }, - "tags": [ - "photos", - "videos", - "backup", - "media" - ] + "tags": ["photos", "videos", "backup", "media"] }, { "id": "twenty", @@ -1471,11 +1185,7 @@ "website": "https://twenty.com", "docs": "https://docs.twenty.com" }, - "tags": [ - "crm", - "sales", - "business" - ] + "tags": ["crm", "sales", "business"] }, { "id": "yourls", @@ -1488,10 +1198,7 @@ "website": "https://yourls.org/", "docs": "https://yourls.org/#documentation" }, - "tags": [ - "url-shortener", - "php" - ] + "tags": ["url-shortener", "php"] }, { "id": "ryot", @@ -1504,11 +1211,7 @@ "website": "https://ryot.io/", "docs": "https://docs.ryot.io/" }, - "tags": [ - "media", - "tracking", - "self-hosted" - ] + "tags": ["media", "tracking", "self-hosted"] }, { "id": "photoprism", @@ -1521,11 +1224,7 @@ "website": "https://www.photoprism.app/", "docs": "https://docs.photoprism.app/" }, - "tags": [ - "media", - "photos", - "self-hosted" - ] + "tags": ["media", "photos", "self-hosted"] }, { "id": "ontime", @@ -1538,9 +1237,7 @@ "website": "https://getontime.no", "docs": "https://docs.getontime.no" }, - "tags": [ - "event" - ] + "tags": ["event"] }, { "id": "triggerdotdev", @@ -1553,10 +1250,7 @@ "website": "https://trigger.dev/", "docs": "https://trigger.dev/docs" }, - "tags": [ - "event-driven", - "applications" - ] + "tags": ["event-driven", "applications"] }, { "id": "browserless", @@ -1569,10 +1263,7 @@ "website": "https://www.browserless.io/", "docs": "https://docs.browserless.io/" }, - "tags": [ - "browser", - "automation" - ] + "tags": ["browser", "automation"] }, { "id": "drawio", @@ -1585,10 +1276,7 @@ "website": "https://draw.io/", "docs": "https://www.drawio.com/doc/" }, - "tags": [ - "drawing", - "diagrams" - ] + "tags": ["drawing", "diagrams"] }, { "id": "kimai", @@ -1601,11 +1289,7 @@ "website": "https://www.kimai.org", "docs": "https://www.kimai.org/documentation" }, - "tags": [ - "invoice", - "business", - "finance" - ] + "tags": ["invoice", "business", "finance"] }, { "id": "logto", @@ -1618,10 +1302,7 @@ "website": "https://logto.io/", "docs": "https://docs.logto.io/introduction" }, - "tags": [ - "identity", - "auth" - ] + "tags": ["identity", "auth"] }, { "id": "pocket-id", @@ -1634,10 +1315,7 @@ "website": "https://pocket-id.org/", "docs": "https://pocket-id.org/docs" }, - "tags": [ - "identity", - "auth" - ] + "tags": ["identity", "auth"] }, { "id": "penpot", @@ -1650,10 +1328,7 @@ "website": "https://penpot.app/", "docs": "https://docs.penpot.app/" }, - "tags": [ - "design", - "collaboration" - ] + "tags": ["design", "collaboration"] }, { "id": "huly", @@ -1666,11 +1341,7 @@ "website": "https://huly.io/", "docs": "https://docs.huly.io/" }, - "tags": [ - "project-management", - "community", - "discussion" - ] + "tags": ["project-management", "community", "discussion"] }, { "id": "unsend", @@ -1683,11 +1354,7 @@ "website": "https://unsend.dev/", "docs": "https://docs.unsend.dev/get-started/" }, - "tags": [ - "e-mail", - "marketing", - "business" - ] + "tags": ["e-mail", "marketing", "business"] }, { "id": "langflow", @@ -1700,9 +1367,7 @@ "website": "https://www.langflow.org/", "docs": "https://docs.langflow.org/" }, - "tags": [ - "ai" - ] + "tags": ["ai"] }, { "id": "elastic-search", @@ -1715,10 +1380,7 @@ "website": "https://www.elastic.co/elasticsearch/", "docs": "https://docs.elastic.co/elasticsearch/" }, - "tags": [ - "search", - "analytics" - ] + "tags": ["search", "analytics"] }, { "id": "onedev", @@ -1731,10 +1393,7 @@ "website": "https://onedev.io/", "docs": "https://docs.onedev.io/" }, - "tags": [ - "self-hosted", - "development" - ] + "tags": ["self-hosted", "development"] }, { "id": "unifi", @@ -1747,10 +1406,7 @@ "website": "https://www.ui.com/", "docs": "https://help.ui.com/hc/en-us/articles/360012282453-Self-Hosting-a-UniFi-Network-Server" }, - "tags": [ - "self-hosted", - "networking" - ] + "tags": ["self-hosted", "networking"] }, { "id": "glpi", @@ -1763,11 +1419,7 @@ "website": "https://glpi-project.org/", "docs": "https://glpi-project.org/documentation/" }, - "tags": [ - "self-hosted", - "project-management", - "management" - ] + "tags": ["self-hosted", "project-management", "management"] }, { "id": "checkmate", @@ -1780,11 +1432,7 @@ "website": "https://bluewavelabs.ca", "docs": "https://bluewavelabs.gitbook.io/checkmate" }, - "tags": [ - "self-hosted", - "monitoring", - "uptime" - ] + "tags": ["self-hosted", "monitoring", "uptime"] }, { "id": "gotenberg", @@ -1797,12 +1445,7 @@ "website": "https://gotenberg.dev", "docs": "https://gotenberg.dev/docs/getting-started/introduction" }, - "tags": [ - "api", - "backend", - "pdf", - "tools" - ] + "tags": ["api", "backend", "pdf", "tools"] }, { "id": "actualbudget", @@ -1815,11 +1458,7 @@ "website": "https://actualbudget.org", "docs": "https://actualbudget.org/docs" }, - "tags": [ - "budgeting", - "finance", - "money" - ] + "tags": ["budgeting", "finance", "money"] }, { "id": "conduit", @@ -1832,10 +1471,7 @@ "website": "https://conduit.rs/", "docs": "https://docs.conduit.rs/" }, - "tags": [ - "matrix", - "communication" - ] + "tags": ["matrix", "communication"] }, { "id": "evolutionapi", @@ -1848,11 +1484,7 @@ "docs": "https://doc.evolution-api.com/v2/en/get-started/introduction", "website": "https://evolution-api.com/opensource-whatsapp-api/" }, - "tags": [ - "api", - "whatsapp", - "messaging" - ] + "tags": ["api", "whatsapp", "messaging"] }, { "id": "conduwuit", @@ -1865,13 +1497,7 @@ "website": "https://conduwuit.puppyirl.gay", "docs": "https://conduwuit.puppyirl.gay/configuration.html" }, - "tags": [ - "backend", - "chat", - "communication", - "matrix", - "server" - ] + "tags": ["backend", "chat", "communication", "matrix", "server"] }, { "id": "cloudflared", @@ -1884,12 +1510,7 @@ "website": "https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/", "docs": "https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/" }, - "tags": [ - "cloud", - "networking", - "security", - "tunnel" - ] + "tags": ["cloud", "networking", "security", "tunnel"] }, { "id": "couchdb", @@ -1902,10 +1523,7 @@ "website": "https://couchdb.apache.org/", "docs": "https://docs.couchdb.org/en/stable/" }, - "tags": [ - "database", - "storage" - ] + "tags": ["database", "storage"] }, { "id": "it-tools", @@ -1918,10 +1536,7 @@ "website": "https://it-tools.tech", "docs": "https://it-tools.tech/docs" }, - "tags": [ - "developer", - "tools" - ] + "tags": ["developer", "tools"] }, { "id": "superset", @@ -1934,13 +1549,7 @@ "website": "https://superset.apache.org", "docs": "https://superset.apache.org/docs/intro" }, - "tags": [ - "analytics", - "bi", - "dashboard", - "database", - "sql" - ] + "tags": ["analytics", "bi", "dashboard", "database", "sql"] }, { "id": "glance", @@ -1953,12 +1562,7 @@ "docs": "https://github.com/glanceapp/glance/blob/main/docs/configuration.md", "website": "https://glance.app/" }, - "tags": [ - "dashboard", - "monitoring", - "widgets", - "rss" - ] + "tags": ["dashboard", "monitoring", "widgets", "rss"] }, { "id": "homarr", @@ -1971,10 +1575,7 @@ "docs": "https://homarr.dev/docs/getting-started/installation/docker", "website": "https://homarr.dev/" }, - "tags": [ - "dashboard", - "monitoring" - ] + "tags": ["dashboard", "monitoring"] }, { "id": "erpnext", @@ -2008,10 +1609,7 @@ "website": "https://maybe.finance/", "docs": "https://docs.maybe.finance/" }, - "tags": [ - "finance", - "self-hosted" - ] + "tags": ["finance", "self-hosted"] }, { "id": "spacedrive", @@ -2024,11 +1622,7 @@ "docs": "https://www.spacedrive.com/docs/product/getting-started/introduction" }, "logo": "spacedrive.png", - "tags": [ - "file-manager", - "vdfs", - "storage" - ] + "tags": ["file-manager", "vdfs", "storage"] }, { "id": "registry", @@ -2041,11 +1635,7 @@ "docs": "https://distribution.github.io/distribution/" }, "logo": "registry.png", - "tags": [ - "registry", - "docker", - "self-hosted" - ] + "tags": ["registry", "docker", "self-hosted"] }, { "id": "alist", @@ -2058,11 +1648,7 @@ "website": "https://alist.nn.ci", "docs": "https://alist.nn.ci/guide/install/docker.html" }, - "tags": [ - "file", - "webdav", - "storage" - ] + "tags": ["file", "webdav", "storage"] }, { "id": "answer", @@ -2075,10 +1661,7 @@ "website": "https://answer.apache.org/", "docs": "https://answer.apache.org/docs" }, - "tags": [ - "q&a", - "self-hosted" - ] + "tags": ["q&a", "self-hosted"] }, { "id": "shlink", @@ -2091,11 +1674,7 @@ "website": "https://shlink.io", "docs": "https://shlink.io/documentation" }, - "tags": [ - "sharing", - "shortener", - "url" - ] + "tags": ["sharing", "shortener", "url"] }, { "id": "frappe-hr", @@ -2128,10 +1707,7 @@ "website": "https://formbricks.com/", "docs": "https://formbricks.com/docs" }, - "tags": [ - "forms", - "analytics" - ] + "tags": ["forms", "analytics"] }, { "id": "trilium", @@ -2144,11 +1720,7 @@ "website": "https://github.com/zadam/trilium", "docs": "https://github.com/zadam/trilium/wiki/" }, - "tags": [ - "self-hosted", - "productivity", - "personal-use" - ] + "tags": ["self-hosted", "productivity", "personal-use"] }, { "id": "convex", @@ -2161,11 +1733,7 @@ "website": "https://www.convex.dev/", "docs": "https://www.convex.dev/docs" }, - "tags": [ - "backend", - "database", - "api" - ] + "tags": ["backend", "database", "api"] }, { "id": "wikijs", @@ -2178,11 +1746,7 @@ "website": "https://js.wiki/", "docs": "https://docs.requarks.io/" }, - "tags": [ - "knowledge-base", - "self-hosted", - "documentation" - ] + "tags": ["knowledge-base", "self-hosted", "documentation"] }, { "id": "otterwiki", @@ -2195,12 +1759,7 @@ "website": "https://otterwiki.com/", "docs": "https://github.com/redimp/otterwiki/wiki" }, - "tags": [ - "wiki", - "documentation", - "knowledge-base", - "markdown" - ] + "tags": ["wiki", "documentation", "knowledge-base", "markdown"] }, { "id": "lowcoder", @@ -2213,11 +1772,7 @@ "website": "https://www.lowcoder.cloud/", "docs": "https://docs.lowcoder.cloud/lowcoder-documentation" }, - "tags": [ - "low-code", - "no-code", - "development" - ] + "tags": ["low-code", "no-code", "development"] }, { "id": "backrest", @@ -2230,9 +1785,7 @@ "docs": "https://garethgeorge.github.io/backrest/introduction/getting-started" }, "logo": "backrest.svg", - "tags": [ - "backup" - ] + "tags": ["backup"] }, { "id": "blinko", @@ -2245,12 +1798,7 @@ "website": "https://blinko.space/", "docs": "https://docs.blinko.space/" }, - "tags": [ - "productivity", - "organization", - "workflow", - "nextjs" - ] + "tags": ["productivity", "organization", "workflow", "nextjs"] }, { "id": "pgadmin", @@ -2263,11 +1811,7 @@ "docs": "https://www.pgadmin.org/docs/" }, "logo": "pgadmin.webp", - "tags": [ - "database", - "postgres", - "admin" - ] + "tags": ["database", "postgres", "admin"] }, { "id": "ackee", @@ -2280,10 +1824,7 @@ "website": "https://ackee.electerious.com/", "docs": "https://docs.ackee.electerious.com/" }, - "tags": [ - "analytics", - "self-hosted" - ] + "tags": ["analytics", "self-hosted"] }, { "id": "adguardhome", @@ -2296,12 +1837,7 @@ "website": "https://adguard.com", "docs": "https://github.com/AdguardTeam/AdGuardHome/wiki" }, - "tags": [ - "privacy", - "security", - "dns", - "ad-blocking" - ] + "tags": ["privacy", "security", "dns", "ad-blocking"] }, { "id": "adminer", @@ -2314,12 +1850,7 @@ "website": "https://www.adminer.org/", "docs": "https://www.adminer.org/en/plugins/" }, - "tags": [ - "databases", - "developer-tools", - "mysql", - "postgresql" - ] + "tags": ["databases", "developer-tools", "mysql", "postgresql"] }, { "id": "affinepro", @@ -2350,11 +1881,7 @@ "website": "https://github.com/Rudloff/alltube", "docs": "https://github.com/Rudloff/alltube/wiki" }, - "tags": [ - "media", - "video", - "downloader" - ] + "tags": ["media", "video", "downloader"] }, { "id": "ampache", @@ -2367,11 +1894,7 @@ "website": "http://ampache.org/", "docs": "https://github.com/ampache/ampache/wiki" }, - "tags": [ - "media", - "music", - "streaming" - ] + "tags": ["media", "music", "streaming"] }, { "id": "anythingllm", @@ -2384,11 +1907,7 @@ "website": "https://useanything.com", "docs": "https://github.com/Mintplex-Labs/anything-llm/tree/master/docs" }, - "tags": [ - "ai", - "llm", - "chatbot" - ] + "tags": ["ai", "llm", "chatbot"] }, { "id": "apprise-api", @@ -2401,10 +1920,7 @@ "website": "https://github.com/caronc/apprise-api", "docs": "https://github.com/caronc/apprise-api/wiki" }, - "tags": [ - "notifications", - "api" - ] + "tags": ["notifications", "api"] }, { "id": "arangodb", @@ -2417,11 +1933,7 @@ "website": "https://www.arangodb.com/", "docs": "https://www.arangodb.com/docs/" }, - "tags": [ - "database", - "graph-database", - "nosql" - ] + "tags": ["database", "graph-database", "nosql"] }, { "id": "anonupload", @@ -2434,10 +1946,7 @@ "docs": "https://github.com/Supernova3339/anonupload/blob/main/env.md", "website": "https://anonupload.com/" }, - "tags": [ - "file-sharing", - "privacy" - ] + "tags": ["file-sharing", "privacy"] }, { "id": "argilla", @@ -2450,11 +1959,7 @@ "website": "https://www.argilla.io/", "docs": "https://docs.argilla.io/" }, - "tags": [ - "machine-learning", - "data-labeling", - "ai" - ] + "tags": ["machine-learning", "data-labeling", "ai"] }, { "id": "audiobookshelf", @@ -2467,11 +1972,7 @@ "website": "https://www.audiobookshelf.org", "docs": "https://www.audiobookshelf.org/docs" }, - "tags": [ - "media", - "audiobooks", - "podcasts" - ] + "tags": ["media", "audiobooks", "podcasts"] }, { "id": "authorizer", @@ -2484,11 +1985,7 @@ "website": "https://authorizer.dev", "docs": "https://docs.authorizer.dev/" }, - "tags": [ - "authentication", - "authorization", - "security" - ] + "tags": ["authentication", "authorization", "security"] }, { "id": "automatisch", @@ -2501,11 +1998,7 @@ "website": "https://automatisch.io/docs", "docs": "https://automatisch.io/docs" }, - "tags": [ - "automation", - "workflow", - "integration" - ] + "tags": ["automation", "workflow", "integration"] }, { "id": "babybuddy", @@ -2518,11 +2011,7 @@ "website": "https://babybuddy.app", "docs": "https://docs.babybuddy.app" }, - "tags": [ - "parenting", - "tracking", - "family" - ] + "tags": ["parenting", "tracking", "family"] }, { "id": "baikal", @@ -2535,12 +2024,7 @@ "github": "https://sabre.io/baikal/", "docs": "https://sabre.io/baikal/install/" }, - "tags": [ - "calendar", - "contacts", - "caldav", - "carddav" - ] + "tags": ["calendar", "contacts", "caldav", "carddav"] }, { "id": "barrage", @@ -2553,11 +2037,7 @@ "website": "https://github.com/maulik9898/barrage", "docs": "https://github.com/maulik9898/barrage/blob/main/README.md" }, - "tags": [ - "torrents", - "deluge", - "mobile" - ] + "tags": ["torrents", "deluge", "mobile"] }, { "id": "bazarr", @@ -2570,11 +2050,7 @@ "website": "https://www.bazarr.media/", "docs": "https://www.bazarr.media/docs" }, - "tags": [ - "subtitles", - "sonarr", - "radarr" - ] + "tags": ["subtitles", "sonarr", "radarr"] }, { "id": "beszel", @@ -2587,11 +2063,7 @@ "website": "https://beszel.dev", "docs": "https://beszel.dev/guide/getting-started" }, - "tags": [ - "monitoring", - "docker", - "alerts" - ] + "tags": ["monitoring", "docker", "alerts"] }, { "id": "bytestash", @@ -2604,10 +2076,7 @@ "website": "https://bytestash.com", "docs": "https://bytestash.com/docs" }, - "tags": [ - "file-storage", - "self-hosted" - ] + "tags": ["file-storage", "self-hosted"] }, { "id": "bookstack", @@ -2620,10 +2089,7 @@ "website": "https://www.bookstackapp.com", "docs": "https://www.bookstackapp.com/docs" }, - "tags": [ - "documentation", - "self-hosted" - ] + "tags": ["documentation", "self-hosted"] }, { "id": "bytebase", @@ -2636,10 +2102,7 @@ "website": "https://www.bytebase.com", "docs": "https://www.bytebase.com/docs" }, - "tags": [ - "database", - "self-hosted" - ] + "tags": ["database", "self-hosted"] }, { "id": "botpress", @@ -2652,10 +2115,7 @@ "website": "https://botpress.com", "docs": "https://botpress.com/docs" }, - "tags": [ - "ai", - "self-hosted" - ] + "tags": ["ai", "self-hosted"] }, { "id": "calibre", @@ -2668,10 +2128,7 @@ "website": "https://calibre-ebook.com/", "docs": "https://manual.calibre-ebook.com/" }, - "tags": [ - "Documents", - "E-Commerce" - ] + "tags": ["Documents", "E-Commerce"] }, { "id": "carbone", @@ -2684,12 +2141,7 @@ "website": "https://carbone.io/", "docs": "https://carbone.io/documentation/design/overview/getting-started.html" }, - "tags": [ - "Document Generation", - "Automation", - "Reporting", - "Productivity" - ] + "tags": ["Document Generation", "Automation", "Reporting", "Productivity"] }, { "id": "casdoor", @@ -2725,11 +2177,7 @@ "website": "https://changedetection.io", "docs": "https://github.com/dgtlmoon/changedetection.io/wiki" }, - "tags": [ - "Monitoring", - "Data", - "Notifications" - ] + "tags": ["Monitoring", "Data", "Notifications"] }, { "id": "chevereto", @@ -2780,11 +2228,7 @@ "website": "https://www.classicpress.net/", "docs": "https://docs.classicpress.net/" }, - "tags": [ - "cms", - "wordpress", - "content-management" - ] + "tags": ["cms", "wordpress", "content-management"] }, { "id": "cloud9", @@ -2797,11 +2241,7 @@ "website": "https://aws.amazon.com/cloud9/", "docs": "https://docs.aws.amazon.com/cloud9/" }, - "tags": [ - "ide", - "development", - "cloud" - ] + "tags": ["ide", "development", "cloud"] }, { "id": "cloudcommander", @@ -2814,11 +2254,7 @@ "website": "https://cloudcmd.io", "docs": "https://cloudcmd.io/#install" }, - "tags": [ - "file-manager", - "web-based", - "console" - ] + "tags": ["file-manager", "web-based", "console"] }, { "id": "cockpit", @@ -2831,11 +2267,7 @@ "website": "https://getcockpit.com", "docs": "https://getcockpit.com/documentation" }, - "tags": [ - "cms", - "content-management", - "api" - ] + "tags": ["cms", "content-management", "api"] }, { "id": "chromium", @@ -2848,11 +2280,7 @@ "docs": "https://docs.linuxserver.io/images/docker-chromium", "website": "https://docs.linuxserver.io/images/docker-chromium" }, - "tags": [ - "browser", - "development", - "web" - ] + "tags": ["browser", "development", "web"] }, { "id": "codex-docs", @@ -2865,11 +2293,7 @@ "website": "https://codex.so", "docs": "https://docs.codex.so" }, - "tags": [ - "documentation", - "development", - "collaboration" - ] + "tags": ["documentation", "development", "collaboration"] }, { "id": "colanode", @@ -2882,11 +2306,7 @@ "website": "https://colanode.com", "docs": "https://colanode.com/docs/" }, - "tags": [ - "documentation", - "knowledge-base", - "collaboration" - ] + "tags": ["documentation", "knowledge-base", "collaboration"] }, { "id": "collabora-office", @@ -2899,11 +2319,7 @@ "website": "https://collaboraonline.com", "docs": "https://sdk.collaboraonline.com/docs" }, - "tags": [ - "office", - "documents", - "collaboration" - ] + "tags": ["office", "documents", "collaboration"] }, { "id": "confluence", @@ -2934,11 +2350,7 @@ "github": "https://github.com/souramoo/commentoplusplus" }, "logo": "logo.png", - "tags": [ - "comments", - "discussion", - "website" - ] + "tags": ["comments", "discussion", "website"] }, { "id": "commentoplusplus", @@ -2951,11 +2363,7 @@ "github": "https://github.com/souramoo/commentoplusplus" }, "logo": "logo.png", - "tags": [ - "comments", - "website", - "open-source" - ] + "tags": ["comments", "website", "open-source"] }, { "id": "coralproject", @@ -2968,11 +2376,7 @@ "github": "https://github.com/coralproject/talk" }, "logo": "logo.png", - "tags": [ - "communication", - "community", - "privacy" - ] + "tags": ["communication", "community", "privacy"] }, { "id": "rsshub", @@ -2985,11 +2389,7 @@ "website": "https://rsshub.app/", "docs": "https://docs.rsshub.app/" }, - "tags": [ - "rss", - "api", - "self-hosted" - ] + "tags": ["rss", "api", "self-hosted"] }, { "id": "tailscale-exitnode", @@ -3002,9 +2402,7 @@ "website": "https://tailscale.com/", "docs": "https://tailscale.com/kb/1408/quick-guide-exit-nodes" }, - "tags": [ - "network" - ] + "tags": ["network"] }, { "id": "homebridge", @@ -3017,13 +2415,7 @@ "website": "https://homebridge.io/", "docs": "https://github.com/homebridge/homebridge/wiki" }, - "tags": [ - "iot", - "homekit", - "internet-of-things", - "self-hosted", - "server" - ] + "tags": ["iot", "homekit", "internet-of-things", "self-hosted", "server"] }, { "id": "homeassistant", @@ -3055,11 +2447,7 @@ "website": "https://tooljet.ai/", "docs": "https://docs.tooljet.ai/" }, - "tags": [ - "file-sync", - "file-sharing", - "self-hosted" - ] + "tags": ["file-sync", "file-sharing", "self-hosted"] }, { "id": "onetimesecret", @@ -3072,12 +2460,7 @@ "website": "https://onetimesecret.com", "docs": "https://docs.onetimesecret.com" }, - "tags": [ - "auth", - "password", - "secret", - "secure" - ] + "tags": ["auth", "password", "secret", "secure"] }, { "id": "bugsink", @@ -3090,11 +2473,7 @@ "website": "https://www.bugsink.com/", "docs": "https://www.bugsink.com/docs/" }, - "tags": [ - "hosting", - "self-hosted", - "development" - ] + "tags": ["hosting", "self-hosted", "development"] }, { "id": "bolt.diy", @@ -3107,14 +2486,7 @@ "website": "https://stackblitz-labs.github.io/bolt.diy/", "docs": "https://stackblitz-labs.github.io/bolt.diy/" }, - "tags": [ - "ai", - "self-hosted", - "development", - "chatbot", - "ide", - "llm" - ] + "tags": ["ai", "self-hosted", "development", "chatbot", "ide", "llm"] }, { "id": "qdrant", @@ -3127,11 +2499,7 @@ "website": "https://qdrant.tech/", "docs": "https://qdrant.tech/documentation/" }, - "tags": [ - "vector-db", - "database", - "search" - ] + "tags": ["vector-db", "database", "search"] }, { "id": "trmnl-byos-laravel", @@ -3144,9 +2512,7 @@ "website": "https://docs.usetrmnl.com/go/diy/byos", "docs": "https://github.com/usetrmnl/byos_laravel/blob/main/README.md" }, - "tags": [ - "e-ink" - ] + "tags": ["e-ink"] }, { "id": "chibisafe", @@ -3159,11 +2525,7 @@ "website": "https://chibisafe.app", "docs": "https://chibisafe.app/docs/intro" }, - "tags": [ - "media system", - "storage", - "file-sharing" - ] + "tags": ["media system", "storage", "file-sharing"] }, { "id": "rybbit", @@ -3176,9 +2538,7 @@ "website": "https://rybbit.io", "docs": "https://www.rybbit.io/docs" }, - "tags": [ - "analytics" - ] + "tags": ["analytics"] }, { "id": "seafile", @@ -3191,11 +2551,7 @@ "website": "https://seafile.com", "docs": "https://manual.seafile.com/12.0" }, - "tags": [ - "file-manager", - "file-sharing", - "storage" - ] + "tags": ["file-manager", "file-sharing", "storage"] }, { "id": "flagsmith", @@ -3226,9 +2582,7 @@ "website": "https://www.docuseal.com/", "docs": "https://www.docuseal.com/" }, - "tags": [ - "document-signing" - ] + "tags": ["document-signing"] }, { "id": "kutt", @@ -3241,10 +2595,7 @@ "website": "https://kutt.it", "docs": "https://github.com/thedevs-network/kutt#kuttit" }, - "tags": [ - "link-shortener", - "link-sharing" - ] + "tags": ["link-shortener", "link-sharing"] }, { "id": "kener", @@ -3257,12 +2608,7 @@ "website": "https://kener.ing/", "docs": "https://kener.ing/docs/" }, - "tags": [ - "monitoring", - "status-page", - "alerting", - "self-hosted" - ] + "tags": ["monitoring", "status-page", "alerting", "self-hosted"] }, { "id": "palmr", @@ -3275,11 +2621,7 @@ "website": "https://palmr.kyantech.com.br/", "docs": "https://palmr.kyantech.com.br/docs/3.0-beta" }, - "tags": [ - "file-sharing", - "self-hosted", - "open-source" - ] + "tags": ["file-sharing", "self-hosted", "open-source"] }, { "id": "karakeep", @@ -3361,12 +2703,7 @@ "website": "https://github.com/aldinokemal/go-whatsapp-web-multidevice", "docs": "https://github.com/aldinokemal/go-whatsapp-web-multidevice" }, - "tags": [ - "whatsapp", - "self-hosted", - "open-source", - "api" - ] + "tags": ["whatsapp", "self-hosted", "open-source", "api"] }, { "id": "rabbitmq", @@ -3379,11 +2716,7 @@ "website": "https://www.rabbitmq.com/", "docs": "https://www.rabbitmq.com/documentation.html" }, - "tags": [ - "message-broker", - "queue", - "rabbitmq" - ] + "tags": ["message-broker", "queue", "rabbitmq"] }, { "id": "ezbookkeeping", @@ -3439,11 +2772,7 @@ "website": "https://gchq.github.io/CyberChef/", "docs": "https://github.com/gchq/CyberChef/wiki" }, - "tags": [ - "security", - "encryption", - "data-analysis" - ] + "tags": ["security", "encryption", "data-analysis"] }, { "id": "filestash", @@ -3469,13 +2798,7 @@ "website": "https://github.com/civilblur/mazanoke", "docs": "https://github.com/civilblur/mazanoke" }, - "tags": [ - "image-hosting", - "file-sharing", - "self-hosted", - "media", - "gallery" - ] + "tags": ["image-hosting", "file-sharing", "self-hosted", "media", "gallery"] }, { "id": "ihatemoney", @@ -3553,12 +2876,7 @@ "website": "https://github.com/thomiceli/opengist", "docs": "https://github.com/thomiceli/opengist" }, - "tags": [ - "pastebin", - "code", - "snippets", - "self-hosted" - ] + "tags": ["pastebin", "code", "snippets", "self-hosted"] }, { "id": "snapp", @@ -3571,12 +2889,7 @@ "website": "https://github.com/UraniaDev/snapp", "docs": "https://github.com/UraniaDev/snapp" }, - "tags": [ - "screenshot", - "sharing", - "self-hosted", - "authentication" - ] + "tags": ["screenshot", "sharing", "self-hosted", "authentication"] }, { "id": "commafeed", @@ -3589,11 +2902,7 @@ "website": "https://www.commafeed.com/", "docs": "https://github.com/Athou/commafeed/wiki" }, - "tags": [ - "feed-reader", - "news-aggregator", - "rss" - ] + "tags": ["feed-reader", "news-aggregator", "rss"] }, { "id": "convertx", @@ -3606,11 +2915,7 @@ "website": "https://github.com/c4illin/ConvertX", "docs": "https://github.com/c4illin/ConvertX#environment-variables" }, - "tags": [ - "media", - "converter", - "ffmpeg" - ] + "tags": ["media", "converter", "ffmpeg"] }, { "id": "metube", @@ -3623,11 +2928,7 @@ "website": "https://github.com/alexta69/metube", "docs": "https://github.com/alexta69/metube/wiki" }, - "tags": [ - "downloader", - "youtube", - "media" - ] + "tags": ["downloader", "youtube", "media"] }, { "id": "pinchflat", @@ -3640,11 +2941,7 @@ "website": "https://github.com/kieraneglin/pinchflat", "docs": "https://github.com/kieraneglin/pinchflat" }, - "tags": [ - "youtube", - "downloader", - "media" - ] + "tags": ["youtube", "downloader", "media"] }, { "id": "yt-dlp-webui", @@ -3657,12 +2954,7 @@ "website": "https://github.com/marcopiovanello/yt-dlp-web-ui", "docs": "https://github.com/marcopiovanello/yt-dlp-web-ui" }, - "tags": [ - "downloader", - "youtube", - "media", - "webui" - ] + "tags": ["downloader", "youtube", "media", "webui"] }, { "id": "flaresolverr", @@ -3675,12 +2967,7 @@ "website": "https://github.com/FlareSolverr/FlareSolverr", "docs": "https://github.com/FlareSolverr/FlareSolverr" }, - "tags": [ - "proxy", - "cloudflare", - "bypass", - "ddos-guard" - ] + "tags": ["proxy", "cloudflare", "bypass", "ddos-guard"] }, { "id": "neko", @@ -3693,12 +2980,7 @@ "website": "https://github.com/m1k1o/neko", "docs": "https://github.com/m1k1o/neko" }, - "tags": [ - "browser", - "virtual", - "sharing", - "remote" - ] + "tags": ["browser", "virtual", "sharing", "remote"] }, { "id": "omni-tools", @@ -3711,12 +2993,7 @@ "website": "https://github.com/iib0011/omni-tools", "docs": "https://github.com/iib0011/omni-tools" }, - "tags": [ - "tools", - "utilities", - "collection", - "self-hosted" - ] + "tags": ["tools", "utilities", "collection", "self-hosted"] }, { "id": "openhands", @@ -3729,12 +3006,7 @@ "website": "https://github.com/all-hands-ai/OpenHands", "docs": "https://github.com/all-hands-ai/OpenHands" }, - "tags": [ - "ai", - "agents", - "llm", - "openai" - ] + "tags": ["ai", "agents", "llm", "openai"] }, { "id": "web-check", @@ -3747,12 +3019,7 @@ "website": "https://github.com/lissy93/web-check", "docs": "https://github.com/lissy93/web-check" }, - "tags": [ - "website-analyzer", - "security", - "performance", - "seo" - ] + "tags": ["website-analyzer", "security", "performance", "seo"] }, { "id": "dumbdrop", @@ -3765,11 +3032,7 @@ "website": "https://www.dumbware.io/software/DumbDrop/", "docs": "https://github.com/dumbwareio/dumbdrop" }, - "tags": [ - "file-sharing", - "self-hosted", - "simple" - ] + "tags": ["file-sharing", "self-hosted", "simple"] }, { "id": "dumbassets", @@ -3782,11 +3045,7 @@ "website": "https://www.dumbware.io/software/DumbAssets/", "docs": "https://github.com/dumbwareio/dumbassets" }, - "tags": [ - "asset-tracking", - "self-hosted", - "simple" - ] + "tags": ["asset-tracking", "self-hosted", "simple"] }, { "id": "dumbpad", @@ -3799,11 +3058,7 @@ "website": "https://www.dumbware.io/software/DumbPad/", "docs": "https://github.com/dumbwareio/dumbpad" }, - "tags": [ - "notepad", - "self-hosted", - "simple" - ] + "tags": ["notepad", "self-hosted", "simple"] }, { "id": "dumbbudget", @@ -3816,12 +3071,7 @@ "website": "https://www.dumbware.io/software/DumbBudget/", "docs": "https://github.com/dumbwareio/dumbbudget" }, - "tags": [ - "budget", - "finance", - "self-hosted", - "simple" - ] + "tags": ["budget", "finance", "self-hosted", "simple"] }, { "id": "tianji", @@ -3834,12 +3084,7 @@ "website": "https://github.com/msgbyte/tianji", "docs": "https://github.com/msgbyte/tianji" }, - "tags": [ - "analytics", - "monitoring", - "web", - "uptime" - ] + "tags": ["analytics", "monitoring", "web", "uptime"] }, { "id": "directory-lister", @@ -3852,11 +3097,7 @@ "website": "https://www.directorylister.com/", "docs": "https://docs.directorylister.com/" }, - "tags": [ - "file-manager", - "directory-listing", - "php" - ] + "tags": ["file-manager", "directory-listing", "php"] }, { "id": "grimoire", @@ -3869,11 +3110,7 @@ "website": "https://github.com/goniszewski/grimoire", "docs": "https://github.com/goniszewski/grimoire" }, - "tags": [ - "bookmarks", - "self-hosted", - "knowledge-management" - ] + "tags": ["bookmarks", "self-hosted", "knowledge-management"] }, { "id": "keycloak", @@ -3886,13 +3123,7 @@ "website": "https://www.keycloak.org/", "docs": "https://www.keycloak.org/documentation" }, - "tags": [ - "authentication", - "identity", - "sso", - "oauth2", - "openid-connect" - ] + "tags": ["authentication", "identity", "sso", "oauth2", "openid-connect"] }, { "id": "openpanel", @@ -3905,8 +3136,19 @@ "website": "https://openpanel.dev/", "docs": "https://openpanel.dev/docs" }, - "tags": [ - "analytics" - ] + "tags": ["analytics"] + }, + { + "id": "scrypted", + "name": "Scrypted", + "version": "latest", + "description": "Scrypted is a home automation platform that integrates with various smart home devices and provides NVR capabilities for video surveillance.", + "logo": "image.png", + "links": { + "github": "https://github.com/koush/scrypted", + "website": "https://www.scrypted.app/", + "docs": "https://docs.scrypted.app/" + }, + "tags": ["home-automation", "nvr", "smart-home", "surveillance"] } ]