From 4eb90fbfda19d1eeb04cde18e2c83d2a4082255d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 00:46:47 +0000 Subject: [PATCH 001/161] chore(deps): update frooodle/s-pdf docker tag to v0.23.0 (#3244) --- apps/stirling-pdf/config.json | 4 ++-- apps/stirling-pdf/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/stirling-pdf/config.json b/apps/stirling-pdf/config.json index 0b1a133b..5612139c 100644 --- a/apps/stirling-pdf/config.json +++ b/apps/stirling-pdf/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "stirling-pdf", - "tipi_version": 30, - "version": "0.22.8", + "tipi_version": 31, + "version": "0.23.0", "categories": [ "data", "utilities" diff --git a/apps/stirling-pdf/docker-compose.yml b/apps/stirling-pdf/docker-compose.yml index f2b8c400..4a52d6fe 100644 --- a/apps/stirling-pdf/docker-compose.yml +++ b/apps/stirling-pdf/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.9" services: stirling-pdf: - image: frooodle/s-pdf:0.22.8 + image: frooodle/s-pdf:0.23.0 restart: unless-stopped container_name: stirling-pdf privileged: true From ed4a0cdeeeb52731479d1a2dce36971f66204bda Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 00:46:53 +0000 Subject: [PATCH 002/161] chore(deps): update ghcr.io/advplyr/audiobookshelf docker tag to v2.9.0 (#3245) --- apps/audiobookshelf/config.json | 4 ++-- apps/audiobookshelf/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/audiobookshelf/config.json b/apps/audiobookshelf/config.json index 44cd9c5b..bb9d5a55 100644 --- a/apps/audiobookshelf/config.json +++ b/apps/audiobookshelf/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 13378, "id": "audiobookshelf", - "tipi_version": 13, - "version": "2.8.1", + "tipi_version": 14, + "version": "2.9.0", "categories": [ "books", "media" diff --git a/apps/audiobookshelf/docker-compose.yml b/apps/audiobookshelf/docker-compose.yml index 13480935..ed963a1b 100644 --- a/apps/audiobookshelf/docker-compose.yml +++ b/apps/audiobookshelf/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.7' services: audiobookshelf: container_name: audiobookshelf - image: ghcr.io/advplyr/audiobookshelf:2.8.1 + image: ghcr.io/advplyr/audiobookshelf:2.9.0 restart: unless-stopped ports: - ${APP_PORT}:80 From 6f7b34e55ce11324105182dcb124b33a6e31900a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 07:45:12 +0000 Subject: [PATCH 003/161] chore(deps): update lobehub/lobe-chat docker tag to v0.148.5 (#3246) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index c9f424d9..a7eac5ed 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 105, - "version": "0.148.4", + "tipi_version": 106, + "version": "0.148.5", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 578fb490..e07ed624 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.148.4 + image: lobehub/lobe-chat:v0.148.5 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 658902bda7537f6b02d9a1bfeb0c6fbdea5a50a6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 07:45:18 +0000 Subject: [PATCH 004/161] chore(deps): update 1dev/server docker tag to v10.5.0 (#3247) --- apps/onedev/config.json | 4 ++-- apps/onedev/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/onedev/config.json b/apps/onedev/config.json index 4f662500..5b48f053 100644 --- a/apps/onedev/config.json +++ b/apps/onedev/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "onedev", - "tipi_version": 87, - "version": "10.4.0", + "tipi_version": 88, + "version": "10.5.0", "categories": [ "development" ], diff --git a/apps/onedev/docker-compose.yml b/apps/onedev/docker-compose.yml index 7f623b4f..3df86232 100644 --- a/apps/onedev/docker-compose.yml +++ b/apps/onedev/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: onedev: - image: 1dev/server:10.4.0 + image: 1dev/server:10.5.0 container_name: onedev environment: - hibernate_dialect=io.onedev.server.persistence.PostgreSQLDialect From 4565dcaf75236a586d781faa1c40be4d151bba5c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 14:50:47 +0000 Subject: [PATCH 005/161] chore(deps): update dockurr/windows docker tag to v2.16 (#3249) --- apps/windows/config.json | 4 ++-- apps/windows/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/windows/config.json b/apps/windows/config.json index b988ef8f..62a01345 100644 --- a/apps/windows/config.json +++ b/apps/windows/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "windows", "description": "Run windows in docker...because why not?", - "tipi_version": 14, - "version": "2.15", + "tipi_version": 15, + "version": "2.16", "categories": [ "utilities" ], diff --git a/apps/windows/docker-compose.yml b/apps/windows/docker-compose.yml index 146b4495..a2d81836 100644 --- a/apps/windows/docker-compose.yml +++ b/apps/windows/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.9" services: windows: container_name: windows - image: dockurr/windows:2.15 + image: dockurr/windows:2.16 restart: unless-stopped devices: - /dev/kvm From f0fa4d19557e325266805ea23186a16a059d03dd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 14:50:51 +0000 Subject: [PATCH 006/161] chore(deps): update lobehub/lobe-chat docker tag to v0.148.6 (#3248) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index a7eac5ed..79a028fc 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 106, - "version": "0.148.5", + "tipi_version": 107, + "version": "0.148.6", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index e07ed624..f03c6396 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.148.5 + image: lobehub/lobe-chat:v0.148.6 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From e678f118ea02059bb6a3ae759fbdf889bc5fe7d8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 16:21:16 +0000 Subject: [PATCH 007/161] chore(deps): update budibase/budibase docker tag to v2.23.11 (#3250) --- apps/budibase/config.json | 4 ++-- apps/budibase/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/budibase/config.json b/apps/budibase/config.json index 197aa71d..d25c28c4 100644 --- a/apps/budibase/config.json +++ b/apps/budibase/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "budibase", - "tipi_version": 126, - "version": "2.23.10", + "tipi_version": 127, + "version": "2.23.11", "categories": [ "development" ], diff --git a/apps/budibase/docker-compose.yml b/apps/budibase/docker-compose.yml index 0ef8b47b..7d7dd1c6 100644 --- a/apps/budibase/docker-compose.yml +++ b/apps/budibase/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.7' services: budibase: - image: budibase/budibase:2.23.10 + image: budibase/budibase:2.23.11 restart: unless-stopped container_name: budibase ports: From 6b6222b96fe89560f9c65d98edbf4fd8c47c361e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 16:21:20 +0000 Subject: [PATCH 008/161] chore(deps): update gladysassistant/gladys docker tag to v4.39.0 (#3251) --- apps/gladys/config.json | 4 ++-- apps/gladys/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/gladys/config.json b/apps/gladys/config.json index 61ccc879..388f90a5 100644 --- a/apps/gladys/config.json +++ b/apps/gladys/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": false, "id": "gladys", - "tipi_version": 32, - "version": "4.38.4", + "tipi_version": 33, + "version": "4.39.0", "categories": [ "automation" ], diff --git a/apps/gladys/docker-compose.yml b/apps/gladys/docker-compose.yml index 85790763..e1d967f5 100644 --- a/apps/gladys/docker-compose.yml +++ b/apps/gladys/docker-compose.yml @@ -3,7 +3,7 @@ version: '3' services: gladys: container_name: gladys - image: gladysassistant/gladys:v4.38.4 + image: gladysassistant/gladys:v4.39.0 privileged: true restart: on-failure stop_grace_period: 1m From 5029c1d86f076eedd3070a3971def7c459b2bc69 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 18:00:34 +0000 Subject: [PATCH 009/161] chore(deps): update libretranslate/libretranslate docker tag to v1.5.7 (#3252) --- apps/libretranslate/config.json | 4 ++-- apps/libretranslate/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/libretranslate/config.json b/apps/libretranslate/config.json index ecfab7ed..3d1b12e1 100644 --- a/apps/libretranslate/config.json +++ b/apps/libretranslate/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8121, "id": "libretranslate", - "tipi_version": 17, - "version": "1.5.6", + "tipi_version": 18, + "version": "1.5.7", "categories": [ "utilities" ], diff --git a/apps/libretranslate/docker-compose.yml b/apps/libretranslate/docker-compose.yml index f59a68e3..6b8d3406 100644 --- a/apps/libretranslate/docker-compose.yml +++ b/apps/libretranslate/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: libretranslate: container_name: libretranslate - image: libretranslate/libretranslate:v1.5.6 + image: libretranslate/libretranslate:v1.5.7 dns: - ${DNS_IP} ports: From 21d62782ff0dfe612920c1f1d0e0e08e2127a819 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 21:54:07 +0000 Subject: [PATCH 010/161] chore(deps): update jvmilazz0/kavita docker tag to v0.8.1 (#3253) --- apps/kavita/config.json | 4 ++-- apps/kavita/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/kavita/config.json b/apps/kavita/config.json index e6bc4125..03b10bc9 100644 --- a/apps/kavita/config.json +++ b/apps/kavita/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "kavita", - "tipi_version": 13, - "version": "0.8.0", + "tipi_version": 14, + "version": "0.8.1", "categories": [ "media" ], diff --git a/apps/kavita/docker-compose.yml b/apps/kavita/docker-compose.yml index 032c8ce7..42b46090 100644 --- a/apps/kavita/docker-compose.yml +++ b/apps/kavita/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.9" services: kavita: container_name: kavita - image: jvmilazz0/kavita:0.8.0 + image: jvmilazz0/kavita:0.8.1 ports: - ${APP_PORT}:5000 volumes: From cf37a5eb230a6f6dafb093c98b9be759e784e4b3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 21:54:14 +0000 Subject: [PATCH 011/161] chore(deps): update ghcr.io/plankanban/planka docker tag to v1.17.0 (#3254) --- apps/planka/config.json | 4 ++-- apps/planka/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/planka/config.json b/apps/planka/config.json index 326b7f35..f7e2a16e 100644 --- a/apps/planka/config.json +++ b/apps/planka/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "planka", - "tipi_version": 18, - "version": "1.16.4", + "tipi_version": 19, + "version": "1.17.0", "categories": [ "development" ], diff --git a/apps/planka/docker-compose.yml b/apps/planka/docker-compose.yml index f9306254..e4b470c2 100644 --- a/apps/planka/docker-compose.yml +++ b/apps/planka/docker-compose.yml @@ -2,7 +2,7 @@ version: '3' services: planka: - image: ghcr.io/plankanban/planka:1.16.4 + image: ghcr.io/plankanban/planka:1.17.0 container_name: planka command: > bash -c From 284c085e76fe5ad86eae155c40f0fb5cd8ccd372 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 01:50:23 +0000 Subject: [PATCH 012/161] chore(deps): update activepieces/activepieces docker tag to v0.25.0 (#3255) --- apps/activepieces/config.json | 4 ++-- apps/activepieces/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/activepieces/config.json b/apps/activepieces/config.json index 20d1a003..32590c8b 100644 --- a/apps/activepieces/config.json +++ b/apps/activepieces/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "activepieces", "description": "Your friendliest open source all-in-one automation tool.", - "tipi_version": 22, - "version": "0.24.1", + "tipi_version": 23, + "version": "0.25.0", "categories": [ "automation" ], diff --git a/apps/activepieces/docker-compose.yml b/apps/activepieces/docker-compose.yml index bdb79ab0..408ea591 100644 --- a/apps/activepieces/docker-compose.yml +++ b/apps/activepieces/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.7' services: activepieces: - image: activepieces/activepieces:0.24.1 + image: activepieces/activepieces:0.25.0 container_name: activepieces restart: unless-stopped ports: From 2022448eb774f47aeb860b1eefe249c4e64735b9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 08:07:10 +0000 Subject: [PATCH 013/161] chore(deps): update halohub/halo docker tag to v2.14.1 (#3256) --- apps/halo/config.json | 4 ++-- apps/halo/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/halo/config.json b/apps/halo/config.json index 2da83739..372fa1f4 100644 --- a/apps/halo/config.json +++ b/apps/halo/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8092, "id": "halo", - "tipi_version": 24, - "version": "2.14.0", + "tipi_version": 25, + "version": "2.14.1", "description": "Halo is a powerful and easy-to-use open source website building tool.", "short_desc": "Halo - Open source website building tool.", "categories": [ diff --git a/apps/halo/docker-compose.yml b/apps/halo/docker-compose.yml index 8c6e9562..ac53b7af 100644 --- a/apps/halo/docker-compose.yml +++ b/apps/halo/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: halo: - image: halohub/halo:2.14.0 + image: halohub/halo:2.14.1 container_name: halo restart: unless-stopped depends_on: From 7bad161d17dd3a166a698b8ca814bb2962a903c6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 08:07:14 +0000 Subject: [PATCH 014/161] chore(deps): update lobehub/lobe-chat docker tag to v0.148.8 (#3257) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 79a028fc..68a7dc8d 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 107, - "version": "0.148.6", + "tipi_version": 108, + "version": "0.148.8", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index f03c6396..7f1365ff 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.148.6 + image: lobehub/lobe-chat:v0.148.8 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From bb85594efd876e3a34a883e3ad328ab62033fec4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 11:51:20 +0000 Subject: [PATCH 015/161] chore(deps): update activepieces/activepieces docker tag to v0.25.1 (#3259) --- apps/activepieces/config.json | 4 ++-- apps/activepieces/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/activepieces/config.json b/apps/activepieces/config.json index 32590c8b..58a27eff 100644 --- a/apps/activepieces/config.json +++ b/apps/activepieces/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "activepieces", "description": "Your friendliest open source all-in-one automation tool.", - "tipi_version": 23, - "version": "0.25.0", + "tipi_version": 24, + "version": "0.25.1", "categories": [ "automation" ], diff --git a/apps/activepieces/docker-compose.yml b/apps/activepieces/docker-compose.yml index 408ea591..bfc355a2 100644 --- a/apps/activepieces/docker-compose.yml +++ b/apps/activepieces/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.7' services: activepieces: - image: activepieces/activepieces:0.25.0 + image: activepieces/activepieces:0.25.1 container_name: activepieces restart: unless-stopped ports: From 0485a26b3d1f52e86749713f15b4525a89cce06f Mon Sep 17 00:00:00 2001 From: Adelina Date: Tue, 23 Apr 2024 16:53:08 +0200 Subject: [PATCH 016/161] add: Cheshire Cat AI app (#3073) * add: Cheshire Cat AI app meow * fix(cheshire-cat-ai): fix some small config options --------- Co-authored-by: Stavros --- apps/cheshire-cat-ai/config.json | 23 ++++++ apps/cheshire-cat-ai/docker-compose.yml | 45 +++++++++++ apps/cheshire-cat-ai/metadata/description.md | 78 +++++++++++++++++++ apps/cheshire-cat-ai/metadata/logo.jpg | Bin 0 -> 18860 bytes 4 files changed, 146 insertions(+) create mode 100644 apps/cheshire-cat-ai/config.json create mode 100644 apps/cheshire-cat-ai/docker-compose.yml create mode 100644 apps/cheshire-cat-ai/metadata/description.md create mode 100644 apps/cheshire-cat-ai/metadata/logo.jpg diff --git a/apps/cheshire-cat-ai/config.json b/apps/cheshire-cat-ai/config.json new file mode 100644 index 00000000..e829f767 --- /dev/null +++ b/apps/cheshire-cat-ai/config.json @@ -0,0 +1,23 @@ +{ + "name": "Cheshire Cat AI", + "available": true, + "port": 1865, + "exposable": true, + "id": "cheshire-cat-ai", + "description": "The Cheshire Cat is an open-source, hackable and production-ready framework that allows developing intelligent personal AI assistant agents on top of Large Language Models (LLM).", + "tipi_version": 1, + "version": "1.5.3", + "categories": [ + "ai" + ], + "short_desc": "A production-ready AI framework to develop AI agents.", + "author": "pieroit", + "source": "https://github.com/cheshire-cat-ai/core", + "website": "https://cheshirecat.ai", + "form_fields": [], + "url_suffix": "/admin", + "supported_architectures": [ + "amd64", + "arm64" + ] + } \ No newline at end of file diff --git a/apps/cheshire-cat-ai/docker-compose.yml b/apps/cheshire-cat-ai/docker-compose.yml new file mode 100644 index 00000000..488b0d82 --- /dev/null +++ b/apps/cheshire-cat-ai/docker-compose.yml @@ -0,0 +1,45 @@ +version: '3.7' + +services: + cheshire-cat-ai: + networks: + - tipi_main_network + image: ghcr.io/cheshire-cat-ai/core:1.5.3 + container_name: cheshire-cat-ai + ports: + - ${APP_PORT}:80 + environment: + - PYTHONUNBUFFERED=1 + - WATCHFILES_FORCE_POLLING=true + volumes: + - ${APP_DATA_DIR}/data/static:/app/cat/static + - ${APP_DATA_DIR}/data/plugins:/app/cat/plugins + - ${APP_DATA_DIR}/data/data:/app/cat/data + labels: + # Main + traefik.enable: true + traefik.http.middlewares.cheshire-web-redirect.redirectscheme.scheme: https + traefik.http.services.cheshire.loadbalancer.server.port: 1865 + # Web + traefik.http.routers.cheshire-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.cheshire-insecure.entrypoints: web + traefik.http.routers.cheshire-insecure.service: cheshire-cat-ai + traefik.http.routers.cheshire-insecure.middlewares: cheshire-cat-ai-web-redirect + # Websecure + traefik.http.routers.cheshire.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.cheshire.entrypoints: websecure + traefik.http.routers.cheshire.service: cheshire-cat-ai + traefik.http.routers.cheshire.tls.certresolver: myresolver + # Local domain + traefik.http.routers.cheshire-local-insecure.rule: Host(`cheshire-cat-ai.${LOCAL_DOMAIN}`) + traefik.http.routers.cheshire-local-insecure.entrypoints: web + traefik.http.routers.cheshire-local-insecure.service: cheshire-cat-ai + traefik.http.routers.cheshire-local-insecure.middlewares: cheshire-cat-ai-web-redirect + # Local domain secure + traefik.http.routers.cheshire-local.rule: Host(`cheshire-cat-ai.${LOCAL_DOMAIN}`) + traefik.http.routers.cheshire-local.entrypoints: websecure + traefik.http.routers.cheshire-local.service: cheshire-cat-ai + traefik.http.routers.cheshire-local.tls: true +networks: + tipi-main-network: + driver: bridge \ No newline at end of file diff --git a/apps/cheshire-cat-ai/metadata/description.md b/apps/cheshire-cat-ai/metadata/description.md new file mode 100644 index 00000000..319f1c24 --- /dev/null +++ b/apps/cheshire-cat-ai/metadata/description.md @@ -0,0 +1,78 @@ + + +
+
+

Cheshire-Cat (Stregatto)

+
+ + GitHub Repo stars + + + chat on Discord + + GitHub issues + + + GitHub tag (with filter) + + GitHub top language + +

+ Wikipedia picture of the Cheshire Cat +

+ +
+ +## Production-ready AI assistant framework + +The Cheshire Cat is a framework to build custom AIs on top of any language model. +If you have ever used systems like WordPress or Django to build web apps, imagine the Cat as a similar tool, but specific for AI. + +## Docs and Resources + +- [Official Documentation](https://cheshire-cat-ai.github.io/docs/) +- [Discord Server](https://discord.gg/bHX5sNFCYU) +- [Website](https://cheshirecat.ai/) +- [YouTube tutorial - How to install](https://youtu.be/Rvx19TZBCrw) +- [Tutorial - Write your first plugin](https://cheshirecat.ai/write-your-first-plugin/) + +## Why using the Cat + +- โšก๏ธ API first, so you get a microservice to easily add a conversational layer to your app +- ๐Ÿ˜ Remembers conversations and documents and uses them in conversation +- ๐Ÿš€ Extensible via plugins (public plugin registry + private plugins allowed) +- ๐ŸŽš Event callbacks, function calling (tools), conversational forms +- ๐Ÿ› Easy to use admin panel (chat, visualize memory and plugins, adjust settings) +- ๐ŸŒ Supports any language model (works with OpenAI, Google, Ollama, HuggingFace, custom services) +- ๐Ÿ‹ Production-ready - 100% [dockerized](https://docs.docker.com/get-docker/) +- ๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ Active [Discord community](https://discord.gg/bHX5sNFCYU) and easy to understand [docs](https://cheshire-cat-ai.github.io/docs/) + +We are committed to openness, privacy and creativity, we want to bring AI to the long tail. To learn more about our vision and values, read the [Code of Ethics](https://cheshirecat.ai/code-of-ethics/). + + +## Roadmap & Contributing + +The Detailed roadmap is [here](https://github.com/cheshire-cat-ai/core/blob/main/readme/ROADMAP.md). +Send your pull request to the `develop` branch. Here is a [full guide to contributing](https://github.com/cheshire-cat-ai/core/blob/main/readme/CONTRIBUTING.md). + +Join our [community on Discord](https://discord.gg/bHX5sNFCYU) and give the project a star โญ! +Thanks again!๐Ÿ™ + +## Which way to go? + +

(back to top)

+ +

+ Wikipedia picture of the Cheshire Cat +

+ +``` +"Would you tell me, please, which way I ought to go from here?" +"That depends a good deal on where you want to get to," said the Cat. +"I don't much care where--" said Alice. +"Then it doesn't matter which way you go," said the Cat. + +(Alice's Adventures in Wonderland - Lewis Carroll) + +``` diff --git a/apps/cheshire-cat-ai/metadata/logo.jpg b/apps/cheshire-cat-ai/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..de860cb83edaaadffdd282c11f0e99e05e9ade51 GIT binary patch literal 18860 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 Date: Tue, 23 Apr 2024 15:41:22 +0000 Subject: [PATCH 017/161] chore(deps): update ghcr.io/plankanban/planka docker tag to v1.17.1 (#3262) --- apps/planka/config.json | 4 ++-- apps/planka/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/planka/config.json b/apps/planka/config.json index f7e2a16e..ecc4ee00 100644 --- a/apps/planka/config.json +++ b/apps/planka/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "planka", - "tipi_version": 19, - "version": "1.17.0", + "tipi_version": 20, + "version": "1.17.1", "categories": [ "development" ], diff --git a/apps/planka/docker-compose.yml b/apps/planka/docker-compose.yml index e4b470c2..46eee00b 100644 --- a/apps/planka/docker-compose.yml +++ b/apps/planka/docker-compose.yml @@ -2,7 +2,7 @@ version: '3' services: planka: - image: ghcr.io/plankanban/planka:1.17.0 + image: ghcr.io/plankanban/planka:1.17.1 container_name: planka command: > bash -c From 079149d1410b19051120c1b0bd1c4a98e6c466c3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 19:34:18 +0000 Subject: [PATCH 018/161] chore(deps): update lobehub/lobe-chat docker tag to v0.148.9 (#3264) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 68a7dc8d..2e99b201 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 108, - "version": "0.148.8", + "tipi_version": 109, + "version": "0.148.9", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 7f1365ff..3647f101 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.148.8 + image: lobehub/lobe-chat:v0.148.9 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 732827a54c6b66cc53be879f5d9649d97bebcd80 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 19:36:34 +0000 Subject: [PATCH 019/161] chore(deps): update ghostfolio/ghostfolio docker tag to v2.76.0 (#3265) --- apps/ghostfolio/config.json | 4 ++-- apps/ghostfolio/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/ghostfolio/config.json b/apps/ghostfolio/config.json index 2eed9503..fdbd5471 100644 --- a/apps/ghostfolio/config.json +++ b/apps/ghostfolio/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "ghostfolio", - "tipi_version": 76, - "version": "2.75.1", + "tipi_version": 77, + "version": "2.76.0", "categories": [ "finance" ], diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index 7b9a8e10..e1c108e4 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.9" services: ghostfolio: container_name: ghostfolio - image: ghostfolio/ghostfolio:2.75.1 + image: ghostfolio/ghostfolio:2.76.0 restart: unless-stopped ports: - ${APP_PORT}:3333 From 59be968a6e19fe89196849f64a1c071f0477eb25 Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Tue, 23 Apr 2024 22:12:50 +0200 Subject: [PATCH 020/161] fix(archivebox): downgrade from bugged version 0.7.4 --- apps/archivebox/config.json | 13 ++++--------- apps/archivebox/docker-compose.yml | 2 +- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/apps/archivebox/config.json b/apps/archivebox/config.json index 4b12a8ba..29112310 100755 --- a/apps/archivebox/config.json +++ b/apps/archivebox/config.json @@ -5,11 +5,9 @@ "exposable": true, "port": 8015, "id": "archivebox", - "tipi_version": 2, - "version": "0.7.4", - "categories": [ - "media" - ], + "tipi_version": 3, + "version": "0.7.2", + "categories": ["media"], "description": "ArchiveBox is a powerful, self-hosted internet archiving solution to collect, save, and view websites offline.", "short_desc": "Open source self-hosted web archiving.", "author": "archivebox", @@ -33,8 +31,5 @@ "env_variable": "ARCHIVEBOX_PASSWORD" } ], - "supported_architectures": [ - "arm64", - "amd64" - ] + "supported_architectures": ["arm64", "amd64"] } diff --git a/apps/archivebox/docker-compose.yml b/apps/archivebox/docker-compose.yml index 0b626778..e2774ae7 100755 --- a/apps/archivebox/docker-compose.yml +++ b/apps/archivebox/docker-compose.yml @@ -1,6 +1,6 @@ services: archivebox: - image: archivebox/archivebox:0.7.4 + image: archivebox/archivebox:0.7.2 restart: unless-stopped container_name: archivebox command: server --quick-init 0.0.0.0:8015 From b8ffee6b4f35096c75b42ee0d31fcbda8ea3ef7e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 22:17:14 +0200 Subject: [PATCH 021/161] chore(deps): bump actions/checkout from 4.1.2 to 4.1.3 (#3220) Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.2 to 4.1.3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4.1.2...v4.1.3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yml | 2 +- .github/workflows/readme-generator.yml | 2 +- .github/workflows/renovate-ci.yml | 6 +++--- .github/workflows/renovate.yml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 605cffa6..8764cf67 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.1.2 + uses: actions/checkout@v4.1.3 - name: Install Node.js uses: actions/setup-node@v4 diff --git a/.github/workflows/readme-generator.yml b/.github/workflows/readme-generator.yml index bcb8cac3..a29bade1 100644 --- a/.github/workflows/readme-generator.yml +++ b/.github/workflows/readme-generator.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4.1.2 + uses: actions/checkout@v4.1.3 - name: Install Bun uses: oven-sh/setup-bun@v1 diff --git a/.github/workflows/renovate-ci.yml b/.github/workflows/renovate-ci.yml index c6085914..15c69f88 100644 --- a/.github/workflows/renovate-ci.yml +++ b/.github/workflows/renovate-ci.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.1.2 + uses: actions/checkout@v4.1.3 - name: Get last commit message id: get-last-commit-message @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.1.2 + uses: actions/checkout@v4.1.3 with: fetch-depth: 0 token: ${{ secrets.PERSONAL_TOKEN }} @@ -58,7 +58,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.1.2 + uses: actions/checkout@v4.1.3 - name: Install Node.js uses: actions/setup-node@v4 diff --git a/.github/workflows/renovate.yml b/.github/workflows/renovate.yml index 6bd5b2cb..f16db7d9 100644 --- a/.github/workflows/renovate.yml +++ b/.github/workflows/renovate.yml @@ -23,7 +23,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.1.2 + uses: actions/checkout@v4.1.3 - name: Self-hosted Renovate uses: renovatebot/github-action@v40.1.9 with: From 35c997dd17042de17285ad6904ce04a0db13f7fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 22:17:30 +0200 Subject: [PATCH 022/161] chore(deps-dev): bump eslint-plugin-json-schema-validator (#3022) Bumps [eslint-plugin-json-schema-validator](https://github.com/ota-meshi/eslint-plugin-json-schema-validator) from 4.8.3 to 5.1.0. - [Release notes](https://github.com/ota-meshi/eslint-plugin-json-schema-validator/releases) - [Changelog](https://github.com/ota-meshi/eslint-plugin-json-schema-validator/blob/main/CHANGELOG.md) - [Commits](https://github.com/ota-meshi/eslint-plugin-json-schema-validator/compare/v4.8.3...v5.1.0) --- updated-dependencies: - dependency-name: eslint-plugin-json-schema-validator dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 45 ++++++++------------------------------------- 2 files changed, 9 insertions(+), 38 deletions(-) diff --git a/package.json b/package.json index bc01723b..ff81ac24 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@types/semver": "^7.5.8", "commitizen": "^4.3.0", "eslint": "^8.57.0", - "eslint-plugin-json-schema-validator": "^4.8.3", + "eslint-plugin-json-schema-validator": "^5.1.0", "eslint-plugin-jsonc": "^2.15.1", "husky": "^9.0.11", "jest": "^28.1.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 49a1b14b..5146a7e3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,8 +33,8 @@ devDependencies: specifier: ^8.57.0 version: 8.57.0 eslint-plugin-json-schema-validator: - specifier: ^4.8.3 - version: 4.8.3(eslint@8.57.0) + specifier: ^5.1.0 + version: 5.1.0(eslint@8.57.0) eslint-plugin-jsonc: specifier: ^2.15.1 version: 2.15.1(eslint@8.57.0) @@ -1080,15 +1080,6 @@ packages: uri-js: 4.4.1 dev: true - /ajv@8.11.0: - resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - dev: true - /ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} dependencies: @@ -1700,16 +1691,6 @@ packages: engines: {node: '>=10'} dev: true - /eslint-compat-utils@0.4.1(eslint@8.57.0): - resolution: {integrity: sha512-5N7ZaJG5pZxUeNNJfUchurLVrunD1xJvyg5kYOIVF8kg1f3ajTikmAu/5fZ9w100omNPOoMjngRszh/Q/uFGMg==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - dependencies: - eslint: 8.57.0 - semver: 7.6.0 - dev: true - /eslint-compat-utils@0.5.0(eslint@8.57.0): resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==} engines: {node: '>=12'} @@ -1720,19 +1701,19 @@ packages: semver: 7.6.0 dev: true - /eslint-plugin-json-schema-validator@4.8.3(eslint@8.57.0): - resolution: {integrity: sha512-F4S6Aw7l/9NzB8E0CAbjiSlXWqDiK3rIiw0I+Jdp+qr/wN1yTg7HkJgeWX4mNnlDMDzydymYy2uuKmNaWUV/hA==} + /eslint-plugin-json-schema-validator@5.1.0(eslint@8.57.0): + resolution: {integrity: sha512-ZmVyxRIjm58oqe2kTuy90PpmZPrrKvOjRPXKzq8WCgRgAkidCgm5X8domL2KSfadZ3QFAmifMgGTcVNhZ5ez2g==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - ajv: 8.11.0 + ajv: 8.12.0 debug: 4.3.4 eslint: 8.57.0 - eslint-compat-utils: 0.4.1(eslint@8.57.0) + eslint-compat-utils: 0.5.0(eslint@8.57.0) json-schema-migrate: 2.0.0 - jsonc-eslint-parser: 2.1.0 + jsonc-eslint-parser: 2.4.0 minimatch: 8.0.4 synckit: 0.9.0 toml-eslint-parser: 0.9.3 @@ -2916,7 +2897,7 @@ packages: /json-schema-migrate@2.0.0: resolution: {integrity: sha512-r38SVTtojDRp4eD6WsCqiE0eNDt4v1WalBXb9cyZYw9ai5cGtBwzRNWjHzJl38w6TxFkXAIA7h+fyX3tnrAFhQ==} dependencies: - ajv: 8.11.0 + ajv: 8.12.0 dev: true /json-schema-traverse@0.4.1: @@ -2937,16 +2918,6 @@ packages: hasBin: true dev: true - /jsonc-eslint-parser@2.1.0: - resolution: {integrity: sha512-qCRJWlbP2v6HbmKW7R3lFbeiVWHo+oMJ0j+MizwvauqnCV/EvtAeEeuCgoc/ErtsuoKgYB8U4Ih8AxJbXoE6/g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.11.3 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - semver: 7.6.0 - dev: true - /jsonc-eslint-parser@2.4.0: resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} From 30b18e262e6a3d500624914809939be621ea08c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 22:17:49 +0200 Subject: [PATCH 023/161] chore(deps-dev): bump the minor-patch-dev group with 2 updates (#3263) Bumps the minor-patch-dev group with 2 updates: [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) and [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional). Updates `@commitlint/cli` from 19.2.1 to 19.3.0 - [Release notes](https://github.com/conventional-changelog/commitlint/releases) - [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md) - [Commits](https://github.com/conventional-changelog/commitlint/commits/v19.3.0/@commitlint/cli) Updates `@commitlint/config-conventional` from 19.1.0 to 19.2.2 - [Release notes](https://github.com/conventional-changelog/commitlint/releases) - [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md) - [Commits](https://github.com/conventional-changelog/commitlint/commits/v19.2.2/@commitlint/config-conventional) --- updated-dependencies: - dependency-name: "@commitlint/cli" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor-patch-dev - dependency-name: "@commitlint/config-conventional" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor-patch-dev ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 4 +-- pnpm-lock.yaml | 71 +++++++++++++++++++++++++++----------------------- 2 files changed, 40 insertions(+), 35 deletions(-) diff --git a/package.json b/package.json index ff81ac24..a03e8ee7 100644 --- a/package.json +++ b/package.json @@ -20,8 +20,8 @@ }, "homepage": "https://github.com/meienberger/runtipi-appstore#readme", "devDependencies": { - "@commitlint/cli": "^19.2.1", - "@commitlint/config-conventional": "^19.1.0", + "@commitlint/cli": "^19.3.0", + "@commitlint/config-conventional": "^19.2.2", "@commitlint/cz-commitlint": "^19.2.0", "@types/jest": "^28.1.6", "@types/js-yaml": "^4.0.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5146a7e3..258ec0bc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,14 +6,14 @@ settings: devDependencies: '@commitlint/cli': - specifier: ^19.2.1 - version: 19.2.1(@types/node@20.12.7)(typescript@5.4.5) + specifier: ^19.3.0 + version: 19.3.0(@types/node@20.12.7)(typescript@5.4.5) '@commitlint/config-conventional': - specifier: ^19.1.0 - version: 19.1.0 + specifier: ^19.2.2 + version: 19.2.2 '@commitlint/cz-commitlint': specifier: ^19.2.0 - version: 19.2.0(@types/node@20.12.7)(commitizen@4.3.0)(inquirer@9.2.17)(typescript@5.4.5) + version: 19.2.0(@types/node@20.12.7)(commitizen@4.3.0)(inquirer@9.2.19)(typescript@5.4.5) '@types/jest': specifier: ^28.1.6 version: 28.1.6 @@ -75,11 +75,11 @@ packages: '@jridgewell/trace-mapping': 0.3.14 dev: true - /@babel/code-frame@7.24.1: - resolution: {integrity: sha512-bC49z4spJQR3j8vFtJBLqzyzFV0ciuL5HYX7qfSl3KEqeMVV+eTquRvmXxpvB0AMubRrvv7y5DILiLLPi57Ewg==} + /@babel/code-frame@7.24.2: + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.24.1 + '@babel/highlight': 7.24.2 picocolors: 1.0.0 dev: true @@ -93,7 +93,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.0 - '@babel/code-frame': 7.24.1 + '@babel/code-frame': 7.24.2 '@babel/generator': 7.18.9 '@babel/helper-compilation-targets': 7.18.9(@babel/core@7.18.9) '@babel/helper-module-transforms': 7.18.9 @@ -216,8 +216,8 @@ packages: - supports-color dev: true - /@babel/highlight@7.24.1: - resolution: {integrity: sha512-EPmDPxidWe/Ex+HTFINpvXdPHRmgSF3T8hGvzondYjmgzTQ/0EbLpSxyt+w3zzlYSk9cNBQNF9k0dT5Z2NiBjw==} + /@babel/highlight@7.24.2: + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.20 @@ -357,7 +357,7 @@ packages: resolution: {integrity: sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.1 + '@babel/code-frame': 7.24.2 '@babel/parser': 7.18.9 '@babel/types': 7.18.9 dev: true @@ -366,7 +366,7 @@ packages: resolution: {integrity: sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.1 + '@babel/code-frame': 7.24.2 '@babel/generator': 7.18.9 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.18.9 @@ -392,13 +392,13 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@commitlint/cli@19.2.1(@types/node@20.12.7)(typescript@5.4.5): - resolution: {integrity: sha512-cbkYUJsLqRomccNxvoJTyv5yn0bSy05BBizVyIcLACkRbVUqYorC351Diw/XFSWC/GtpwiwT2eOvQgFZa374bg==} + /@commitlint/cli@19.3.0(@types/node@20.12.7)(typescript@5.4.5): + resolution: {integrity: sha512-LgYWOwuDR7BSTQ9OLZ12m7F/qhNY+NpAyPBgo4YNMkACE7lGuUnuQq1yi9hz1KA4+3VqpOYl8H1rY/LYK43v7g==} engines: {node: '>=v18'} hasBin: true dependencies: - '@commitlint/format': 19.0.3 - '@commitlint/lint': 19.1.0 + '@commitlint/format': 19.3.0 + '@commitlint/lint': 19.2.2 '@commitlint/load': 19.2.0(@types/node@20.12.7)(typescript@5.4.5) '@commitlint/read': 19.2.1 '@commitlint/types': 19.0.3 @@ -409,8 +409,8 @@ packages: - typescript dev: true - /@commitlint/config-conventional@19.1.0: - resolution: {integrity: sha512-KIKD2xrp6Uuk+dcZVj3++MlzIr/Su6zLE8crEDQCZNvWHNQSeeGbzOlNtsR32TUy6H3JbP7nWgduAHCaiGQ6EA==} + /@commitlint/config-conventional@19.2.2: + resolution: {integrity: sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==} engines: {node: '>=v18'} dependencies: '@commitlint/types': 19.0.3 @@ -425,7 +425,7 @@ packages: ajv: 8.12.0 dev: true - /@commitlint/cz-commitlint@19.2.0(@types/node@20.12.7)(commitizen@4.3.0)(inquirer@9.2.17)(typescript@5.4.5): + /@commitlint/cz-commitlint@19.2.0(@types/node@20.12.7)(commitizen@4.3.0)(inquirer@9.2.19)(typescript@5.4.5): resolution: {integrity: sha512-kudzHMY9/GxflGyAWMiisiBq2UkyQL1D1eWjGKoC66qQ+5jxRYeDaiVwTdPxYMnmehftNcpksZATDYKqdPP0Wg==} engines: {node: '>=v18'} peerDependencies: @@ -437,7 +437,7 @@ packages: '@commitlint/types': 19.0.3 chalk: 5.3.0 commitizen: 4.3.0(@types/node@20.12.7)(typescript@5.4.5) - inquirer: 9.2.17 + inquirer: 9.2.19 lodash.isplainobject: 4.0.6 word-wrap: 1.2.5 transitivePeerDependencies: @@ -462,27 +462,27 @@ packages: engines: {node: '>=v18'} dev: true - /@commitlint/format@19.0.3: - resolution: {integrity: sha512-QjjyGyoiVWzx1f5xOteKHNLFyhyweVifMgopozSgx1fGNrGV8+wp7k6n1t6StHdJ6maQJ+UUtO2TcEiBFRyR6Q==} + /@commitlint/format@19.3.0: + resolution: {integrity: sha512-luguk5/aF68HiF4H23ACAfk8qS8AHxl4LLN5oxPc24H+2+JRPsNr1OS3Gaea0CrH7PKhArBMKBz5RX9sA5NtTg==} engines: {node: '>=v18'} dependencies: '@commitlint/types': 19.0.3 chalk: 5.3.0 dev: true - /@commitlint/is-ignored@19.0.3: - resolution: {integrity: sha512-MqDrxJaRSVSzCbPsV6iOKG/Lt52Y+PVwFVexqImmYYFhe51iVJjK2hRhOG2jUAGiUHk4jpdFr0cZPzcBkSzXDQ==} + /@commitlint/is-ignored@19.2.2: + resolution: {integrity: sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==} engines: {node: '>=v18'} dependencies: '@commitlint/types': 19.0.3 semver: 7.6.0 dev: true - /@commitlint/lint@19.1.0: - resolution: {integrity: sha512-ESjaBmL/9cxm+eePyEr6SFlBUIYlYpI80n+Ltm7IA3MAcrmiP05UMhJdAD66sO8jvo8O4xdGn/1Mt2G5VzfZKw==} + /@commitlint/lint@19.2.2: + resolution: {integrity: sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==} engines: {node: '>=v18'} dependencies: - '@commitlint/is-ignored': 19.0.3 + '@commitlint/is-ignored': 19.2.2 '@commitlint/parse': 19.0.3 '@commitlint/rules': 19.0.3 '@commitlint/types': 19.0.3 @@ -632,6 +632,11 @@ packages: resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} dev: true + /@inquirer/figures@1.0.1: + resolution: {integrity: sha512-mtup3wVKia3ZwULPHcbs4Mor8Voi+iIXEWD7wCNbIO6lYR62oPCTQyrddi5OMYVXHzeCSoneZwJuS8sBvlEwDw==} + engines: {node: '>=18'} + dev: true + /@istanbuljs/load-nyc-config@1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -2300,17 +2305,17 @@ packages: wrap-ansi: 7.0.0 dev: true - /inquirer@9.2.17: - resolution: {integrity: sha512-Vr3Ia2ud5sGnioURkE69endl4SkeJcMzTF6SosKcX5GALJfId7C+JvO5ZZb6y1LOXnEofCPbwzoQ1q0e8Gaduw==} + /inquirer@9.2.19: + resolution: {integrity: sha512-WpxOT71HGsFya6/mj5PUue0sWwbpbiPfAR+332zLj/siB0QA1PZM8v3GepegFV1Op189UxHUCF6y8AySdtOMVA==} engines: {node: '>=18'} dependencies: + '@inquirer/figures': 1.0.1 '@ljharb/through': 2.3.13 ansi-escapes: 4.3.2 chalk: 5.3.0 cli-cursor: 3.1.0 cli-width: 4.1.0 external-editor: 3.1.0 - figures: 3.2.0 lodash: 4.17.21 mute-stream: 1.0.0 ora: 5.4.1 @@ -2642,7 +2647,7 @@ packages: resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@babel/code-frame': 7.24.1 + '@babel/code-frame': 7.24.2 '@jest/types': 28.1.3 '@types/stack-utils': 2.0.1 chalk: 4.1.2 @@ -3275,7 +3280,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.24.1 + '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 From 5eea48bf9d291a41ef8fee29e742d87aef301548 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 20:20:31 +0000 Subject: [PATCH 024/161] chore(deps): update ghcr.io/home-assistant/home-assistant docker tag to v2024.4.4 (#3268) --- apps/homeassistant-1/config.json | 4 ++-- apps/homeassistant-1/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/homeassistant-1/config.json b/apps/homeassistant-1/config.json index 06ddd3a7..e9baf9b7 100644 --- a/apps/homeassistant-1/config.json +++ b/apps/homeassistant-1/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "homeassistant-1", - "tipi_version": 12, - "version": "2024.4.3", + "tipi_version": 13, + "version": "2024.4.4", "categories": [ "automation" ], diff --git a/apps/homeassistant-1/docker-compose.yml b/apps/homeassistant-1/docker-compose.yml index a740e228..79176e9e 100644 --- a/apps/homeassistant-1/docker-compose.yml +++ b/apps/homeassistant-1/docker-compose.yml @@ -2,7 +2,7 @@ version: '3' services: homeassistant-1: - image: ghcr.io/home-assistant/home-assistant:2024.4.3 + image: ghcr.io/home-assistant/home-assistant:2024.4.4 container_name: homeassistant-1 environment: - TZ=${TZ} From ce7c716d468f2a499ef9166a34d6244894f31a1b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 04:12:18 +0000 Subject: [PATCH 025/161] chore(deps): update lobehub/lobe-chat docker tag to v0.148.10 (#3269) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 2e99b201..1b9bef80 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 109, - "version": "0.148.9", + "tipi_version": 110, + "version": "0.148.10", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 3647f101..fc729922 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.148.9 + image: lobehub/lobe-chat:v0.148.10 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 6f32029a5471d1c1dc3b9a3a118fe8335c16e1f9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 08:37:03 +0000 Subject: [PATCH 026/161] chore(deps): update dullage/flatnotes docker tag to v4.0.4 (#3270) --- apps/flatnotes/config.json | 4 ++-- apps/flatnotes/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/flatnotes/config.json b/apps/flatnotes/config.json index f8a86993..38995cdd 100644 --- a/apps/flatnotes/config.json +++ b/apps/flatnotes/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "flatnotes", "port": 8137, - "tipi_version": 20, - "version": "4.0.3", + "tipi_version": 21, + "version": "4.0.4", "categories": [ "utilities" ], diff --git a/apps/flatnotes/docker-compose.yml b/apps/flatnotes/docker-compose.yml index 1dd17399..9a6a1546 100644 --- a/apps/flatnotes/docker-compose.yml +++ b/apps/flatnotes/docker-compose.yml @@ -3,7 +3,7 @@ version: "3" services: flatnotes: container_name: flatnotes - image: dullage/flatnotes:v4.0.3 + image: dullage/flatnotes:v4.0.4 environment: FLATNOTES_AUTH_TYPE: ${FLATNOTES_AUTH_TYPE} FLATNOTES_USERNAME: ${FLATNOTES_USERNAME} From 9bd42f28011348d24a5f582ed7a7f2f967c8dd77 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 08:40:37 +0000 Subject: [PATCH 027/161] chore(deps): update lobehub/lobe-chat docker tag to v0.149.0 (#3271) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 1b9bef80..8bb6b4a9 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 110, - "version": "0.148.10", + "tipi_version": 111, + "version": "0.149.0", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index fc729922..d34d395d 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.148.10 + image: lobehub/lobe-chat:v0.149.0 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 511c28150b61f83447e418524ec526d587d7105b Mon Sep 17 00:00:00 2001 From: "Hunam (Elie TD)" Date: Wed, 24 Apr 2024 12:35:04 +0300 Subject: [PATCH 028/161] feat(app): add AFFiNE (#3069) * feat: add AFFiNE * fix: add min and max values to password field * dezoom logo * fix password error message * change password requirements and error message * change version to "stable" * fix password min max in accordance to the regex validator Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * add supported architectures * refactor(affine): small changes in compose file * fix(affine): change container names --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Stavros --- apps/affine/config.json | 53 ++++++++++++++++ apps/affine/docker-compose.yml | 91 ++++++++++++++++++++++++++++ apps/affine/metadata/description.md | 23 +++++++ apps/affine/metadata/logo.jpg | Bin 0 -> 49152 bytes 4 files changed, 167 insertions(+) create mode 100644 apps/affine/config.json create mode 100644 apps/affine/docker-compose.yml create mode 100755 apps/affine/metadata/description.md create mode 100644 apps/affine/metadata/logo.jpg diff --git a/apps/affine/config.json b/apps/affine/config.json new file mode 100644 index 00000000..e3847cce --- /dev/null +++ b/apps/affine/config.json @@ -0,0 +1,53 @@ +{ + "name": "AFFiNE", + "id": "affine", + "available": true, + "short_desc": "AFFiNE is a workspace with fully merged docs, whiteboards and databases.", + "author": "https://github.com/toeverything", + "port": 3010, + "categories": [ + "utilities" + ], + "description": "AFFiNE is a workspace with fully merged docs, whiteboards and databases. A privacy-focused, local-first, open-source, and ready-to-use alternative for Notion & Miro. Docs, canvas and tables are hyper-merged with AFFiNE - just like the word affine", + "tipi_version": 1, + "version": "stable", + "source": "https://github.com/toeverything/affine", + "website": "https://affine.pro", + "exposable": true, + "form_fields": [ + { + "env_variable": "AFFINE_ADMIN_EMAIL", + "label": "Admin Email", + "pattern_error": "Invalid email", + "regex": "^[\\w\\-\\.]+@([\\w-]+\\.)+[\\w-]{2,}$", + "required": true, + "type": "text" + }, + { + "env_variable": "AFFINE_ADMIN_PASSWORD", + "label": "Admin Password", + "pattern_error": "Invalid password: Must have 1 lowercase, 1 uppercase, 1 special character, 1 digit and no $.", + "regex": "^(?=.*\\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[^\\w\\d\\s:])([^\\s$]){8,128}$", + "required": true, + "type": "password", + "min": 8, + "max": 128 + }, + { + "env_variable": "AFFINE_TELEMETRY_ENABLE", + "label": "Enable affine telemetry?", + "required": false, + "type": "boolean" + }, + { + "env_variable": "AFFINE_POSTGRES_PASSWORD", + "label": "Affine postgres password", + "type": "random", + "min": 32 + } + ], + "supported_architectures": [ + "arm64", + "amd64" + ] +} \ No newline at end of file diff --git a/apps/affine/docker-compose.yml b/apps/affine/docker-compose.yml new file mode 100644 index 00000000..8965da26 --- /dev/null +++ b/apps/affine/docker-compose.yml @@ -0,0 +1,91 @@ +version: "3.9" +services: + affine: + image: ghcr.io/toeverything/affine-graphql:stable + container_name: affine + command: ["sh", "-c", "node ./scripts/self-host-predeploy && node ./dist/index.js"] + ports: + - ${APP_PORT}:3010 + depends_on: + affine-redis: + condition: service_healthy + affine-postgres: + condition: service_healthy + volumes: + # Custom configurations + - ${APP_DATA_DIR}/data/config:/root/.affine/config + # Blob storage + - ${APP_DATA_DIR}/data/storage:/root/.affine/storage + logging: + driver: "json-file" + options: + max-size: "1000m" + restart: unless-stopped + environment: + - NODE_OPTIONS="--import=./scripts/register.js" + - AFFINE_CONFIG_PATH=/root/.affine/config + - REDIS_SERVER_HOST=affine-redis + - DATABASE_URL=postgres://tipi:${AFFINE_POSTGRES_PASSWORD}@affine-postgres:5432/affine + - NODE_ENV=production + - AFFINE_ADMIN_EMAIL=${AFFINE_ADMIN_EMAIL} + - AFFINE_ADMIN_PASSWORD=${AFFINE_ADMIN_PASSWORD} + - TELEMETRY_ENABLE=${AFFINE_TELEMETRY_ENABLE} + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.affine-web-redirect.redirectscheme.scheme: https + traefik.http.services.affine.loadbalancer.server.port: 3010 + # Web + traefik.http.routers.affine-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.affine-insecure.entrypoints: web + traefik.http.routers.affine-insecure.service: affine + traefik.http.routers.affine-insecure.middlewares: affine-web-redirect + # Websecure + traefik.http.routers.affine.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.affine.entrypoints: websecure + traefik.http.routers.affine.service: affine + traefik.http.routers.affine.tls.certresolver: myresolver + # Local domain + traefik.http.routers.affine-local-insecure.rule: Host(`affine.${LOCAL_DOMAIN}`) + traefik.http.routers.affine-local-insecure.entrypoints: web + traefik.http.routers.affine-local-insecure.service: affine + traefik.http.routers.affine-local-insecure.middlewares: affine-web-redirect + # Local domain secure + traefik.http.routers.affine-local.rule: Host(`affine.${LOCAL_DOMAIN}`) + traefik.http.routers.affine-local.entrypoints: websecure + traefik.http.routers.affine-local.service: affine + traefik.http.routers.affine-local.tls: true + + affine-redis: + image: redis + container_name: affine-redis + restart: unless-stopped + volumes: + - ${APP_DATA_DIR}/data/redis:/data + healthcheck: + test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ] + interval: 10s + timeout: 5s + retries: 5 + networks: + - tipi_main_network + + affine-postgres: + image: postgres + container_name: affinepostgres + restart: unless-stopped + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + healthcheck: + test: [ "CMD-SHELL", "pg_isready -U affine" ] + interval: 10s + timeout: 5s + retries: 5 + environment: + POSTGRES_USER: tipi + POSTGRES_PASSWORD: ${AFFINE_POSTGRES_PASSWORD} + POSTGRES_DB: affine + networks: + - tipi_main_network diff --git a/apps/affine/metadata/description.md b/apps/affine/metadata/description.md new file mode 100755 index 00000000..4af96cb7 --- /dev/null +++ b/apps/affine/metadata/description.md @@ -0,0 +1,23 @@ +## AFFiNE + +[AFFiNE](https://affine.pro) is an open-source, all-in-one workspace and an operating system for all the building blocks that assemble your knowledge base and much more -- wiki, knowledge management, presentation and digital assets. It's a better alternative to Notion and Miro. + +![](https://cdn.affine.pro/Github_hero_image1.png) + +### Features + +**A true canvas for blocks in any form. Docs and whiteboard are now fully merged.** + +- Many editor apps claim to be a canvas for productivity, but AFFiNE is one of the very few which allows you to put any building block on an edgeless canvas -- rich text, sticky notes, any embedded web pages, multi-view databases, linked pages, shapes and even slides. We have it all. + +**Multimodal AI partner ready to kick in any work** + +- Write up professional work report? Turn an outline into expressive and presentable slides? Summary an article into a well-structured mindmap? Sorting your job plan and backlog for tasks? Or... draw and code prototype apps and web pages directly all with one prompt? With you, AFFiNE AI pushes your creativity to the edge of your imagination. + +**Local-first & Real-time collaborative** + +- We love the idea of local-first that you always own your data on your disk, in spite of the cloud. Furthermore, AFFiNE supports real-time sync and collaborations on web and cross-platform clients. + +**Self-host & Shape your own AFFiNE** + +- You have the freedom to manage, self-host, fork and build your own AFFiNE. Plugin community and third-party blocks are coming soon. More tractions on [Blocksuite](https://blocksuite.io). Check there to learn how to [self-host AFFiNE](https://docs.affine.pro/docs/self-host-affine). diff --git a/apps/affine/metadata/logo.jpg b/apps/affine/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..01176fd1ac73908e35fb6cd2374855a7e360a441 GIT binary patch literal 49152 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
    dgU;QVww6*^CAgw{34 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

    1h<#d0o-M2z}P*W&n3@3nG2pOfRuZO4iK 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 I Date: Wed, 24 Apr 2024 12:36:58 +0300 Subject: [PATCH 029/161] Refactor/filebrowser (#3228) * refactor(filebrowser): do not run with puid and pgid 911 * chore: bump filebrowser version --- apps/filebrowser/config.json | 11 ++++++++--- apps/filebrowser/data/config/settings.json | 8 -------- apps/filebrowser/docker-compose.yml | 4 +++- 3 files changed, 11 insertions(+), 12 deletions(-) delete mode 100644 apps/filebrowser/data/config/settings.json diff --git a/apps/filebrowser/config.json b/apps/filebrowser/config.json index 7d02d5dd..48609bd6 100644 --- a/apps/filebrowser/config.json +++ b/apps/filebrowser/config.json @@ -5,14 +5,19 @@ "exposable": true, "port": 8096, "id": "filebrowser", - "tipi_version": 3, + "tipi_version": 4, "version": "s6", - "categories": ["utilities"], + "categories": [ + "utilities" + ], "description": "Reliable and Performant File Management Desktop Sync and File Sharing\n Default credentials: admin / admin", "short_desc": "Access your homeserver files from your browser", "author": "filebrowser.org", "website": "https://filebrowser.org/", "source": "https://github.com/filebrowser/filebrowser", "form_fields": [], - "supported_architectures": ["arm64", "amd64"] + "supported_architectures": [ + "arm64", + "amd64" + ] } diff --git a/apps/filebrowser/data/config/settings.json b/apps/filebrowser/data/config/settings.json deleted file mode 100644 index cf7fb4ee..00000000 --- a/apps/filebrowser/data/config/settings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "port": 80, - "baseURL": "", - "address": "", - "log": "stdout", - "database": "/database/filebrowser.db", - "root": "/srv" -} diff --git a/apps/filebrowser/docker-compose.yml b/apps/filebrowser/docker-compose.yml index d3421d18..e098f506 100644 --- a/apps/filebrowser/docker-compose.yml +++ b/apps/filebrowser/docker-compose.yml @@ -10,7 +10,9 @@ services: - ${ROOT_FOLDER_HOST}/media:/srv/media - ${APP_DATA_DIR}/data/general:/srv/general - ${APP_DATA_DIR}/data/db:/database - - ${APP_DATA_DIR}/data/config:/config + environment: + - PUID=0 + - PGID=0 networks: - tipi_main_network labels: From 854aa78042feafc5f566992336ff39778eac447a Mon Sep 17 00:00:00 2001 From: Julian Xhokaxhiu Date: Wed, 24 Apr 2024 11:50:43 +0200 Subject: [PATCH 030/161] add: Stalwart Mail app (#3122) * Add stalwart-mail * Update apps/stalwart-mail/metadata/description.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * refactor(stalwart-mail): small changes --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Stavros --- apps/stalwart-mail/config.json | 42 +++++++++++++ apps/stalwart-mail/docker-compose.yml | 43 +++++++++++++ apps/stalwart-mail/metadata/description.md | 68 +++++++++++++++++++++ apps/stalwart-mail/metadata/logo.jpg | Bin 0 -> 60611 bytes 4 files changed, 153 insertions(+) create mode 100644 apps/stalwart-mail/config.json create mode 100644 apps/stalwart-mail/docker-compose.yml create mode 100644 apps/stalwart-mail/metadata/description.md create mode 100644 apps/stalwart-mail/metadata/logo.jpg diff --git a/apps/stalwart-mail/config.json b/apps/stalwart-mail/config.json new file mode 100644 index 00000000..ff4a60bf --- /dev/null +++ b/apps/stalwart-mail/config.json @@ -0,0 +1,42 @@ +{ + "$schema": "../schema.json", + "name": "Stalwart Mail", + "available": true, + "exposable": true, + "tipi_version": 1, + "version": "0.7.0", + "port": 8677, + "id": "stalwart-mail", + "categories": [ + "media", + "network", + "utilities" + ], + "description": "Stalwart is a scalable, secure and robust open-source mail server software designed for the 21st century.", + "short_desc": "Open-source mail server solution with JMAP, IMAP4, and SMTP support", + "author": "Stalwart Labs", + "source": "https://github.com/stalwartlabs", + "website": "https://stalw.art", + "requirements": { + "ports": [ + 25, + 143, + 465, + 587, + 993, + 4190 + ] + }, + "form_fields": [ + { + "type": "ip", + "label": "Network Interface (default: 0.0.0.0)", + "required": false, + "env_variable": "NETWORK_INTERFACE" + } + ], + "supported_architectures": [ + "arm64", + "amd64" + ] +} diff --git a/apps/stalwart-mail/docker-compose.yml b/apps/stalwart-mail/docker-compose.yml new file mode 100644 index 00000000..5e4efb04 --- /dev/null +++ b/apps/stalwart-mail/docker-compose.yml @@ -0,0 +1,43 @@ +version: "3.7" +services: + stalwart-mail: + image: stalwartlabs/mail-server:v0.7.0 + container_name: stalwart-mail + volumes: + - ${APP_DATA_DIR}/data:/opt/stalwart-mail + restart: unless-stopped + networks: + - tipi_main_network + ports: + - ${NETWORK_INTERFACE:-0.0.0.0}:25:25/tcp + - ${NETWORK_INTERFACE:-0.0.0.0}:143:143/tcp + - ${NETWORK_INTERFACE:-0.0.0.0}:465:465/tcp + - ${NETWORK_INTERFACE:-0.0.0.0}:587:587/tcp + - ${NETWORK_INTERFACE:-0.0.0.0}:993:993/tcp + - ${NETWORK_INTERFACE:-0.0.0.0}:4190:4190/tcp + - ${APP_PORT}:8080 + labels: + # Main + traefik.enable: true + traefik.http.middlewares.stalwart-mail-web-redirect.redirectscheme.scheme: https + traefik.http.services.stalwart-mail.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.stalwart-mail-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.stalwart-mail-insecure.entrypoints: web + traefik.http.routers.stalwart-mail-insecure.service: stalwart-mail + traefik.http.routers.stalwart-mail-insecure.middlewares: stalwart-mail-web-redirect + # Websecure + traefik.http.routers.stalwart-mail.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.stalwart-mail.entrypoints: websecure + traefik.http.routers.stalwart-mail.service: stalwart-mail + traefik.http.routers.stalwart-mail.tls.certresolver: myresolver + # Local domain + traefik.http.routers.stalwart-mail-local-insecure.rule: Host(`stalwart-mail.${LOCAL_DOMAIN}`) + traefik.http.routers.stalwart-mail-local-insecure.entrypoints: web + traefik.http.routers.stalwart-mail-local-insecure.service: stalwart-mail + traefik.http.routers.stalwart-mail-local-insecure.middlewares: stalwart-mail-web-redirect + # Local domain secure + traefik.http.routers.stalwart-mail-local.rule: Host(`stalwart-mail.${LOCAL_DOMAIN}`) + traefik.http.routers.stalwart-mail-local.entrypoints: websecure + traefik.http.routers.stalwart-mail-local.service: stalwart-mail + traefik.http.routers.stalwart-mail-local.tls: true diff --git a/apps/stalwart-mail/metadata/description.md b/apps/stalwart-mail/metadata/description.md new file mode 100644 index 00000000..bdd44e86 --- /dev/null +++ b/apps/stalwart-mail/metadata/description.md @@ -0,0 +1,68 @@ +## Stalwart Mail server + +Stalwart is a scalable, secure and robust open-source mail server software designed for the 21st century. + +### Admin Password + +See [Log in to the web interface](https://stalw.art/docs/install/docker#log-in-to-the-web-interface) to know how to get the admin password. + +### Screenshots + +Stalwart Mail Server setup screencast
    + +### Features + +**Stalwart Mail Server** is an open-source mail server solution with JMAP, IMAP4, and SMTP support and a wide range of modern features. It is written in Rust and designed to be secure, fast, robust and scalable. + +Key features: + +- **JMAP** server: + - JMAP Core ([RFC 8620](https://datatracker.ietf.org/doc/html/rfc8620)) + - JMAP Mail ([RFC 8621](https://datatracker.ietf.org/doc/html/rfc8621)) + - JMAP for Sieve Scripts ([DRAFT-SIEVE-19](https://www.ietf.org/archive/id/draft-ietf-jmap-sieve-19.html)) + - JMAP over WebSocket ([RFC 8887](https://datatracker.ietf.org/doc/html/rfc8887)), JMAP Blob Management ([RFC 9404](https://www.rfc-editor.org/rfc/rfc9404.html)) and JMAP for Quotas ([RFC 9425](https://www.rfc-editor.org/rfc/rfc9425.html)) extensions. +- **IMAP4** server: + - IMAP4rev2 ([RFC 9051](https://datatracker.ietf.org/doc/html/rfc9051)) full compliance. + - IMAP4rev1 ([RFC 3501](https://datatracker.ietf.org/doc/html/rfc3501)) backwards compatible. + - ManageSieve ([RFC 5804](https://datatracker.ietf.org/doc/html/rfc5804)) server. + - Numerous [extensions](https://stalw.art/docs/development/rfcs#imap4-and-extensions) supported. +- **SMTP** server: + - Built-in [DMARC](https://datatracker.ietf.org/doc/html/rfc7489), [DKIM](https://datatracker.ietf.org/doc/html/rfc6376), [SPF](https://datatracker.ietf.org/doc/html/rfc7208) and [ARC](https://datatracker.ietf.org/doc/html/rfc8617) support for message authentication. + - Strong transport security through [DANE](https://datatracker.ietf.org/doc/html/rfc6698), [MTA-STS](https://datatracker.ietf.org/doc/html/rfc8461) and [SMTP TLS](https://datatracker.ietf.org/doc/html/rfc8460) reporting. + - Inbound throttling and filtering with granular configuration rules, sieve scripting and milter integration. + - Distributed virtual queues with delayed delivery, priority delivery, quotas, routing rules and throttling support. + - Envelope rewriting and message modification. +- **Spam and Phishing** filter: + - Comprehensive set of filtering **rules** on par with popular solutions. + - Statistical **spam classifier** with automatic training capabilities. + - DNS Blocklists (**DNSBLs**) checking of IP addresses, domains, and hashes. + - Collaborative digest-based spam filtering with **Pyzor**. + - **Phishing** protection against homographic URL attacks, sender spoofing and other techniques. + - Trusted **reply** tracking to recognize and prioritize genuine e-mail replies. + - Sender **reputation** monitoring by IP address, ASN, domain and email address. + - **Greylisting** to temporarily defer unknown senders. + - **Spam traps** to set up decoy email addresses that catch and analyze spam. +- **Flexible and scalable**: + - Pluggable storage backends with **RocksDB**, **FoundationDB**, **PostgreSQL**, **mySQL**, **SQLite**, **S3-Compatible**, **Redis** and **ElasticSearch** support. + - Built-in, **LDAP** or **SQL** authentication backend support. + - Full-text search available in 17 languages. + - Disk quotas. + - Sieve scripting language with support for all [registered extensions](https://www.iana.org/assignments/sieve-extensions/sieve-extensions.xhtml). + - Email aliases, mailing lists, subaddressing and catch-all addresses support. + - Integration with **OpenTelemetry** to enable monitoring, tracing, and performance analysis. +- **Web-based administration**: + - Account, domain, group and mailing list management. + - SMTP queue management for messages and outbound DMARC and TLS reports. + - Report visualization interface for received DMARC, TLS-RPT and Failure (ARF) reports. + - Configuration of every aspect of the mail server. + - Log viewer with search and filtering capabilities. + - Self-service portal for password reset and encryption-at-rest key management. +- **Secure and robust**: + - Encryption at rest with **S/MIME** or **OpenPGP**. + - Automatic TLS certificate provisioning with [ACME](https://datatracker.ietf.org/doc/html/rfc8555). + - OAuth 2.0 [authorization code](https://www.rfc-editor.org/rfc/rfc8628) and [device authorization](https://www.rfc-editor.org/rfc/rfc8628) flows. + - Automated blocking of hosts that cause multiple authentication errors (aka **fail2ban**). + - Access Control Lists (ACLs). + - Rate limiting. + - Security audited (read the [report](https://stalw.art/blog/security-audit)). + - Memory safe (thanks to Rust). diff --git a/apps/stalwart-mail/metadata/logo.jpg b/apps/stalwart-mail/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f4952d7629e10d27b5f3e9205cf14a536cd08ced GIT binary patch literal 60611 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 Date: Wed, 24 Apr 2024 09:53:08 +0000 Subject: [PATCH 031/161] chore(deps): update stalwartlabs/mail-server docker tag to v0.7.2 (#3272) --- apps/stalwart-mail/config.json | 4 ++-- apps/stalwart-mail/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/stalwart-mail/config.json b/apps/stalwart-mail/config.json index ff4a60bf..08ac4b7a 100644 --- a/apps/stalwart-mail/config.json +++ b/apps/stalwart-mail/config.json @@ -3,8 +3,8 @@ "name": "Stalwart Mail", "available": true, "exposable": true, - "tipi_version": 1, - "version": "0.7.0", + "tipi_version": 2, + "version": "0.7.2", "port": 8677, "id": "stalwart-mail", "categories": [ diff --git a/apps/stalwart-mail/docker-compose.yml b/apps/stalwart-mail/docker-compose.yml index 5e4efb04..413adff3 100644 --- a/apps/stalwart-mail/docker-compose.yml +++ b/apps/stalwart-mail/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.7" services: stalwart-mail: - image: stalwartlabs/mail-server:v0.7.0 + image: stalwartlabs/mail-server:v0.7.2 container_name: stalwart-mail volumes: - ${APP_DATA_DIR}/data:/opt/stalwart-mail From f59c332c94c9e398c4beb618788bb1bd6a35901f Mon Sep 17 00:00:00 2001 From: Wraithers <4705057+Wraithers@users.noreply.github.com> Date: Wed, 24 Apr 2024 15:29:43 +0530 Subject: [PATCH 032/161] Add: Komga app (#3258) * Create docker-compose.yml * Create config.json * Update docker-compose.yml * Update docker-compose.yml * Create description.md * Add logo.jpg * Update README.md * Add tipi_main_network to docker-compose.yml * Update description.md * refactor(komga): small changes --------- Co-authored-by: Stavros --- apps/komga/config.json | 23 +++++++++++++++++ apps/komga/docker-compose.yml | 40 +++++++++++++++++++++++++++++ apps/komga/metadata/description.md | 32 +++++++++++++++++++++++ apps/komga/metadata/logo.jpg | Bin 0 -> 60485 bytes 4 files changed, 95 insertions(+) create mode 100644 apps/komga/config.json create mode 100644 apps/komga/docker-compose.yml create mode 100644 apps/komga/metadata/description.md create mode 100644 apps/komga/metadata/logo.jpg diff --git a/apps/komga/config.json b/apps/komga/config.json new file mode 100644 index 00000000..ea0037b1 --- /dev/null +++ b/apps/komga/config.json @@ -0,0 +1,23 @@ +{ + "$schema": "../schema.json", + "name": "Komga", + "port": 2560, + "available": true, + "exposable": true, + "id": "komga", + "tipi_version": 1, + "version": "1.11.0", + "categories": [ + "media" + ], + "description": "A media server for your comics, mangas, BDs, magazines and eBooks.", + "short_desc": "A media server for your comics, mangas, BDs, magazines and eBooks.", + "author": "gotson", + "source": "https://github.com/gotson/komga", + "website": "https://komga.org/", + "form_fields": [], + "supported_architectures": [ + "arm64", + "amd64" + ] +} diff --git a/apps/komga/docker-compose.yml b/apps/komga/docker-compose.yml new file mode 100644 index 00000000..fe48391a --- /dev/null +++ b/apps/komga/docker-compose.yml @@ -0,0 +1,40 @@ +version: "3.9" +services: + komga: + image: ghcr.io/gotson/komga:1.11.0 + container_name: komga + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${APP_DATA_DIR}/data/data:/data + environment: + - TZ=${TZ} + ports: + - ${APP_PORT}:25600 + networks: + - tipi_main_network + restart: unless-stopped + labels: + # Main + traefik.enable: true + traefik.http.middlewares.komga-web-redirect.redirectscheme.scheme: https + traefik.http.services.komga.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.komga-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.komga-insecure.entrypoints: web + traefik.http.routers.komga-insecure.service: komga + traefik.http.routers.komga-insecure.middlewares: komga-web-redirect + # Websecure + traefik.http.routers.komga.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.komga.entrypoints: websecure + traefik.http.routers.komga.service: komga + traefik.http.routers.komga.tls.certresolver: myresolver + # Local domain + traefik.http.routers.komga-local-insecure.rule: Host(`komga.${LOCAL_DOMAIN}`) + traefik.http.routers.komga-local-insecure.entrypoints: web + traefik.http.routers.komga-local-insecure.service: komga + traefik.http.routers.komga-local-insecure.middlewares: komga-web-redirect + # Local domain secure + traefik.http.routers.komga-local.rule: Host(`komga.${LOCAL_DOMAIN}`) + traefik.http.routers.komga-local.entrypoints: websecure + traefik.http.routers.komga-local.service: komga + traefik.http.routers.komga-local.tls: true diff --git a/apps/komga/metadata/description.md b/apps/komga/metadata/description.md new file mode 100644 index 00000000..68d722d9 --- /dev/null +++ b/apps/komga/metadata/description.md @@ -0,0 +1,32 @@ +## Komga + +Komga is a media server for your comics, mangas, BDs, magazines and eBooks. + +### Chat on [Discord](https://discord.gg/TdRpkDu) + +### Features + +- Browse libraries, series and books via a responsive web UI that works on desktop, tablets and phones +- Organize your library with collections and read lists +- Edit metadata for your series and books +- Import embedded metadata automatically +- Webreader with multiple reading modes +- Manage multiple users, with per-library access control, age restrictions, and labels restrictions +- Offers a REST API, many community tools and scripts can interact with Komga +- Download book files, whole series, or read lists +- Duplicate files detection +- Duplicate pages detection and removal +- Import books from outside your libraries directly into your series folder +- Import ComicRack `cbl` read lists + +### Documentation + +Head over to our [website](https://komga.org) for more information. + +### Develop in Komga + +Check the [development guidelines](./DEVELOPING.md). + +### Credits + +The Komga icon is based on an icon made by [Freepik](https://www.freepik.com/home) from [Flaticon](https://www.flaticon.com). diff --git a/apps/komga/metadata/logo.jpg b/apps/komga/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..381f0526fdb8d133eea353ee57941a04fc8b4cd2 GIT binary patch literal 60485 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 WCbNr%Hf^Jdh3@|UeCzSAgZ~GDBh8!u literal 0 HcmV?d00001 From 5cec6e6f139cf5565c1f486958654029609d1ad2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 10:02:10 +0000 Subject: [PATCH 033/161] chore(deps): update ghcr.io/gotson/komga docker tag to v1.11.1 (#3273) --- apps/komga/config.json | 4 ++-- apps/komga/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/komga/config.json b/apps/komga/config.json index ea0037b1..b3830ae1 100644 --- a/apps/komga/config.json +++ b/apps/komga/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "komga", - "tipi_version": 1, - "version": "1.11.0", + "tipi_version": 2, + "version": "1.11.1", "categories": [ "media" ], diff --git a/apps/komga/docker-compose.yml b/apps/komga/docker-compose.yml index fe48391a..ddc48b0c 100644 --- a/apps/komga/docker-compose.yml +++ b/apps/komga/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.9" services: komga: - image: ghcr.io/gotson/komga:1.11.0 + image: ghcr.io/gotson/komga:1.11.1 container_name: komga volumes: - ${APP_DATA_DIR}/data/config:/config From 79f4942ef7676a0e087a3c07c588e34e83621040 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:43:15 +0000 Subject: [PATCH 034/161] chore(deps): update budibase/budibase docker tag to v2.23.12 (#3275) --- apps/budibase/config.json | 4 ++-- apps/budibase/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/budibase/config.json b/apps/budibase/config.json index d25c28c4..559ffd95 100644 --- a/apps/budibase/config.json +++ b/apps/budibase/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "budibase", - "tipi_version": 127, - "version": "2.23.11", + "tipi_version": 128, + "version": "2.23.12", "categories": [ "development" ], diff --git a/apps/budibase/docker-compose.yml b/apps/budibase/docker-compose.yml index 7d7dd1c6..8fcf3ec1 100644 --- a/apps/budibase/docker-compose.yml +++ b/apps/budibase/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.7' services: budibase: - image: budibase/budibase:2.23.11 + image: budibase/budibase:2.23.12 restart: unless-stopped container_name: budibase ports: From 88118573472f1c54d0c8a1f6aec7351ca4123298 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:43:22 +0000 Subject: [PATCH 035/161] chore(deps): update 1dev/server docker tag to v10.5.1 (#3274) --- apps/onedev/config.json | 4 ++-- apps/onedev/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/onedev/config.json b/apps/onedev/config.json index 5b48f053..d810e548 100644 --- a/apps/onedev/config.json +++ b/apps/onedev/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "onedev", - "tipi_version": 88, - "version": "10.5.0", + "tipi_version": 89, + "version": "10.5.1", "categories": [ "development" ], diff --git a/apps/onedev/docker-compose.yml b/apps/onedev/docker-compose.yml index 3df86232..cdb8165a 100644 --- a/apps/onedev/docker-compose.yml +++ b/apps/onedev/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: onedev: - image: 1dev/server:10.5.0 + image: 1dev/server:10.5.1 container_name: onedev environment: - hibernate_dialect=io.onedev.server.persistence.PostgreSQLDialect From 3b3e0544af579ce6dd504198914e67dab0b04bd5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 17:38:32 +0000 Subject: [PATCH 036/161] chore(deps): update ghcr.io/goauthentik/server docker tag to v2024.4.0 (#3278) --- apps/authentik/config.json | 4 ++-- apps/authentik/docker-compose.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/authentik/config.json b/apps/authentik/config.json index 32314616..d6ffd3ca 100644 --- a/apps/authentik/config.json +++ b/apps/authentik/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "authentik", - "tipi_version": 11, - "version": "2024.2.3", + "tipi_version": 12, + "version": "2024.4.0", "https": true, "categories": [ "development" diff --git a/apps/authentik/docker-compose.yml b/apps/authentik/docker-compose.yml index 287d5671..9984d952 100644 --- a/apps/authentik/docker-compose.yml +++ b/apps/authentik/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: authentik: - image: ghcr.io/goauthentik/server:2024.2.3 + image: ghcr.io/goauthentik/server:2024.4.0 restart: unless-stopped command: server container_name: authentik @@ -49,7 +49,7 @@ services: traefik.http.routers.authentik-local.service: authentik traefik.http.routers.authentik-local.tls: true authentik-worker: - image: ghcr.io/goauthentik/server:2024.2.3 + image: ghcr.io/goauthentik/server:2024.4.0 restart: unless-stopped command: worker container_name: authentik-worker From a29a7436ea89ae55ff8751932325701608a7ff3d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 17:38:41 +0000 Subject: [PATCH 037/161] chore(deps): update lobehub/lobe-chat docker tag to v0.149.1 (#3277) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 8bb6b4a9..1875432e 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 111, - "version": "0.149.0", + "tipi_version": 112, + "version": "0.149.1", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index d34d395d..2a34a01c 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.149.0 + image: lobehub/lobe-chat:v0.149.1 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 7881fac59051c157088f691894296d2e6c840150 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 18:45:41 +0000 Subject: [PATCH 038/161] chore(deps): update lobehub/lobe-chat docker tag to v0.149.2 (#3279) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 1875432e..55b31867 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 112, - "version": "0.149.1", + "tipi_version": 113, + "version": "0.149.2", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 2a34a01c..e7c9df4d 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.149.1 + image: lobehub/lobe-chat:v0.149.2 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 18ba26778b5bec2591bd6c74c452388de667cbc4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 23:03:10 +0000 Subject: [PATCH 039/161] chore(deps): update invoiceninja/invoiceninja docker tag to v5.8.51 (#3280) --- apps/invoice-ninja/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/invoice-ninja/docker-compose.yml b/apps/invoice-ninja/docker-compose.yml index 65351d1f..b910cb09 100644 --- a/apps/invoice-ninja/docker-compose.yml +++ b/apps/invoice-ninja/docker-compose.yml @@ -42,7 +42,7 @@ services: traefik.http.routers.invoice-ninja-local.tls: true invoice-ninja-server: - image: invoiceninja/invoiceninja:5.8.50 + image: invoiceninja/invoiceninja:5.8.51 container_name: invoice-ninja-server restart: unless-stopped user: 1500:1500 From 70a4872ea910336cc2c0b130dd62ee37bf589401 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 23:04:30 +0000 Subject: [PATCH 040/161] chore(deps): update dockurr/windows docker tag to v2.17 (#3281) --- apps/windows/config.json | 4 ++-- apps/windows/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/windows/config.json b/apps/windows/config.json index 62a01345..b570ca79 100644 --- a/apps/windows/config.json +++ b/apps/windows/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "windows", "description": "Run windows in docker...because why not?", - "tipi_version": 15, - "version": "2.16", + "tipi_version": 16, + "version": "2.17", "categories": [ "utilities" ], diff --git a/apps/windows/docker-compose.yml b/apps/windows/docker-compose.yml index a2d81836..7254dd22 100644 --- a/apps/windows/docker-compose.yml +++ b/apps/windows/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.9" services: windows: container_name: windows - image: dockurr/windows:2.16 + image: dockurr/windows:2.17 restart: unless-stopped devices: - /dev/kvm From d223a0ff2358d94798c42c1773c588728be908f8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 23:09:11 +0000 Subject: [PATCH 041/161] chore(deps): update ghcr.io/blacktirion/email-oauth2-proxy-docker docker tag to v2024.04.24 (#3282) --- apps/email-oauth2-proxy/config.json | 4 ++-- apps/email-oauth2-proxy/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/email-oauth2-proxy/config.json b/apps/email-oauth2-proxy/config.json index 0e7364c8..61782fed 100644 --- a/apps/email-oauth2-proxy/config.json +++ b/apps/email-oauth2-proxy/config.json @@ -6,8 +6,8 @@ "no_gui": true, "port": 1999, "id": "email-oauth2-proxy", - "tipi_version": 6, - "version": "2024.03.26", + "tipi_version": 7, + "version": "2024.04.24", "categories": [ "utilities", "security" diff --git a/apps/email-oauth2-proxy/docker-compose.yml b/apps/email-oauth2-proxy/docker-compose.yml index 7a98da46..60b3d26a 100644 --- a/apps/email-oauth2-proxy/docker-compose.yml +++ b/apps/email-oauth2-proxy/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.9" services: email-oauth2-proxy: container_name: email-oauth2-proxy - image: ghcr.io/blacktirion/email-oauth2-proxy-docker:2024.03.26 + image: ghcr.io/blacktirion/email-oauth2-proxy-docker:2024.04.24 ports: - ${APP_PORT}:80 restart: unless-stopped From 05f6c5845a07716ae47c913cd891fda81c7d68d5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 03:58:19 +0000 Subject: [PATCH 042/161] chore(deps): update wisdomsky/cloudflared-web docker tag to v2024.4.1 (#3284) --- apps/cloudflared/config.json | 4 ++-- apps/cloudflared/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/cloudflared/config.json b/apps/cloudflared/config.json index b6783b61..547ab747 100644 --- a/apps/cloudflared/config.json +++ b/apps/cloudflared/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": false, "id": "cloudflared", - "tipi_version": 9, - "version": "2024.4.0", + "tipi_version": 10, + "version": "2024.4.1", "categories": [ "utilities" ], diff --git a/apps/cloudflared/docker-compose.yml b/apps/cloudflared/docker-compose.yml index 90406541..617f6c6e 100644 --- a/apps/cloudflared/docker-compose.yml +++ b/apps/cloudflared/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.9" services: cloudflared: - image: wisdomsky/cloudflared-web:2024.4.0 + image: wisdomsky/cloudflared-web:2024.4.1 container_name: cloudflared restart: unless-stopped network_mode: host From 7c7ec2df9095dda2d5179ac04d5315c14cd50543 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 06:46:17 +0000 Subject: [PATCH 043/161] chore(deps): update ghcr.io/requarks/wiki docker tag to v2.5.302 (#3285) --- apps/wikijs/config.json | 4 ++-- apps/wikijs/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/wikijs/config.json b/apps/wikijs/config.json index 1ad84f5d..90cba0d2 100644 --- a/apps/wikijs/config.json +++ b/apps/wikijs/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "wikijs", - "tipi_version": 6, - "version": "2.5.301", + "tipi_version": 7, + "version": "2.5.302", "categories": [ "media" ], diff --git a/apps/wikijs/docker-compose.yml b/apps/wikijs/docker-compose.yml index 4a2e834b..871ef20d 100644 --- a/apps/wikijs/docker-compose.yml +++ b/apps/wikijs/docker-compose.yml @@ -3,7 +3,7 @@ version: '3.7' services: wikijs: container_name: wikijs - image: ghcr.io/requarks/wiki:2.5.301 + image: ghcr.io/requarks/wiki:2.5.302 depends_on: - wikijs-db environment: From c8dfa55f493c630d8b0f475b20ef9d716327bdc3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 06:48:34 +0000 Subject: [PATCH 044/161] chore(deps): update matrixconduit/matrix-conduit docker tag to v0.7.0 (#3286) --- apps/matrix-conduit/config.json | 13 +++++++++---- apps/matrix-conduit/docker-compose.yml | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/apps/matrix-conduit/config.json b/apps/matrix-conduit/config.json index b7800a8a..0443ab6b 100644 --- a/apps/matrix-conduit/config.json +++ b/apps/matrix-conduit/config.json @@ -7,9 +7,11 @@ "force_expose": true, "no_gui": true, "id": "matrix-conduit", - "tipi_version": 4, - "version": "0.6.0", - "categories": ["social"], + "tipi_version": 5, + "version": "0.7.0", + "categories": [ + "social" + ], "description": "Conduit is a fast Matrix homeserver thatโ€™s easy to set up and just works. You can install it on a mini-computer like the Raspberry Pi to host Matrix for your family, friends or company.", "short_desc": "Conduit is a simple, fast and reliable chat server written in Rust", "author": "Timo Kรถsters", @@ -69,5 +71,8 @@ "env_variable": "TURN_SECRET" } ], - "supported_architectures": ["arm64", "amd64"] + "supported_architectures": [ + "arm64", + "amd64" + ] } diff --git a/apps/matrix-conduit/docker-compose.yml b/apps/matrix-conduit/docker-compose.yml index 69ec6f26..f52a6cc2 100644 --- a/apps/matrix-conduit/docker-compose.yml +++ b/apps/matrix-conduit/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.7" services: matrix-conduit: container_name: matrix-conduit - image: matrixconduit/matrix-conduit:v0.6.0 + image: matrixconduit/matrix-conduit:v0.7.0 environment: CONDUIT_SERVER_NAME: ${APP_DOMAIN} CONDUIT_DATABASE_PATH: /var/lib/matrix-conduit/ From e3675d680b3ac620012890a74bff8dc9f8bcec19 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 12:25:10 +0000 Subject: [PATCH 045/161] chore(deps): update lobehub/lobe-chat docker tag to v0.149.4 (#3288) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 55b31867..5ca01bb3 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 113, - "version": "0.149.2", + "tipi_version": 114, + "version": "0.149.4", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index e7c9df4d..376298de 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.149.2 + image: lobehub/lobe-chat:v0.149.4 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From b59733f41b3cb36d0fd519935011116ff73b8716 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 12:27:39 +0000 Subject: [PATCH 046/161] chore(deps): update dockurr/windows docker tag to v2.18 (#3289) --- apps/windows/config.json | 4 ++-- apps/windows/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/windows/config.json b/apps/windows/config.json index b570ca79..0729dfb6 100644 --- a/apps/windows/config.json +++ b/apps/windows/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "windows", "description": "Run windows in docker...because why not?", - "tipi_version": 16, - "version": "2.17", + "tipi_version": 17, + "version": "2.18", "categories": [ "utilities" ], diff --git a/apps/windows/docker-compose.yml b/apps/windows/docker-compose.yml index 7254dd22..34f05757 100644 --- a/apps/windows/docker-compose.yml +++ b/apps/windows/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.9" services: windows: container_name: windows - image: dockurr/windows:2.17 + image: dockurr/windows:2.18 restart: unless-stopped devices: - /dev/kvm From e95e2cfbc66a1e41583b1a7080a6bfb777fb313f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 17:14:05 +0000 Subject: [PATCH 047/161] chore(deps): update niruix/sshwifty docker tag to v0.3.9 (#3290) --- apps/sshwifty/config.json | 4 ++-- apps/sshwifty/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/sshwifty/config.json b/apps/sshwifty/config.json index f69a04e7..108b1da2 100644 --- a/apps/sshwifty/config.json +++ b/apps/sshwifty/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "sshwifty", - "tipi_version": 12, - "version": "0.3.8-beta-release", + "tipi_version": 13, + "version": "0.3.9-beta-release", "categories": [ "development" ], diff --git a/apps/sshwifty/docker-compose.yml b/apps/sshwifty/docker-compose.yml index 79cf0027..90c56599 100644 --- a/apps/sshwifty/docker-compose.yml +++ b/apps/sshwifty/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.5" services: sshwifty: - image: niruix/sshwifty:0.3.8-beta-release + image: niruix/sshwifty:0.3.9-beta-release restart: unless-stopped container_name: sshwifty privileged: true From 7ee909f927173de8d8e313fabd4521bfcbc3a17c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 17:16:02 +0000 Subject: [PATCH 048/161] chore(deps): update docker.io/gotenberg/gotenberg docker tag to v8.5 (#3291) --- apps/paperless-ngx/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/paperless-ngx/docker-compose.yml b/apps/paperless-ngx/docker-compose.yml index f285a4b1..893636fa 100644 --- a/apps/paperless-ngx/docker-compose.yml +++ b/apps/paperless-ngx/docker-compose.yml @@ -75,7 +75,7 @@ services: - tipi_main_network gotenberg: - image: docker.io/gotenberg/gotenberg:8.4 + image: docker.io/gotenberg/gotenberg:8.5 restart: unless-stopped # The gotenberg chromium route is used to convert .eml files. We do not # want to allow external content like tracking pixels or even javascript. From 6219bb737c2abf2e5ebb653289f153a89b2ee236 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 20:48:17 +0000 Subject: [PATCH 049/161] chore(deps): update lobehub/lobe-chat docker tag to v0.149.5 (#3292) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 5ca01bb3..33c6ed03 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 114, - "version": "0.149.4", + "tipi_version": 115, + "version": "0.149.5", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 376298de..8fbed634 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.149.4 + image: lobehub/lobe-chat:v0.149.5 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 8ac16829df4164e93046991647de7eb23a4d7da7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 20:50:30 +0000 Subject: [PATCH 050/161] chore(deps): update ghcr.io/linuxserver/radarr docker tag to v5.4.6 (#3293) --- apps/radarr/config.json | 9 ++++++--- apps/radarr/docker-compose.yml | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/radarr/config.json b/apps/radarr/config.json index 2419958b..cd8d669e 100644 --- a/apps/radarr/config.json +++ b/apps/radarr/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8088, "id": "radarr", - "tipi_version": 12, - "version": "5.3.6", + "tipi_version": 13, + "version": "5.4.6", "categories": [ "media", "utilities" @@ -16,5 +16,8 @@ "author": "radarr.video", "source": "https://github.com/Radarr/Radarr", "form_fields": [], - "supported_architectures": ["arm64", "amd64"] + "supported_architectures": [ + "arm64", + "amd64" + ] } diff --git a/apps/radarr/docker-compose.yml b/apps/radarr/docker-compose.yml index 3c07385a..3f486fb6 100644 --- a/apps/radarr/docker-compose.yml +++ b/apps/radarr/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.9" services: radarr: - image: ghcr.io/linuxserver/radarr:5.3.6 + image: ghcr.io/linuxserver/radarr:5.4.6 container_name: radarr environment: - PUID=1000 From 86f709bb3ebe9bca4bd9abc55fca797beaf8e620 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Apr 2024 00:34:24 +0000 Subject: [PATCH 051/161] chore(deps): update flowiseai/flowise docker tag to v1.6.6 (#3294) --- apps/flowise/config.json | 4 ++-- apps/flowise/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/flowise/config.json b/apps/flowise/config.json index cbebbdf2..1588f397 100644 --- a/apps/flowise/config.json +++ b/apps/flowise/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8009, "id": "flowise", - "tipi_version": 11, - "version": "1.6.5", + "tipi_version": 12, + "version": "1.6.6", "categories": [ "ai", "automation" diff --git a/apps/flowise/docker-compose.yml b/apps/flowise/docker-compose.yml index ad31e968..a8177a23 100644 --- a/apps/flowise/docker-compose.yml +++ b/apps/flowise/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.7' services: flowise: - image: flowiseai/flowise:1.6.5 + image: flowiseai/flowise:1.6.6 restart: unless-stopped command: /bin/sh -c "sleep 3; flowise start" container_name: flowise From bd695fbcb8e56afaabdd8b6e2f37d81fa31cc062 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Apr 2024 00:36:45 +0000 Subject: [PATCH 052/161] chore(deps): update ghcr.io/dgtlmoon/changedetection.io docker tag to v0.45.21 (#3295) --- apps/changedetection/config.json | 4 ++-- apps/changedetection/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/changedetection/config.json b/apps/changedetection/config.json index 6d72a080..18ad6925 100644 --- a/apps/changedetection/config.json +++ b/apps/changedetection/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "changedetection", "description": "The best and simplest free open source website change detection, restock monitor and notification service.", - "tipi_version": 18, - "version": "0.45.20", + "tipi_version": 19, + "version": "0.45.21", "categories": [ "utilities" ], diff --git a/apps/changedetection/docker-compose.yml b/apps/changedetection/docker-compose.yml index a18696f5..b13403f1 100644 --- a/apps/changedetection/docker-compose.yml +++ b/apps/changedetection/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.7" services: changedetection: - image: ghcr.io/dgtlmoon/changedetection.io:0.45.20 + image: ghcr.io/dgtlmoon/changedetection.io:0.45.21 container_name: changedetection hostname: changedetection volumes: From 38c981aa42f7dc40cf3fa1f3a1b56b8cf733aeef Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Apr 2024 10:48:38 +0000 Subject: [PATCH 053/161] chore(deps): update 1dev/server docker tag to v10.5.2 (#3296) --- apps/onedev/config.json | 4 ++-- apps/onedev/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/onedev/config.json b/apps/onedev/config.json index d810e548..1e1937bb 100644 --- a/apps/onedev/config.json +++ b/apps/onedev/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "onedev", - "tipi_version": 89, - "version": "10.5.1", + "tipi_version": 90, + "version": "10.5.2", "categories": [ "development" ], diff --git a/apps/onedev/docker-compose.yml b/apps/onedev/docker-compose.yml index cdb8165a..69d3e1cb 100644 --- a/apps/onedev/docker-compose.yml +++ b/apps/onedev/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: onedev: - image: 1dev/server:10.5.1 + image: 1dev/server:10.5.2 container_name: onedev environment: - hibernate_dialect=io.onedev.server.persistence.PostgreSQLDialect From e8a422dd884f310f8be5deff57870adaf3a0ebbf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Apr 2024 10:50:59 +0000 Subject: [PATCH 054/161] chore(deps): update lobehub/lobe-chat docker tag to v0.149.6 (#3297) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 33c6ed03..5724b055 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 115, - "version": "0.149.5", + "tipi_version": 116, + "version": "0.149.6", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 8fbed634..6080865d 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.149.5 + image: lobehub/lobe-chat:v0.149.6 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From b2e51705a2544c679534e84fb90c386ad372603f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Apr 2024 12:38:40 +0000 Subject: [PATCH 055/161] chore(deps): update dockurr/windows docker tag to v2.19 (#3298) --- apps/windows/config.json | 4 ++-- apps/windows/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/windows/config.json b/apps/windows/config.json index 0729dfb6..5f53431d 100644 --- a/apps/windows/config.json +++ b/apps/windows/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "windows", "description": "Run windows in docker...because why not?", - "tipi_version": 17, - "version": "2.18", + "tipi_version": 18, + "version": "2.19", "categories": [ "utilities" ], diff --git a/apps/windows/docker-compose.yml b/apps/windows/docker-compose.yml index 34f05757..3ce42f08 100644 --- a/apps/windows/docker-compose.yml +++ b/apps/windows/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.9" services: windows: container_name: windows - image: dockurr/windows:2.18 + image: dockurr/windows:2.19 restart: unless-stopped devices: - /dev/kvm From ae669422a00be60292a8d495d5d5e9d8224df124 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Apr 2024 12:41:08 +0000 Subject: [PATCH 056/161] chore(deps): update ghcr.io/wekan/wekan docker tag to v7.44 (#3299) --- apps/wekan/config.json | 4 ++-- apps/wekan/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/wekan/config.json b/apps/wekan/config.json index bee9d53c..e6b48a87 100644 --- a/apps/wekan/config.json +++ b/apps/wekan/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "wekan", - "tipi_version": 17, - "version": "7.43", + "tipi_version": 18, + "version": "7.44", "categories": [ "development" ], diff --git a/apps/wekan/docker-compose.yml b/apps/wekan/docker-compose.yml index f15eb84e..e41524e9 100644 --- a/apps/wekan/docker-compose.yml +++ b/apps/wekan/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: wekan: - image: ghcr.io/wekan/wekan:v7.43 + image: ghcr.io/wekan/wekan:v7.44 container_name: wekan environment: # https://github.com/wekan/wekan/blob/main/docker-compose.yml From 220f3741a451b744d61f9d347aa5a22996097b68 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Apr 2024 17:25:11 +0000 Subject: [PATCH 057/161] chore(deps): update ghcr.io/goauthentik/server docker tag to v2024.4.1 (#3300) --- apps/authentik/config.json | 4 ++-- apps/authentik/docker-compose.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/authentik/config.json b/apps/authentik/config.json index d6ffd3ca..adffc8ec 100644 --- a/apps/authentik/config.json +++ b/apps/authentik/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "authentik", - "tipi_version": 12, - "version": "2024.4.0", + "tipi_version": 13, + "version": "2024.4.1", "https": true, "categories": [ "development" diff --git a/apps/authentik/docker-compose.yml b/apps/authentik/docker-compose.yml index 9984d952..f89f8dcf 100644 --- a/apps/authentik/docker-compose.yml +++ b/apps/authentik/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: authentik: - image: ghcr.io/goauthentik/server:2024.4.0 + image: ghcr.io/goauthentik/server:2024.4.1 restart: unless-stopped command: server container_name: authentik @@ -49,7 +49,7 @@ services: traefik.http.routers.authentik-local.service: authentik traefik.http.routers.authentik-local.tls: true authentik-worker: - image: ghcr.io/goauthentik/server:2024.4.0 + image: ghcr.io/goauthentik/server:2024.4.1 restart: unless-stopped command: worker container_name: authentik-worker From 11f44809acfb03c68ba480a1163cd37bb7cf67f0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Apr 2024 17:27:27 +0000 Subject: [PATCH 058/161] chore(deps): update bellamy/wallos docker tag to v1.23.0 (#3301) --- apps/wallos/config.json | 4 ++-- apps/wallos/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/wallos/config.json b/apps/wallos/config.json index 60763707..23a5bfc5 100644 --- a/apps/wallos/config.json +++ b/apps/wallos/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "wallos", - "tipi_version": 28, - "version": "1.22.0", + "tipi_version": 29, + "version": "1.23.0", "categories": [ "finance" ], diff --git a/apps/wallos/docker-compose.yml b/apps/wallos/docker-compose.yml index a2038ad1..0ca5896c 100644 --- a/apps/wallos/docker-compose.yml +++ b/apps/wallos/docker-compose.yml @@ -2,7 +2,7 @@ version: '3' services: wallos: - image: bellamy/wallos:1.22.0 + image: bellamy/wallos:1.23.0 container_name: wallos environment: - TZ=${TZ} From 087dea361d7ec484da1488ad66487afe75a65a3e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Apr 2024 20:25:49 +0000 Subject: [PATCH 059/161] chore(deps): update jgraph/drawio docker tag to v24.3.1 (#3302) --- apps/drawio/config.json | 4 ++-- apps/drawio/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/drawio/config.json b/apps/drawio/config.json index 57039cd3..76764241 100644 --- a/apps/drawio/config.json +++ b/apps/drawio/config.json @@ -6,8 +6,8 @@ "url_suffix": "?offline=1", "id": "drawio", "description": "draw.io is a JavaScript, client-side editor for general diagramming and whiteboarding.", - "tipi_version": 38, - "version": "24.2.7", + "tipi_version": 39, + "version": "24.3.1", "categories": [ "utilities" ], diff --git a/apps/drawio/docker-compose.yml b/apps/drawio/docker-compose.yml index 3907a148..a22688cc 100644 --- a/apps/drawio/docker-compose.yml +++ b/apps/drawio/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.7" services: drawio: - image: jgraph/drawio:24.2.7 + image: jgraph/drawio:24.3.1 ports: - ${APP_PORT}:8080 container_name: drawio From f4273bab0836043fc97ec6e4a0094b0da0ac1a8f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Apr 2024 20:28:19 +0000 Subject: [PATCH 060/161] chore(deps): update lobehub/lobe-chat docker tag to v0.150.0 (#3303) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 5724b055..64a8e8fd 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 116, - "version": "0.149.6", + "tipi_version": 117, + "version": "0.150.0", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 6080865d..c840e013 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.149.6 + image: lobehub/lobe-chat:v0.150.0 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From a73f2e838dc85d64787a70cee6a0fe897bd7185f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 27 Apr 2024 02:02:33 +0000 Subject: [PATCH 061/161] chore(deps): update amir20/dozzle docker tag to v6.5.2 (#3304) --- apps/dozzle/config.json | 4 ++-- apps/dozzle/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/dozzle/config.json b/apps/dozzle/config.json index 9bdb8f77..7454ad91 100644 --- a/apps/dozzle/config.json +++ b/apps/dozzle/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8013, "id": "dozzle", - "tipi_version": 22, - "version": "6.5.1", + "tipi_version": 23, + "version": "6.5.2", "categories": [ "development" ], diff --git a/apps/dozzle/docker-compose.yml b/apps/dozzle/docker-compose.yml index e1ee7c32..8ccfff61 100644 --- a/apps/dozzle/docker-compose.yml +++ b/apps/dozzle/docker-compose.yml @@ -1,7 +1,7 @@ services: dozzle: container_name: dozzle - image: amir20/dozzle:v6.5.1 + image: amir20/dozzle:v6.5.2 restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock From a2b7502bdf17465051627fdf7f8c2d6029086cf6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 27 Apr 2024 02:04:39 +0000 Subject: [PATCH 062/161] chore(deps): update dockurr/windows docker tag to v2.20 (#3305) --- apps/windows/config.json | 4 ++-- apps/windows/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/windows/config.json b/apps/windows/config.json index 5f53431d..6bc13cf2 100644 --- a/apps/windows/config.json +++ b/apps/windows/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "windows", "description": "Run windows in docker...because why not?", - "tipi_version": 18, - "version": "2.19", + "tipi_version": 19, + "version": "2.20", "categories": [ "utilities" ], diff --git a/apps/windows/docker-compose.yml b/apps/windows/docker-compose.yml index 3ce42f08..a995242d 100644 --- a/apps/windows/docker-compose.yml +++ b/apps/windows/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.9" services: windows: container_name: windows - image: dockurr/windows:2.19 + image: dockurr/windows:2.20 restart: unless-stopped devices: - /dev/kvm From 11116cfe07282fbf3a1aedb386c619fec001d1ba Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 27 Apr 2024 14:15:17 +0000 Subject: [PATCH 063/161] chore(deps): update frooodle/s-pdf docker tag to v0.23.1 (#3307) --- apps/stirling-pdf/config.json | 4 ++-- apps/stirling-pdf/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/stirling-pdf/config.json b/apps/stirling-pdf/config.json index 5612139c..aba649ac 100644 --- a/apps/stirling-pdf/config.json +++ b/apps/stirling-pdf/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "stirling-pdf", - "tipi_version": 31, - "version": "0.23.0", + "tipi_version": 32, + "version": "0.23.1", "categories": [ "data", "utilities" diff --git a/apps/stirling-pdf/docker-compose.yml b/apps/stirling-pdf/docker-compose.yml index 4a52d6fe..25115a08 100644 --- a/apps/stirling-pdf/docker-compose.yml +++ b/apps/stirling-pdf/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.9" services: stirling-pdf: - image: frooodle/s-pdf:0.23.0 + image: frooodle/s-pdf:0.23.1 restart: unless-stopped container_name: stirling-pdf privileged: true From caebf15adfcd47c8116205488cba1804b929cb98 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 27 Apr 2024 14:17:39 +0000 Subject: [PATCH 064/161] chore(deps): update lobehub/lobe-chat docker tag to v0.150.5 (#3308) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 64a8e8fd..77dbd606 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 117, - "version": "0.150.0", + "tipi_version": 118, + "version": "0.150.5", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index c840e013..10a682d6 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.150.0 + image: lobehub/lobe-chat:v0.150.5 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From a2a85b2923617e7d6726715cd6a9724e2bad0ce0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 27 Apr 2024 15:47:44 +0000 Subject: [PATCH 065/161] chore(deps): update ghostfolio/ghostfolio docker tag to v2.77.0 (#3309) --- apps/ghostfolio/config.json | 4 ++-- apps/ghostfolio/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/ghostfolio/config.json b/apps/ghostfolio/config.json index fdbd5471..9f07ecff 100644 --- a/apps/ghostfolio/config.json +++ b/apps/ghostfolio/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "ghostfolio", - "tipi_version": 77, - "version": "2.76.0", + "tipi_version": 78, + "version": "2.77.0", "categories": [ "finance" ], diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index e1c108e4..29be9f05 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.9" services: ghostfolio: container_name: ghostfolio - image: ghostfolio/ghostfolio:2.76.0 + image: ghostfolio/ghostfolio:2.77.0 restart: unless-stopped ports: - ${APP_PORT}:3333 From aa5702e85deb4c50f461bbaca099189084930174 Mon Sep 17 00:00:00 2001 From: Stavros Date: Sat, 27 Apr 2024 20:21:28 +0300 Subject: [PATCH 066/161] chore: update komga image (#3310) --- apps/komga/metadata/logo.jpg | Bin 60485 -> 48766 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/komga/metadata/logo.jpg b/apps/komga/metadata/logo.jpg index 381f0526fdb8d133eea353ee57941a04fc8b4cd2..f46f1cffdb6f4d18b377dab2bf72059008b449c4 100644 GIT binary patch literal 48766 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 WCbNr%Hf^Jdh3@|UeCzSAgZ~GDBh8!u From 38d5ee13006a41690f87f8c0913e2b7e0a69c727 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 27 Apr 2024 20:04:52 +0000 Subject: [PATCH 067/161] chore(deps): update ghostfolio/ghostfolio docker tag to v2.77.1 (#3311) --- apps/ghostfolio/config.json | 4 ++-- apps/ghostfolio/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/ghostfolio/config.json b/apps/ghostfolio/config.json index 9f07ecff..fb2dee42 100644 --- a/apps/ghostfolio/config.json +++ b/apps/ghostfolio/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "ghostfolio", - "tipi_version": 78, - "version": "2.77.0", + "tipi_version": 79, + "version": "2.77.1", "categories": [ "finance" ], diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index 29be9f05..82f899ea 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.9" services: ghostfolio: container_name: ghostfolio - image: ghostfolio/ghostfolio:2.77.0 + image: ghostfolio/ghostfolio:2.77.1 restart: unless-stopped ports: - ${APP_PORT}:3333 From 97ce6153fe644dbb50d0ddfca9390ea944fd4336 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 27 Apr 2024 20:06:09 +0000 Subject: [PATCH 068/161] chore(deps): update dockurr/windows docker tag to v2.21 (#3312) --- apps/windows/config.json | 4 ++-- apps/windows/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/windows/config.json b/apps/windows/config.json index 6bc13cf2..4d28cdd7 100644 --- a/apps/windows/config.json +++ b/apps/windows/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "windows", "description": "Run windows in docker...because why not?", - "tipi_version": 19, - "version": "2.20", + "tipi_version": 20, + "version": "2.21", "categories": [ "utilities" ], diff --git a/apps/windows/docker-compose.yml b/apps/windows/docker-compose.yml index a995242d..94e6d0f4 100644 --- a/apps/windows/docker-compose.yml +++ b/apps/windows/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.9" services: windows: container_name: windows - image: dockurr/windows:2.20 + image: dockurr/windows:2.21 restart: unless-stopped devices: - /dev/kvm From 9c815ebc571d70f6c40c2c62bd6330058c56e40b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 27 Apr 2024 22:47:08 +0000 Subject: [PATCH 069/161] chore(deps): update deluan/navidrome docker tag to v0.52.0 (#3313) --- apps/navidrome/config.json | 4 ++-- apps/navidrome/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/navidrome/config.json b/apps/navidrome/config.json index 48520871..2bd1b9b7 100644 --- a/apps/navidrome/config.json +++ b/apps/navidrome/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "navidrome", "description": "Modern Music Server and Streamer compatible with Subsonic/Airsonic", - "tipi_version": 10, - "version": "0.51.1", + "tipi_version": 11, + "version": "0.52.0", "categories": [ "media", "music" diff --git a/apps/navidrome/docker-compose.yml b/apps/navidrome/docker-compose.yml index 5165623e..c7085f76 100644 --- a/apps/navidrome/docker-compose.yml +++ b/apps/navidrome/docker-compose.yml @@ -2,7 +2,7 @@ version: "3" services: navidrome: container_name: navidrome - image: deluan/navidrome:0.51.1 + image: deluan/navidrome:0.52.0 ports: - ${APP_PORT}:4533 restart: unless-stopped From 8bc7fea14fa28d5179f6294d717c946271040b6a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 27 Apr 2024 22:47:18 +0000 Subject: [PATCH 070/161] chore(deps): update ghcr.io/codex-team/codex.docs docker tag to v2.2 (#3314) --- apps/codex-docs/config.json | 12 ++++++++---- apps/codex-docs/docker-compose.yml | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/codex-docs/config.json b/apps/codex-docs/config.json index 42e19fd1..37a7c847 100644 --- a/apps/codex-docs/config.json +++ b/apps/codex-docs/config.json @@ -5,9 +5,11 @@ "exposable": true, "port": 8101, "id": "codex-docs", - "tipi_version": 2, - "version": "v2.1", - "categories": ["media"], + "tipi_version": 3, + "version": "2.2", + "categories": [ + "media" + ], "description": "CodeX Docs is a free docs application. It's based on Editor.js ecosystem which gives all modern opportunities for working with content. You can use it for product documentation, for internal team docs, for personal notes or any other need. ", "short_desc": "Free Docs app powered by Editor.js ecosystem.", "author": "https://docs.codex.so/", @@ -34,5 +36,7 @@ "env_variable": "CODEX_AUTH_SECRET" } ], - "supported_architectures": ["amd64"] + "supported_architectures": [ + "amd64" + ] } diff --git a/apps/codex-docs/docker-compose.yml b/apps/codex-docs/docker-compose.yml index 46fc164d..5aa6f751 100644 --- a/apps/codex-docs/docker-compose.yml +++ b/apps/codex-docs/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.2" services: codex-docs: container_name: codex-docs - image: ghcr.io/codex-team/codex.docs:v2.1 + image: ghcr.io/codex-team/codex.docs:v2.2 ports: - ${APP_PORT}:3000 restart: unless-stopped From 5c4ca4a7525119b62adaeb9a561e3e227f554e39 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 28 Apr 2024 14:27:01 +0000 Subject: [PATCH 071/161] chore(deps): update lobehub/lobe-chat docker tag to v0.150.9 (#3315) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 77dbd606..ad13fd36 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 118, - "version": "0.150.5", + "tipi_version": 119, + "version": "0.150.9", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 10a682d6..f52990f2 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.150.5 + image: lobehub/lobe-chat:v0.150.9 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From c04231ba9b1103d8e29b160c0263cb9bfd5b60cf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 28 Apr 2024 14:27:04 +0000 Subject: [PATCH 072/161] chore(deps): update dockurr/windows docker tag to v2.22 (#3316) --- apps/windows/config.json | 4 ++-- apps/windows/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/windows/config.json b/apps/windows/config.json index 4d28cdd7..e0fbe322 100644 --- a/apps/windows/config.json +++ b/apps/windows/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "windows", "description": "Run windows in docker...because why not?", - "tipi_version": 20, - "version": "2.21", + "tipi_version": 21, + "version": "2.22", "categories": [ "utilities" ], diff --git a/apps/windows/docker-compose.yml b/apps/windows/docker-compose.yml index 94e6d0f4..1f4c7364 100644 --- a/apps/windows/docker-compose.yml +++ b/apps/windows/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.9" services: windows: container_name: windows - image: dockurr/windows:2.21 + image: dockurr/windows:2.22 restart: unless-stopped devices: - /dev/kvm From fb3c83951e9fc7e189c09d9fc2aa1c1edecdda5a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 28 Apr 2024 19:01:22 +0000 Subject: [PATCH 073/161] chore(deps): update lobehub/lobe-chat docker tag to v0.150.10 (#3317) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index ad13fd36..bb1c9bd2 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 119, - "version": "0.150.9", + "tipi_version": 120, + "version": "0.150.10", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index f52990f2..485bddbe 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.150.9 + image: lobehub/lobe-chat:v0.150.10 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 55f93407e82b50a8b2882f59b4a36c557130855e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 04:00:22 +0000 Subject: [PATCH 074/161] chore(deps): update 1dev/server docker tag to v10.5.3 (#3319) --- apps/onedev/config.json | 4 ++-- apps/onedev/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/onedev/config.json b/apps/onedev/config.json index 1e1937bb..9db4b41c 100644 --- a/apps/onedev/config.json +++ b/apps/onedev/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "onedev", - "tipi_version": 90, - "version": "10.5.2", + "tipi_version": 91, + "version": "10.5.3", "categories": [ "development" ], diff --git a/apps/onedev/docker-compose.yml b/apps/onedev/docker-compose.yml index 69d3e1cb..5caed403 100644 --- a/apps/onedev/docker-compose.yml +++ b/apps/onedev/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: onedev: - image: 1dev/server:10.5.2 + image: 1dev/server:10.5.3 container_name: onedev environment: - hibernate_dialect=io.onedev.server.persistence.PostgreSQLDialect From 929fdcc164d454b6f88f786a5719cc92aae052ab Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 04:00:28 +0000 Subject: [PATCH 075/161] chore(deps): update lobehub/lobe-chat docker tag to v0.151.0 (#3320) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index bb1c9bd2..b9b92b9c 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 120, - "version": "0.150.10", + "tipi_version": 121, + "version": "0.151.0", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 485bddbe..70e9467d 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.150.10 + image: lobehub/lobe-chat:v0.151.0 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 5f54fe66f7a02586033aacc4c41fd1ac7090a28b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 06:04:03 +0000 Subject: [PATCH 076/161] chore(deps): update shaneisrael/fireshare docker tag to v1.2.20 (#3322) --- apps/fireshare/config.json | 4 ++-- apps/fireshare/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/fireshare/config.json b/apps/fireshare/config.json index 5ba11795..2198b928 100644 --- a/apps/fireshare/config.json +++ b/apps/fireshare/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "fireshare", - "tipi_version": 12, - "version": "1.2.19", + "tipi_version": 13, + "version": "1.2.20", "categories": [ "development" ], diff --git a/apps/fireshare/docker-compose.yml b/apps/fireshare/docker-compose.yml index ca858062..52da163b 100644 --- a/apps/fireshare/docker-compose.yml +++ b/apps/fireshare/docker-compose.yml @@ -3,7 +3,7 @@ version: "3" services: fireshare: container_name: fireshare - image: shaneisrael/fireshare:v1.2.19 + image: shaneisrael/fireshare:v1.2.20 ports: - ${APP_PORT}:80 volumes: From 833820c1e91919c1ee322f021800f9886fff60d0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 06:04:10 +0000 Subject: [PATCH 077/161] chore(deps): update lobehub/lobe-chat docker tag to v0.151.1 (#3321) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index b9b92b9c..ae1b34ca 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 121, - "version": "0.151.0", + "tipi_version": 122, + "version": "0.151.1", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 70e9467d..d1f6a1cc 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.151.0 + image: lobehub/lobe-chat:v0.151.1 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 603b93c04ed898bac3fb56bf3818164faf76f845 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 11:14:20 +0000 Subject: [PATCH 078/161] chore(deps): update budibase/budibase docker tag to v2.24.0 (#3323) --- apps/budibase/config.json | 4 ++-- apps/budibase/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/budibase/config.json b/apps/budibase/config.json index 559ffd95..b060e95d 100644 --- a/apps/budibase/config.json +++ b/apps/budibase/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "budibase", - "tipi_version": 128, - "version": "2.23.12", + "tipi_version": 129, + "version": "2.24.0", "categories": [ "development" ], diff --git a/apps/budibase/docker-compose.yml b/apps/budibase/docker-compose.yml index 8fcf3ec1..26f93e5b 100644 --- a/apps/budibase/docker-compose.yml +++ b/apps/budibase/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.7' services: budibase: - image: budibase/budibase:2.23.12 + image: budibase/budibase:2.24.0 restart: unless-stopped container_name: budibase ports: From 66b014d57e6776a4fb4dbb3553515afd8043df0f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 17:20:37 +0000 Subject: [PATCH 079/161] chore(deps): update ghcr.io/immich-app/immich-machine-learning docker tag to v1.103.0 (#3325) --- apps/immich/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/immich/docker-compose.yml b/apps/immich/docker-compose.yml index 47340063..fa26da35 100644 --- a/apps/immich/docker-compose.yml +++ b/apps/immich/docker-compose.yml @@ -74,7 +74,7 @@ services: immich-machine-learning: container_name: immich-machine-learning - image: ghcr.io/immich-app/immich-machine-learning:v1.102.3 + image: ghcr.io/immich-app/immich-machine-learning:v1.103.0 volumes: - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload - ${APP_DATA_DIR}/data/immich-ml-cache:/cache From 30f9373c2193cd877af5ad86181247dd2b2fe624 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 17:21:03 +0000 Subject: [PATCH 080/161] chore(deps): update lobehub/lobe-chat docker tag to v0.151.3 (#3324) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index ae1b34ca..1c9fc7fb 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 122, - "version": "0.151.1", + "tipi_version": 123, + "version": "0.151.3", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index d1f6a1cc..0e4feafd 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.151.1 + image: lobehub/lobe-chat:v0.151.3 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From cf103fc79a3147b7c3342d3232721cfbf6af9164 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 18:09:11 +0000 Subject: [PATCH 081/161] chore(deps): update lobehub/lobe-chat docker tag to v0.151.4 (#3327) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 1c9fc7fb..68109ce1 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 123, - "version": "0.151.3", + "tipi_version": 124, + "version": "0.151.4", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 0e4feafd..89b2b558 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.151.3 + image: lobehub/lobe-chat:v0.151.4 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From d260376025533588615a14693e60575c8cab4214 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 18:09:30 +0000 Subject: [PATCH 082/161] chore(deps): update ghcr.io/immich-app/immich-server docker tag to v1.103.0 (#3328) --- apps/immich/config.json | 4 ++-- apps/immich/docker-compose.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/immich/config.json b/apps/immich/config.json index 7b7fb566..ef5a240b 100644 --- a/apps/immich/config.json +++ b/apps/immich/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8128, "id": "immich", - "tipi_version": 86, - "version": "1.102.3", + "tipi_version": 87, + "version": "1.103.0", "categories": [ "data", "photography" diff --git a/apps/immich/docker-compose.yml b/apps/immich/docker-compose.yml index fa26da35..5f381298 100644 --- a/apps/immich/docker-compose.yml +++ b/apps/immich/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.7" services: immich: container_name: immich - image: ghcr.io/immich-app/immich-server:v1.102.3 + image: ghcr.io/immich-app/immich-server:v1.103.0 command: ["start-server.sh"] volumes: - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload @@ -52,7 +52,7 @@ services: immich-microservices: container_name: immich-microservices - image: ghcr.io/immich-app/immich-server:v1.102.3 + image: ghcr.io/immich-app/immich-server:v1.103.0 command: ["start-microservices.sh"] volumes: - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload From d7dd4be4d84f8e1df6c94839f80f0917abaa58cd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 22:37:54 +0000 Subject: [PATCH 083/161] chore(deps): update ghcr.io/immich-app/immich-machine-learning docker tag to v1.103.1 (#3329) --- apps/immich/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/immich/docker-compose.yml b/apps/immich/docker-compose.yml index 5f381298..df706d48 100644 --- a/apps/immich/docker-compose.yml +++ b/apps/immich/docker-compose.yml @@ -74,7 +74,7 @@ services: immich-machine-learning: container_name: immich-machine-learning - image: ghcr.io/immich-app/immich-machine-learning:v1.103.0 + image: ghcr.io/immich-app/immich-machine-learning:v1.103.1 volumes: - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload - ${APP_DATA_DIR}/data/immich-ml-cache:/cache From 589db7c765ec05b1f9dd34721dcdc8bb7db1d0e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 22:38:16 +0000 Subject: [PATCH 084/161] chore(deps): update ghcr.io/immich-app/immich-server docker tag to v1.103.1 (#3330) --- apps/immich/config.json | 4 ++-- apps/immich/docker-compose.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/immich/config.json b/apps/immich/config.json index ef5a240b..770ab8a5 100644 --- a/apps/immich/config.json +++ b/apps/immich/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8128, "id": "immich", - "tipi_version": 87, - "version": "1.103.0", + "tipi_version": 88, + "version": "1.103.1", "categories": [ "data", "photography" diff --git a/apps/immich/docker-compose.yml b/apps/immich/docker-compose.yml index df706d48..66bedcb3 100644 --- a/apps/immich/docker-compose.yml +++ b/apps/immich/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.7" services: immich: container_name: immich - image: ghcr.io/immich-app/immich-server:v1.103.0 + image: ghcr.io/immich-app/immich-server:v1.103.1 command: ["start-server.sh"] volumes: - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload @@ -52,7 +52,7 @@ services: immich-microservices: container_name: immich-microservices - image: ghcr.io/immich-app/immich-server:v1.103.0 + image: ghcr.io/immich-app/immich-server:v1.103.1 command: ["start-microservices.sh"] volumes: - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload From 304d5ec1599a3eda4069440d210eefcaf94da008 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Apr 2024 04:11:29 +0000 Subject: [PATCH 085/161] chore(deps): update lobehub/lobe-chat docker tag to v0.151.5 (#3332) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 68109ce1..b36a9d99 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 124, - "version": "0.151.4", + "tipi_version": 125, + "version": "0.151.5", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 89b2b558..0233df14 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.151.4 + image: lobehub/lobe-chat:v0.151.5 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From b65be854c724b4219f2bf29ef3bd03f3f97030a1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Apr 2024 07:25:41 +0000 Subject: [PATCH 086/161] chore(deps): update lobehub/lobe-chat docker tag to v0.151.7 (#3333) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index b36a9d99..edd65eae 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 125, - "version": "0.151.5", + "tipi_version": 126, + "version": "0.151.7", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 0233df14..f5e7c729 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.151.5 + image: lobehub/lobe-chat:v0.151.7 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 5f050dd2ccd47508084007b58e393bcfe9157d71 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Apr 2024 11:52:20 +0000 Subject: [PATCH 087/161] chore(deps): update lobehub/lobe-chat docker tag to v0.151.10 (#3334) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index edd65eae..2c662a67 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 126, - "version": "0.151.7", + "tipi_version": 127, + "version": "0.151.10", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index f5e7c729..0f545153 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.151.7 + image: lobehub/lobe-chat:v0.151.10 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 4ddcb4203d46e1b3a18529622414d2bca9861daa Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Apr 2024 11:54:51 +0000 Subject: [PATCH 088/161] chore(deps): update halohub/halo docker tag to v2.15.0 (#3335) --- apps/halo/config.json | 4 ++-- apps/halo/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/halo/config.json b/apps/halo/config.json index 372fa1f4..1af3930e 100644 --- a/apps/halo/config.json +++ b/apps/halo/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8092, "id": "halo", - "tipi_version": 25, - "version": "2.14.1", + "tipi_version": 26, + "version": "2.15.0", "description": "Halo is a powerful and easy-to-use open source website building tool.", "short_desc": "Halo - Open source website building tool.", "categories": [ diff --git a/apps/halo/docker-compose.yml b/apps/halo/docker-compose.yml index ac53b7af..a07f8d51 100644 --- a/apps/halo/docker-compose.yml +++ b/apps/halo/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: halo: - image: halohub/halo:2.14.1 + image: halohub/halo:2.15.0 container_name: halo restart: unless-stopped depends_on: From e04e68245af5b4d8d9e86a903fe05e099260cee9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Apr 2024 17:26:24 +0000 Subject: [PATCH 089/161] chore(deps): update zefhemel/silverbullet docker tag to v0.7.7 (#3337) --- apps/silverbullet/config.json | 4 ++-- apps/silverbullet/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/silverbullet/config.json b/apps/silverbullet/config.json index 82b865b6..7d566e61 100644 --- a/apps/silverbullet/config.json +++ b/apps/silverbullet/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "silverbullet", - "tipi_version": 7, - "version": "0.7.6", + "tipi_version": 8, + "version": "0.7.7", "categories": [ "utilities" ], diff --git a/apps/silverbullet/docker-compose.yml b/apps/silverbullet/docker-compose.yml index 248586eb..3e736203 100644 --- a/apps/silverbullet/docker-compose.yml +++ b/apps/silverbullet/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: silverbullet: - image: zefhemel/silverbullet:0.7.6 + image: zefhemel/silverbullet:0.7.7 container_name: 'silverbullet' restart: unless-stopped volumes: From 2dbb244abdb4d1d28af5b2d758843bd20c958ef0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Apr 2024 17:28:55 +0000 Subject: [PATCH 090/161] chore(deps): update lobehub/lobe-chat docker tag to v0.152.0 (#3338) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 2c662a67..a1e9056f 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 127, - "version": "0.151.10", + "tipi_version": 128, + "version": "0.152.0", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 0f545153..80be385f 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.151.10 + image: lobehub/lobe-chat:v0.152.0 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 8e99b7998ffd3e6cfae4dbc9e9f13cc03fa432a3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Apr 2024 20:03:10 +0000 Subject: [PATCH 091/161] chore(deps): update ghcr.io/bitmagnet-io/bitmagnet docker tag to v0.8.0 (#3339) --- apps/bitmagnet/config.json | 4 ++-- apps/bitmagnet/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/bitmagnet/config.json b/apps/bitmagnet/config.json index 51792c3e..45c7e6eb 100644 --- a/apps/bitmagnet/config.json +++ b/apps/bitmagnet/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "bitmagnet", - "tipi_version": 17, - "version": "0.7.14", + "tipi_version": 18, + "version": "0.8.0", "categories": [ "media" ], diff --git a/apps/bitmagnet/docker-compose.yml b/apps/bitmagnet/docker-compose.yml index 81afa8a4..b19a6be5 100644 --- a/apps/bitmagnet/docker-compose.yml +++ b/apps/bitmagnet/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: bitmagnet: - image: ghcr.io/bitmagnet-io/bitmagnet:0.7.14 + image: ghcr.io/bitmagnet-io/bitmagnet:v0.8.0 restart: unless-stopped command: - worker From b1a979db507fdf12ea2f6aba1a2623244955984c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Apr 2024 21:57:44 +0000 Subject: [PATCH 092/161] chore(deps): update dockurr/windows docker tag to v3 (#3340) --- apps/windows/config.json | 4 ++-- apps/windows/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/windows/config.json b/apps/windows/config.json index e0fbe322..d1d6b7e6 100644 --- a/apps/windows/config.json +++ b/apps/windows/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "windows", "description": "Run windows in docker...because why not?", - "tipi_version": 21, - "version": "2.22", + "tipi_version": 22, + "version": "3.00", "categories": [ "utilities" ], diff --git a/apps/windows/docker-compose.yml b/apps/windows/docker-compose.yml index 1f4c7364..119eabbf 100644 --- a/apps/windows/docker-compose.yml +++ b/apps/windows/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.9" services: windows: container_name: windows - image: dockurr/windows:2.22 + image: dockurr/windows:3.00 restart: unless-stopped devices: - /dev/kvm From fe324d9bc8df8544a6cb7c01b94763f79cfb6305 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 01:54:11 +0000 Subject: [PATCH 093/161] chore(deps): update portainer/portainer-ce docker tag to v2.20.2 (#3341) --- apps/portainer/config.json | 4 ++-- apps/portainer/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/portainer/config.json b/apps/portainer/config.json index fa4468cd..cc501279 100644 --- a/apps/portainer/config.json +++ b/apps/portainer/config.json @@ -6,8 +6,8 @@ "exposable": true, "https": true, "id": "portainer", - "tipi_version": 20, - "version": "2.20.1-alpine", + "tipi_version": 21, + "version": "2.20.2-alpine", "categories": [ "utilities" ], diff --git a/apps/portainer/docker-compose.yml b/apps/portainer/docker-compose.yml index a2b99bfb..b77e045b 100644 --- a/apps/portainer/docker-compose.yml +++ b/apps/portainer/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: portainer: - image: portainer/portainer-ce:2.20.1-alpine + image: portainer/portainer-ce:2.20.2-alpine container_name: portainer restart: unless-stopped ports: From d56519d24cb0290e15423e3fc2245d7efdc9696f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 01:56:33 +0000 Subject: [PATCH 094/161] chore(deps): update simplexchat/smp-server docker tag to v5.7.0 (#3342) --- apps/simplex-smp/config.json | 4 ++-- apps/simplex-smp/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/simplex-smp/config.json b/apps/simplex-smp/config.json index 97ebceb4..6edd40a3 100644 --- a/apps/simplex-smp/config.json +++ b/apps/simplex-smp/config.json @@ -6,8 +6,8 @@ "exposable": true, "no_gui": true, "id": "simplex-smp", - "tipi_version": 16, - "version": "5.6.2", + "tipi_version": 17, + "version": "5.7.0", "categories": [ "social" ], diff --git a/apps/simplex-smp/docker-compose.yml b/apps/simplex-smp/docker-compose.yml index 43bcfed1..385c8bc7 100644 --- a/apps/simplex-smp/docker-compose.yml +++ b/apps/simplex-smp/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.9' services: simplex-smp: - image: simplexchat/smp-server:v5.6.2 + image: simplexchat/smp-server:v5.7.0 container_name: simplex-smp volumes: - ${APP_DATA_DIR}/data/simplex/logs:/var/opt/simplex:z From 28460d87fb5b690ccaa6d30720820d497f1cddf3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 07:50:09 +0000 Subject: [PATCH 095/161] chore(deps): update lobehub/lobe-chat docker tag to v0.152.1 (#3343) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index a1e9056f..cd031a58 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 128, - "version": "0.152.0", + "tipi_version": 129, + "version": "0.152.1", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 80be385f..ed78dbec 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.152.0 + image: lobehub/lobe-chat:v0.152.1 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 46a3212ba94aa5be238ef106921f8bc321eaa9bf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 09:42:03 +0000 Subject: [PATCH 096/161] chore(deps): update stalwartlabs/mail-server docker tag to v0.7.3 (#3344) --- apps/stalwart-mail/config.json | 4 ++-- apps/stalwart-mail/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/stalwart-mail/config.json b/apps/stalwart-mail/config.json index 08ac4b7a..d53abc02 100644 --- a/apps/stalwart-mail/config.json +++ b/apps/stalwart-mail/config.json @@ -3,8 +3,8 @@ "name": "Stalwart Mail", "available": true, "exposable": true, - "tipi_version": 2, - "version": "0.7.2", + "tipi_version": 3, + "version": "0.7.3", "port": 8677, "id": "stalwart-mail", "categories": [ diff --git a/apps/stalwart-mail/docker-compose.yml b/apps/stalwart-mail/docker-compose.yml index 413adff3..58730e37 100644 --- a/apps/stalwart-mail/docker-compose.yml +++ b/apps/stalwart-mail/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.7" services: stalwart-mail: - image: stalwartlabs/mail-server:v0.7.2 + image: stalwartlabs/mail-server:v0.7.3 container_name: stalwart-mail volumes: - ${APP_DATA_DIR}/data:/opt/stalwart-mail From 44076791eafd971114a407e8ceb442d81e4d44e1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 16:45:54 +0000 Subject: [PATCH 097/161] chore(deps): update lobehub/lobe-chat docker tag to v0.152.2 (#3346) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index cd031a58..13f8be8e 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 129, - "version": "0.152.1", + "tipi_version": 130, + "version": "0.152.2", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index ed78dbec..423c2178 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.152.1 + image: lobehub/lobe-chat:v0.152.2 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From d9b2ccb4f3de8651f5340685622e2f8dc00c0120 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 01:13:41 +0000 Subject: [PATCH 098/161] chore(deps): update lobehub/lobe-chat docker tag to v0.152.4 (#3347) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 13f8be8e..f686c510 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 130, - "version": "0.152.2", + "tipi_version": 131, + "version": "0.152.4", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 423c2178..42e4f481 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.152.2 + image: lobehub/lobe-chat:v0.152.4 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From fefba8a0978b92385f0cf62d497683622f60b5cf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 01:15:58 +0000 Subject: [PATCH 099/161] chore(deps): update dockurr/windows docker tag to v3.01 (#3348) --- apps/windows/config.json | 4 ++-- apps/windows/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/windows/config.json b/apps/windows/config.json index d1d6b7e6..c5a0d50e 100644 --- a/apps/windows/config.json +++ b/apps/windows/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "windows", "description": "Run windows in docker...because why not?", - "tipi_version": 22, - "version": "3.00", + "tipi_version": 23, + "version": "3.01", "categories": [ "utilities" ], diff --git a/apps/windows/docker-compose.yml b/apps/windows/docker-compose.yml index 119eabbf..cf8ee2ed 100644 --- a/apps/windows/docker-compose.yml +++ b/apps/windows/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.9" services: windows: container_name: windows - image: dockurr/windows:3.00 + image: dockurr/windows:3.01 restart: unless-stopped devices: - /dev/kvm From c5c2110903bf9d3d26a8cdf4166b5e9953375c0a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 06:10:31 +0000 Subject: [PATCH 100/161] chore(deps): update invoiceninja/invoiceninja docker tag to v5.8.52 (#3349) --- apps/invoice-ninja/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/invoice-ninja/docker-compose.yml b/apps/invoice-ninja/docker-compose.yml index b910cb09..a8e7cef1 100644 --- a/apps/invoice-ninja/docker-compose.yml +++ b/apps/invoice-ninja/docker-compose.yml @@ -42,7 +42,7 @@ services: traefik.http.routers.invoice-ninja-local.tls: true invoice-ninja-server: - image: invoiceninja/invoiceninja:5.8.51 + image: invoiceninja/invoiceninja:5.8.52 container_name: invoice-ninja-server restart: unless-stopped user: 1500:1500 From d8092101a2da5b4bf8ed92f9a3c85488df106263 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 06:12:58 +0000 Subject: [PATCH 101/161] chore(deps): update lobehub/lobe-chat docker tag to v0.152.5 (#3350) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index f686c510..c6a09c9f 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 131, - "version": "0.152.4", + "tipi_version": 132, + "version": "0.152.5", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 42e4f481..1be2f10c 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.152.4 + image: lobehub/lobe-chat:v0.152.5 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 3274ed5edff39d9b586597af081070cdc3989ad0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 10:31:22 +0000 Subject: [PATCH 102/161] chore(deps): update ghcr.io/dgtlmoon/changedetection.io docker tag to v0.45.22 (#3351) --- apps/changedetection/config.json | 4 ++-- apps/changedetection/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/changedetection/config.json b/apps/changedetection/config.json index 18ad6925..0c1265f3 100644 --- a/apps/changedetection/config.json +++ b/apps/changedetection/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "changedetection", "description": "The best and simplest free open source website change detection, restock monitor and notification service.", - "tipi_version": 19, - "version": "0.45.21", + "tipi_version": 20, + "version": "0.45.22", "categories": [ "utilities" ], diff --git a/apps/changedetection/docker-compose.yml b/apps/changedetection/docker-compose.yml index b13403f1..0edb6107 100644 --- a/apps/changedetection/docker-compose.yml +++ b/apps/changedetection/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.7" services: changedetection: - image: ghcr.io/dgtlmoon/changedetection.io:0.45.21 + image: ghcr.io/dgtlmoon/changedetection.io:0.45.22 container_name: changedetection hostname: changedetection volumes: From 1fa3c59d3ee4dcfcb294351acf0674fa0b64c9aa Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 10:33:39 +0000 Subject: [PATCH 103/161] chore(deps): update ghcr.io/home-assistant/home-assistant docker tag to v2024.5.0 (#3352) --- apps/homeassistant-1/config.json | 4 ++-- apps/homeassistant-1/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/homeassistant-1/config.json b/apps/homeassistant-1/config.json index e9baf9b7..15c582ed 100644 --- a/apps/homeassistant-1/config.json +++ b/apps/homeassistant-1/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "homeassistant-1", - "tipi_version": 13, - "version": "2024.4.4", + "tipi_version": 14, + "version": "2024.5.0", "categories": [ "automation" ], diff --git a/apps/homeassistant-1/docker-compose.yml b/apps/homeassistant-1/docker-compose.yml index 79176e9e..b274fd7d 100644 --- a/apps/homeassistant-1/docker-compose.yml +++ b/apps/homeassistant-1/docker-compose.yml @@ -2,7 +2,7 @@ version: '3' services: homeassistant-1: - image: ghcr.io/home-assistant/home-assistant:2024.4.4 + image: ghcr.io/home-assistant/home-assistant:2024.5.0 container_name: homeassistant-1 environment: - TZ=${TZ} From 01ce37ddcdfd1ee7b20f72bcc43fe3d7c9d739fd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 12:07:31 +0000 Subject: [PATCH 104/161] chore(deps): update koenkk/zigbee2mqtt docker tag to v1.37.0 (#3353) --- apps/zigbee2mqtt/config.json | 4 ++-- apps/zigbee2mqtt/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/zigbee2mqtt/config.json b/apps/zigbee2mqtt/config.json index a6135b87..5e78dba9 100755 --- a/apps/zigbee2mqtt/config.json +++ b/apps/zigbee2mqtt/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "zigbee2mqtt", - "tipi_version": 3, - "version": "1.36.1", + "tipi_version": 4, + "version": "1.37.0", "categories": [ "utilities", "automation" diff --git a/apps/zigbee2mqtt/docker-compose.yml b/apps/zigbee2mqtt/docker-compose.yml index 45755193..ee6ab699 100644 --- a/apps/zigbee2mqtt/docker-compose.yml +++ b/apps/zigbee2mqtt/docker-compose.yml @@ -3,7 +3,7 @@ version: '3.7' services: zigbee2mqtt: container_name: zigbee2mqtt - image: koenkk/zigbee2mqtt:1.36.1 + image: koenkk/zigbee2mqtt:1.37.0 environment: - TZ=${TZ} volumes: From 1cf3d0f10109e2c18c4b5b59fe47d80a8f347f64 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 12:09:46 +0000 Subject: [PATCH 105/161] chore(deps): update lscr.io/linuxserver/sabnzbd docker tag to v4.3.0 (#3354) --- apps/sabnzbd/config.json | 4 ++-- apps/sabnzbd/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/sabnzbd/config.json b/apps/sabnzbd/config.json index 4d1a6f53..ab480606 100644 --- a/apps/sabnzbd/config.json +++ b/apps/sabnzbd/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "sabnzbd", - "tipi_version": 12, - "version": "4.2.3", + "tipi_version": 13, + "version": "4.3.0", "categories": [ "media", "utilities" diff --git a/apps/sabnzbd/docker-compose.yml b/apps/sabnzbd/docker-compose.yml index 102f7e07..837c384e 100644 --- a/apps/sabnzbd/docker-compose.yml +++ b/apps/sabnzbd/docker-compose.yml @@ -2,7 +2,7 @@ version: '3' services: sabnzbd: - image: lscr.io/linuxserver/sabnzbd:4.2.3 + image: lscr.io/linuxserver/sabnzbd:4.3.0 container_name: sabnzbd ports: - ${APP_PORT}:8080 From 33824c87f5e867df4a2a631bfd7681cbf6e435bc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 17:08:41 +0000 Subject: [PATCH 106/161] chore(deps): update budibase/budibase docker tag to v2.24.1 (#3355) --- apps/budibase/config.json | 4 ++-- apps/budibase/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/budibase/config.json b/apps/budibase/config.json index b060e95d..2b85a422 100644 --- a/apps/budibase/config.json +++ b/apps/budibase/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "budibase", - "tipi_version": 129, - "version": "2.24.0", + "tipi_version": 130, + "version": "2.24.1", "categories": [ "development" ], diff --git a/apps/budibase/docker-compose.yml b/apps/budibase/docker-compose.yml index 26f93e5b..565ea35e 100644 --- a/apps/budibase/docker-compose.yml +++ b/apps/budibase/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.7' services: budibase: - image: budibase/budibase:2.24.0 + image: budibase/budibase:2.24.1 restart: unless-stopped container_name: budibase ports: From 013b6644a23fb5a2b8f5e041d18450146fdb2f4e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 17:11:09 +0000 Subject: [PATCH 107/161] chore(deps): update lobehub/lobe-chat docker tag to v0.152.6 (#3356) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index c6a09c9f..6d0e14e2 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 132, - "version": "0.152.5", + "tipi_version": 133, + "version": "0.152.6", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 1be2f10c..9641547d 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.152.5 + image: lobehub/lobe-chat:v0.152.6 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From a38bc4e705f35373512d208880aef7cc96a4b262 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 18:06:24 +0000 Subject: [PATCH 108/161] chore(deps): update lobehub/lobe-chat docker tag to v0.152.7 (#3358) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 6d0e14e2..97b0a9b0 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 133, - "version": "0.152.6", + "tipi_version": 134, + "version": "0.152.7", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 9641547d..ef022525 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.152.6 + image: lobehub/lobe-chat:v0.152.7 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 796d5d803d19394bee1be60caac6d2dffa02db39 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 18:09:07 +0000 Subject: [PATCH 109/161] chore(deps): update simplexchat/smp-server docker tag to v5.7.1 (#3359) --- apps/simplex-smp/config.json | 4 ++-- apps/simplex-smp/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/simplex-smp/config.json b/apps/simplex-smp/config.json index 6edd40a3..c22407c3 100644 --- a/apps/simplex-smp/config.json +++ b/apps/simplex-smp/config.json @@ -6,8 +6,8 @@ "exposable": true, "no_gui": true, "id": "simplex-smp", - "tipi_version": 17, - "version": "5.7.0", + "tipi_version": 18, + "version": "5.7.1", "categories": [ "social" ], diff --git a/apps/simplex-smp/docker-compose.yml b/apps/simplex-smp/docker-compose.yml index 385c8bc7..0227ea18 100644 --- a/apps/simplex-smp/docker-compose.yml +++ b/apps/simplex-smp/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.9' services: simplex-smp: - image: simplexchat/smp-server:v5.7.0 + image: simplexchat/smp-server:v5.7.1 container_name: simplex-smp volumes: - ${APP_DATA_DIR}/data/simplex/logs:/var/opt/simplex:z From 173535089bf171bac33e9f0dfcd447104fb44d02 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 22:24:19 +0000 Subject: [PATCH 110/161] chore(deps): update ghcr.io/kiwix/kiwix-serve docker tag to v3.7.0 (#3360) --- apps/kiwix-serve/config.json | 13 +++++++++---- apps/kiwix-serve/docker-compose.yml | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/apps/kiwix-serve/config.json b/apps/kiwix-serve/config.json index f61d40cf..4b2fc826 100644 --- a/apps/kiwix-serve/config.json +++ b/apps/kiwix-serve/config.json @@ -5,14 +5,19 @@ "available": true, "exposable": true, "id": "kiwix-serve", - "tipi_version": 1, - "version": "3.5.0-2", - "categories": ["media"], + "tipi_version": 2, + "version": "3.7.0-2", + "categories": [ + "media" + ], "description": "Kiwix Server is a web server for hosting .zim files", "short_desc": "Kiwix Server is a web server for hosting .zim files", "author": "Kiwix", "source": "https://github.com/kiwix/kiwix-tools/", "website": "https://kiwix.org/", "form_fields": [], - "supported_architectures": ["arm64", "amd64"] + "supported_architectures": [ + "arm64", + "amd64" + ] } diff --git a/apps/kiwix-serve/docker-compose.yml b/apps/kiwix-serve/docker-compose.yml index 56b739a8..5216cb6d 100644 --- a/apps/kiwix-serve/docker-compose.yml +++ b/apps/kiwix-serve/docker-compose.yml @@ -3,7 +3,7 @@ version: '3.9' services: kiwix-serve: container_name: kiwix-serve - image: ghcr.io/kiwix/kiwix-serve:3.5.0-2 + image: ghcr.io/kiwix/kiwix-serve:3.7.0-2 ports: - ${APP_PORT}:8080 volumes: From f601579b7e4fa6bca754eb6d1ff6eb9228d999ee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 22:26:54 +0000 Subject: [PATCH 111/161] chore(deps): update ghostfolio/ghostfolio docker tag to v2.78.0 (#3361) --- apps/ghostfolio/config.json | 4 ++-- apps/ghostfolio/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/ghostfolio/config.json b/apps/ghostfolio/config.json index fb2dee42..d2ce693a 100644 --- a/apps/ghostfolio/config.json +++ b/apps/ghostfolio/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "ghostfolio", - "tipi_version": 79, - "version": "2.77.1", + "tipi_version": 80, + "version": "2.78.0", "categories": [ "finance" ], diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index 82f899ea..4b56be80 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.9" services: ghostfolio: container_name: ghostfolio - image: ghostfolio/ghostfolio:2.77.1 + image: ghostfolio/ghostfolio:2.78.0 restart: unless-stopped ports: - ${APP_PORT}:3333 From 0f39a01dfe93269c512319d416ab5bfc6a2f55e1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 00:11:11 +0000 Subject: [PATCH 112/161] chore(deps): update invoiceninja/invoiceninja docker tag to v5.8.53 (#3362) --- apps/invoice-ninja/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/invoice-ninja/docker-compose.yml b/apps/invoice-ninja/docker-compose.yml index a8e7cef1..94a543f0 100644 --- a/apps/invoice-ninja/docker-compose.yml +++ b/apps/invoice-ninja/docker-compose.yml @@ -42,7 +42,7 @@ services: traefik.http.routers.invoice-ninja-local.tls: true invoice-ninja-server: - image: invoiceninja/invoiceninja:5.8.52 + image: invoiceninja/invoiceninja:5.8.53 container_name: invoice-ninja-server restart: unless-stopped user: 1500:1500 From 778f1110334cdc9ef9e6faa0863eaa30fcc7f6f0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 07:35:59 +0000 Subject: [PATCH 113/161] chore(deps): update kanboard/kanboard docker tag to v1.2.36 (#3363) --- apps/kanboard/config.json | 4 ++-- apps/kanboard/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/kanboard/config.json b/apps/kanboard/config.json index dcf47c32..43c14b0d 100644 --- a/apps/kanboard/config.json +++ b/apps/kanboard/config.json @@ -5,8 +5,8 @@ "port": 8010, "id": "kanboard", "description": "Kanboard is a free and open source Kanban project management software.", - "tipi_version": 9, - "version": "1.2.35", + "tipi_version": 10, + "version": "1.2.36", "categories": [ "development" ], diff --git a/apps/kanboard/docker-compose.yml b/apps/kanboard/docker-compose.yml index 1ae8cdf5..4bc2d3dd 100644 --- a/apps/kanboard/docker-compose.yml +++ b/apps/kanboard/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.9" services: kanboard: container_name: kanboard - image: kanboard/kanboard:v1.2.35 + image: kanboard/kanboard:v1.2.36 environment: - PLUGIN_INSTALLER=${PLUGIN_INSTALLER} ports: From bf3954fcf634ed39de5590eb17094631e6c5685c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 07:38:23 +0000 Subject: [PATCH 114/161] chore(deps): update lobehub/lobe-chat docker tag to v0.152.8 (#3364) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 97b0a9b0..ed7bfac9 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 134, - "version": "0.152.7", + "tipi_version": 135, + "version": "0.152.8", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index ef022525..015ebf20 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.152.7 + image: lobehub/lobe-chat:v0.152.8 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From f466d91982cb36e6266dfa84a0e6452fe9a7b16a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 09:20:31 +0000 Subject: [PATCH 115/161] chore(deps): update lobehub/lobe-chat docker tag to v0.152.9 (#3365) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index ed7bfac9..1eaafe0c 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 135, - "version": "0.152.8", + "tipi_version": 136, + "version": "0.152.9", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 015ebf20..a884c597 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.152.8 + image: lobehub/lobe-chat:v0.152.9 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From e6911a695ed0a6723aaafec7a79711c579975aa4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 12:36:08 +0000 Subject: [PATCH 116/161] chore(deps): update ghcr.io/plankanban/planka docker tag to v1.17.2 (#3367) --- apps/planka/config.json | 4 ++-- apps/planka/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/planka/config.json b/apps/planka/config.json index ecc4ee00..9f5495a6 100644 --- a/apps/planka/config.json +++ b/apps/planka/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "planka", - "tipi_version": 20, - "version": "1.17.1", + "tipi_version": 21, + "version": "1.17.2", "categories": [ "development" ], diff --git a/apps/planka/docker-compose.yml b/apps/planka/docker-compose.yml index 46eee00b..c4f98344 100644 --- a/apps/planka/docker-compose.yml +++ b/apps/planka/docker-compose.yml @@ -2,7 +2,7 @@ version: '3' services: planka: - image: ghcr.io/plankanban/planka:1.17.1 + image: ghcr.io/plankanban/planka:1.17.2 container_name: planka command: > bash -c From a8abcdc45424f907b45a5891390eb4699e7ccf68 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 12:38:38 +0000 Subject: [PATCH 117/161] chore(deps): update lobehub/lobe-chat docker tag to v0.152.10 (#3368) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 1eaafe0c..486cc348 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 136, - "version": "0.152.9", + "tipi_version": 137, + "version": "0.152.10", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index a884c597..202861c7 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.152.9 + image: lobehub/lobe-chat:v0.152.10 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 0469c3276375c08d13bb931fc2416fa1d9a176b1 Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Fri, 3 May 2024 17:22:23 +0200 Subject: [PATCH 118/161] Fix invidious healthcheck (#3370) * Fix Invidious healthcheck * Bump version --- apps/invidious/config.json | 2 +- apps/invidious/docker-compose.arm64.yml | 5 +---- apps/invidious/docker-compose.yml | 5 +---- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/apps/invidious/config.json b/apps/invidious/config.json index e3aba1c5..996e21f4 100644 --- a/apps/invidious/config.json +++ b/apps/invidious/config.json @@ -6,7 +6,7 @@ "port": 8095, "id": "invidious", "version": "latest", - "tipi_version": 7, + "tipi_version": 8, "categories": ["media", "social"], "description": "Invidious is an open source alternative front-end to YouTube.", "short_desc": "An alternative front-end to YouTube", diff --git a/apps/invidious/docker-compose.arm64.yml b/apps/invidious/docker-compose.arm64.yml index 30d4be40..a2615b74 100644 --- a/apps/invidious/docker-compose.arm64.yml +++ b/apps/invidious/docker-compose.arm64.yml @@ -19,13 +19,10 @@ services: check_tables: true hmac_key: ${INVIDIOUS_HMAC_KEY} healthcheck: - test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/comments/jNQXAC9IVRw || exit 1 + test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/trending || exit 1 interval: 30s timeout: 5s retries: 2 - depends_on: - invidious-db: - condition: service_healthy networks: - tipi_main_network labels: diff --git a/apps/invidious/docker-compose.yml b/apps/invidious/docker-compose.yml index 0367563e..a39e29e8 100644 --- a/apps/invidious/docker-compose.yml +++ b/apps/invidious/docker-compose.yml @@ -20,13 +20,10 @@ services: check_tables: true hmac_key: ${INVIDIOUS_HMAC_KEY} healthcheck: - test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/comments/jNQXAC9IVRw || exit 1 + test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/trending || exit 1 interval: 30s timeout: 5s retries: 2 - depends_on: - invidious-db: - condition: service_healthy networks: - tipi_main_network labels: From eaea47ccd89532a2fdbd4329929f3ca4e6f71c17 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 15:24:57 +0000 Subject: [PATCH 119/161] chore(deps): update lobehub/lobe-chat docker tag to v0.152.11 (#3372) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 486cc348..4dadc691 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 137, - "version": "0.152.10", + "tipi_version": 138, + "version": "0.152.11", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 202861c7..c8d2047d 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.152.10 + image: lobehub/lobe-chat:v0.152.11 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 2ae1cec5400915ba7887eebfee522dab34b7ae90 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 17:14:46 +0000 Subject: [PATCH 120/161] chore(deps): update ghcr.io/home-assistant/home-assistant docker tag to v2024.5.1 (#3373) --- apps/homeassistant-1/config.json | 4 ++-- apps/homeassistant-1/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/homeassistant-1/config.json b/apps/homeassistant-1/config.json index 15c582ed..d74c363e 100644 --- a/apps/homeassistant-1/config.json +++ b/apps/homeassistant-1/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "homeassistant-1", - "tipi_version": 14, - "version": "2024.5.0", + "tipi_version": 15, + "version": "2024.5.1", "categories": [ "automation" ], diff --git a/apps/homeassistant-1/docker-compose.yml b/apps/homeassistant-1/docker-compose.yml index b274fd7d..39671798 100644 --- a/apps/homeassistant-1/docker-compose.yml +++ b/apps/homeassistant-1/docker-compose.yml @@ -2,7 +2,7 @@ version: '3' services: homeassistant-1: - image: ghcr.io/home-assistant/home-assistant:2024.5.0 + image: ghcr.io/home-assistant/home-assistant:2024.5.1 container_name: homeassistant-1 environment: - TZ=${TZ} From 0c5dc17c5209185359dcaeb305df1b9b9818ce2e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 17:17:05 +0000 Subject: [PATCH 121/161] chore(deps): update actualbudget/actual-server docker tag to v24.5.0 (#3374) --- apps/actual-budget/config.json | 4 ++-- apps/actual-budget/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/actual-budget/config.json b/apps/actual-budget/config.json index 007f02ad..11c11ef6 100644 --- a/apps/actual-budget/config.json +++ b/apps/actual-budget/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8011, "id": "actual-budget", - "tipi_version": 18, - "version": "24.4.0", + "tipi_version": 19, + "version": "24.5.0", "categories": [ "finance" ], diff --git a/apps/actual-budget/docker-compose.yml b/apps/actual-budget/docker-compose.yml index b08014fe..91469e42 100644 --- a/apps/actual-budget/docker-compose.yml +++ b/apps/actual-budget/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.9" services: actual-budget: container_name: actual-budget - image: actualbudget/actual-server:24.4.0 + image: actualbudget/actual-server:24.5.0 restart: unless-stopped ports: - ${APP_PORT}:5006 From cc401b11fc4231242cab40e55f4d07deb850cecf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 19:58:25 +0000 Subject: [PATCH 122/161] chore(deps): update zerotier/zerotier docker tag to v1.14.0 (#3375) --- apps/zerotier/config.json | 9 ++++++--- apps/zerotier/docker-compose.yml | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/zerotier/config.json b/apps/zerotier/config.json index e3b6cb37..4027f933 100644 --- a/apps/zerotier/config.json +++ b/apps/zerotier/config.json @@ -5,8 +5,8 @@ "no_gui": true, "port": 9993, "id": "zerotier", - "tipi_version": 5, - "version": "1.12.2", + "tipi_version": 6, + "version": "1.14.0", "categories": [ "network", "security" @@ -27,5 +27,8 @@ "env_variable": "NETWORK_ID" } ], - "supported_architectures": ["arm64", "amd64"] + "supported_architectures": [ + "arm64", + "amd64" + ] } diff --git a/apps/zerotier/docker-compose.yml b/apps/zerotier/docker-compose.yml index c232f503..ceec4245 100644 --- a/apps/zerotier/docker-compose.yml +++ b/apps/zerotier/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: zerotier: container_name: zerotier - image: zerotier/zerotier:1.12.2 + image: zerotier/zerotier:1.14.0 restart: on-failure command: "${NETWORK_ID}" cap_add: From feb997c086d283dfe79e3e474c52881a3f1e9062 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 May 2024 07:14:35 +0000 Subject: [PATCH 123/161] chore(deps): update josh5/unmanic docker tag to v0.2.7 (#3376) --- apps/unmanic/config.json | 4 ++-- apps/unmanic/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/unmanic/config.json b/apps/unmanic/config.json index eaf22f51..73b0727f 100644 --- a/apps/unmanic/config.json +++ b/apps/unmanic/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "unmanic", - "tipi_version": 3, - "version": "0.2.6", + "tipi_version": 4, + "version": "0.2.7", "categories": [ "utilities", "data", diff --git a/apps/unmanic/docker-compose.yml b/apps/unmanic/docker-compose.yml index 8d543e87..2595fcd3 100644 --- a/apps/unmanic/docker-compose.yml +++ b/apps/unmanic/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.5" services: unmanic: - image: josh5/unmanic:0.2.6 + image: josh5/unmanic:0.2.7 restart: unless-stopped container_name: unmanic privileged: true From 9fd96b47f31a0fc31c4a189726a848f219236e2e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 May 2024 07:16:46 +0000 Subject: [PATCH 124/161] chore(deps): update lobehub/lobe-chat docker tag to v0.153.0 (#3377) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 4dadc691..a05f0675 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 138, - "version": "0.152.11", + "tipi_version": 139, + "version": "0.153.0", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index c8d2047d..134cc4ae 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.152.11 + image: lobehub/lobe-chat:v0.153.0 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From f1a0d0caff4f33ba2c0922bac363bea7a6818708 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 May 2024 10:40:47 +0000 Subject: [PATCH 125/161] chore(deps): update lobehub/lobe-chat docker tag to v0.153.1 (#3378) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index a05f0675..71e558de 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 139, - "version": "0.153.0", + "tipi_version": 140, + "version": "0.153.1", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 134cc4ae..0730debc 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.153.0 + image: lobehub/lobe-chat:v0.153.1 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 39b29682f799810354f8b16830736a210b60fd79 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 May 2024 10:43:03 +0000 Subject: [PATCH 126/161] chore(deps): update lscr.io/linuxserver/sabnzbd docker tag to v4.3.1 (#3379) --- apps/sabnzbd/config.json | 4 ++-- apps/sabnzbd/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/sabnzbd/config.json b/apps/sabnzbd/config.json index ab480606..218e9481 100644 --- a/apps/sabnzbd/config.json +++ b/apps/sabnzbd/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "sabnzbd", - "tipi_version": 13, - "version": "4.3.0", + "tipi_version": 14, + "version": "4.3.1", "categories": [ "media", "utilities" diff --git a/apps/sabnzbd/docker-compose.yml b/apps/sabnzbd/docker-compose.yml index 837c384e..9e6ea7a6 100644 --- a/apps/sabnzbd/docker-compose.yml +++ b/apps/sabnzbd/docker-compose.yml @@ -2,7 +2,7 @@ version: '3' services: sabnzbd: - image: lscr.io/linuxserver/sabnzbd:4.3.0 + image: lscr.io/linuxserver/sabnzbd:4.3.1 container_name: sabnzbd ports: - ${APP_PORT}:8080 From 3c28544ec730cc370d814c45f0412549f2ee766a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 May 2024 12:59:02 +0000 Subject: [PATCH 127/161] chore(deps): update dockurr/windows docker tag to v3.02 (#3380) --- apps/windows/config.json | 4 ++-- apps/windows/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/windows/config.json b/apps/windows/config.json index c5a0d50e..21785967 100644 --- a/apps/windows/config.json +++ b/apps/windows/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "windows", "description": "Run windows in docker...because why not?", - "tipi_version": 23, - "version": "3.01", + "tipi_version": 24, + "version": "3.02", "categories": [ "utilities" ], diff --git a/apps/windows/docker-compose.yml b/apps/windows/docker-compose.yml index cf8ee2ed..5e1ef4bf 100644 --- a/apps/windows/docker-compose.yml +++ b/apps/windows/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.9" services: windows: container_name: windows - image: dockurr/windows:3.01 + image: dockurr/windows:3.02 restart: unless-stopped devices: - /dev/kvm From 9ebba3dde528286a9bf21cf2a2c4ecf3fb7d7fa6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 May 2024 16:56:16 +0000 Subject: [PATCH 128/161] chore(deps): update ghostfolio/ghostfolio docker tag to v2.79.0 (#3385) --- apps/ghostfolio/config.json | 4 ++-- apps/ghostfolio/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/ghostfolio/config.json b/apps/ghostfolio/config.json index d2ce693a..717b3e35 100644 --- a/apps/ghostfolio/config.json +++ b/apps/ghostfolio/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "ghostfolio", - "tipi_version": 80, - "version": "2.78.0", + "tipi_version": 81, + "version": "2.79.0", "categories": [ "finance" ], diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index 4b56be80..63efdb38 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.9" services: ghostfolio: container_name: ghostfolio - image: ghostfolio/ghostfolio:2.78.0 + image: ghostfolio/ghostfolio:2.79.0 restart: unless-stopped ports: - ${APP_PORT}:3333 From de67ab30d3b1eab749901156cda25535c3a42817 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 May 2024 22:15:21 +0000 Subject: [PATCH 129/161] chore(deps): update ghcr.io/donkie/spoolman docker tag to v0.17.0 (#3387) --- apps/spoolman/config.json | 40 ++++++++++++++++---------------- apps/spoolman/docker-compose.yml | 2 +- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/apps/spoolman/config.json b/apps/spoolman/config.json index 036a7de5..670bf1b8 100644 --- a/apps/spoolman/config.json +++ b/apps/spoolman/config.json @@ -1,21 +1,21 @@ { - "name": "Spoolman", - "available": true, - "port": 7912, - "exposable": true, - "id": "spoolman", - "description": "Spoolman is a web service that helps you keep track of your filament spools and how they are being used. It acts as a database, where other printer software such as Octoprint and Moonraker can interact with to have a centralized place for spool information. For example, if used together with Moonraker, your spool weight will automatically be reduced as your print is progressing.", - "tipi_version": 1, - "version": "0.16.1", - "categories": [ - "utilities", - "automation" - ], - "short_desc": "Keep track of your inventory of 3D-printer filament spools", - "author": "Donkie", - "source": "https://github.com/Donkie/Spoolman", - "supported_architectures": [ - "arm64", - "amd64" - ] - } \ No newline at end of file + "name": "Spoolman", + "available": true, + "port": 7912, + "exposable": true, + "id": "spoolman", + "description": "Spoolman is a web service that helps you keep track of your filament spools and how they are being used. It acts as a database, where other printer software such as Octoprint and Moonraker can interact with to have a centralized place for spool information. For example, if used together with Moonraker, your spool weight will automatically be reduced as your print is progressing.", + "tipi_version": 2, + "version": "0.17.0", + "categories": [ + "utilities", + "automation" + ], + "short_desc": "Keep track of your inventory of 3D-printer filament spools", + "author": "Donkie", + "source": "https://github.com/Donkie/Spoolman", + "supported_architectures": [ + "arm64", + "amd64" + ] +} diff --git a/apps/spoolman/docker-compose.yml b/apps/spoolman/docker-compose.yml index 4df23f9d..1801ecaf 100644 --- a/apps/spoolman/docker-compose.yml +++ b/apps/spoolman/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.8' services: spoolman: container_name: spoolman - image: ghcr.io/donkie/spoolman:0.16.1 + image: ghcr.io/donkie/spoolman:0.17.0 restart: unless-stopped volumes: - ${APP_DATA_DIR}/data:/home/app/.local/share/spoolman From ed97d6bbdb79c7f4724e313bc177302874e9a9bc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 5 May 2024 00:29:12 +0000 Subject: [PATCH 130/161] chore(deps): update lscr.io/linuxserver/readarr docker tag to v0.3.26 (#3388) --- apps/readarr/config.json | 4 ++-- apps/readarr/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/readarr/config.json b/apps/readarr/config.json index 4bc11ff6..cc81e739 100644 --- a/apps/readarr/config.json +++ b/apps/readarr/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8112, "id": "readarr", - "tipi_version": 16, - "version": "0.3.25-nightly", + "tipi_version": 17, + "version": "0.3.26-nightly", "categories": [ "books", "media" diff --git a/apps/readarr/docker-compose.yml b/apps/readarr/docker-compose.yml index da77d79a..b295b7e6 100644 --- a/apps/readarr/docker-compose.yml +++ b/apps/readarr/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.7" services: readarr: - image: lscr.io/linuxserver/readarr:0.3.25-nightly + image: lscr.io/linuxserver/readarr:0.3.26-nightly container_name: readarr environment: - PUID=1000 From 3a2b1ce3ce0771560a9d0e1fe472b3e4bdc2a245 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 5 May 2024 13:03:16 +0000 Subject: [PATCH 131/161] chore(deps): update lscr.io/linuxserver/readarr docker tag to v0.3.27 (#3389) --- apps/readarr/config.json | 4 ++-- apps/readarr/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/readarr/config.json b/apps/readarr/config.json index cc81e739..26e2e39f 100644 --- a/apps/readarr/config.json +++ b/apps/readarr/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8112, "id": "readarr", - "tipi_version": 17, - "version": "0.3.26-nightly", + "tipi_version": 18, + "version": "0.3.27-nightly", "categories": [ "books", "media" diff --git a/apps/readarr/docker-compose.yml b/apps/readarr/docker-compose.yml index b295b7e6..2f6493a5 100644 --- a/apps/readarr/docker-compose.yml +++ b/apps/readarr/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.7" services: readarr: - image: lscr.io/linuxserver/readarr:0.3.26-nightly + image: lscr.io/linuxserver/readarr:0.3.27-nightly container_name: readarr environment: - PUID=1000 From dba80a4a36f4091dc15daa85e5ac58e8edbbca1e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 5 May 2024 13:05:42 +0000 Subject: [PATCH 132/161] chore(deps): update 1dev/server docker tag to v10.6.0 (#3390) --- apps/onedev/config.json | 4 ++-- apps/onedev/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/onedev/config.json b/apps/onedev/config.json index 9db4b41c..b3b944fc 100644 --- a/apps/onedev/config.json +++ b/apps/onedev/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "onedev", - "tipi_version": 91, - "version": "10.5.3", + "tipi_version": 92, + "version": "10.6.0", "categories": [ "development" ], diff --git a/apps/onedev/docker-compose.yml b/apps/onedev/docker-compose.yml index 5caed403..5d64f9b7 100644 --- a/apps/onedev/docker-compose.yml +++ b/apps/onedev/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: onedev: - image: 1dev/server:10.5.3 + image: 1dev/server:10.6.0 container_name: onedev environment: - hibernate_dialect=io.onedev.server.persistence.PostgreSQLDialect From ae4478dca45d42eca1a0da10b6afd98d43736a89 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 5 May 2024 19:32:22 +0000 Subject: [PATCH 133/161] chore(deps): update simplexchat/smp-server docker tag to v5.7.2 (#3391) --- apps/simplex-smp/config.json | 4 ++-- apps/simplex-smp/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/simplex-smp/config.json b/apps/simplex-smp/config.json index c22407c3..2398e788 100644 --- a/apps/simplex-smp/config.json +++ b/apps/simplex-smp/config.json @@ -6,8 +6,8 @@ "exposable": true, "no_gui": true, "id": "simplex-smp", - "tipi_version": 18, - "version": "5.7.1", + "tipi_version": 19, + "version": "5.7.2", "categories": [ "social" ], diff --git a/apps/simplex-smp/docker-compose.yml b/apps/simplex-smp/docker-compose.yml index 0227ea18..ff3f4a0a 100644 --- a/apps/simplex-smp/docker-compose.yml +++ b/apps/simplex-smp/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.9' services: simplex-smp: - image: simplexchat/smp-server:v5.7.1 + image: simplexchat/smp-server:v5.7.2 container_name: simplex-smp volumes: - ${APP_DATA_DIR}/data/simplex/logs:/var/opt/simplex:z From 7fb5a5637c5358d44c361005402fbf58d0e61da7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 5 May 2024 19:34:22 +0000 Subject: [PATCH 134/161] chore(deps): update ghcr.io/cheshire-cat-ai/core docker tag to v1.6.0 (#3392) --- apps/cheshire-cat-ai/config.json | 44 ++++++++++++------------- apps/cheshire-cat-ai/docker-compose.yml | 2 +- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/apps/cheshire-cat-ai/config.json b/apps/cheshire-cat-ai/config.json index e829f767..a7f75d5c 100644 --- a/apps/cheshire-cat-ai/config.json +++ b/apps/cheshire-cat-ai/config.json @@ -1,23 +1,23 @@ { - "name": "Cheshire Cat AI", - "available": true, - "port": 1865, - "exposable": true, - "id": "cheshire-cat-ai", - "description": "The Cheshire Cat is an open-source, hackable and production-ready framework that allows developing intelligent personal AI assistant agents on top of Large Language Models (LLM).", - "tipi_version": 1, - "version": "1.5.3", - "categories": [ - "ai" - ], - "short_desc": "A production-ready AI framework to develop AI agents.", - "author": "pieroit", - "source": "https://github.com/cheshire-cat-ai/core", - "website": "https://cheshirecat.ai", - "form_fields": [], - "url_suffix": "/admin", - "supported_architectures": [ - "amd64", - "arm64" - ] - } \ No newline at end of file + "name": "Cheshire Cat AI", + "available": true, + "port": 1865, + "exposable": true, + "id": "cheshire-cat-ai", + "description": "The Cheshire Cat is an open-source, hackable and production-ready framework that allows developing intelligent personal AI assistant agents on top of Large Language Models (LLM).", + "tipi_version": 2, + "version": "1.6.0", + "categories": [ + "ai" + ], + "short_desc": "A production-ready AI framework to develop AI agents.", + "author": "pieroit", + "source": "https://github.com/cheshire-cat-ai/core", + "website": "https://cheshirecat.ai", + "form_fields": [], + "url_suffix": "/admin", + "supported_architectures": [ + "amd64", + "arm64" + ] +} diff --git a/apps/cheshire-cat-ai/docker-compose.yml b/apps/cheshire-cat-ai/docker-compose.yml index 488b0d82..69c81e13 100644 --- a/apps/cheshire-cat-ai/docker-compose.yml +++ b/apps/cheshire-cat-ai/docker-compose.yml @@ -4,7 +4,7 @@ services: cheshire-cat-ai: networks: - tipi_main_network - image: ghcr.io/cheshire-cat-ai/core:1.5.3 + image: ghcr.io/cheshire-cat-ai/core:1.6.0 container_name: cheshire-cat-ai ports: - ${APP_PORT}:80 From 8752a3de1495db578012c6983b93cf2918b69a43 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 5 May 2024 22:12:05 +0000 Subject: [PATCH 135/161] chore(deps): update ghcr.io/cheshire-cat-ai/core docker tag to v1.6.1 (#3393) --- apps/cheshire-cat-ai/config.json | 4 ++-- apps/cheshire-cat-ai/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/cheshire-cat-ai/config.json b/apps/cheshire-cat-ai/config.json index a7f75d5c..6a7e4dca 100644 --- a/apps/cheshire-cat-ai/config.json +++ b/apps/cheshire-cat-ai/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "cheshire-cat-ai", "description": "The Cheshire Cat is an open-source, hackable and production-ready framework that allows developing intelligent personal AI assistant agents on top of Large Language Models (LLM).", - "tipi_version": 2, - "version": "1.6.0", + "tipi_version": 3, + "version": "1.6.1", "categories": [ "ai" ], diff --git a/apps/cheshire-cat-ai/docker-compose.yml b/apps/cheshire-cat-ai/docker-compose.yml index 69c81e13..204fad05 100644 --- a/apps/cheshire-cat-ai/docker-compose.yml +++ b/apps/cheshire-cat-ai/docker-compose.yml @@ -4,7 +4,7 @@ services: cheshire-cat-ai: networks: - tipi_main_network - image: ghcr.io/cheshire-cat-ai/core:1.6.0 + image: ghcr.io/cheshire-cat-ai/core:1.6.1 container_name: cheshire-cat-ai ports: - ${APP_PORT}:80 From 23e0021acb4c72c09cd9a49638c22d66d4932b31 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 5 May 2024 22:14:22 +0000 Subject: [PATCH 136/161] chore(deps): update privatebin/nginx-fpm-alpine docker tag to v1.7.2 (#3394) --- apps/privatebin/config.json | 4 ++-- apps/privatebin/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/privatebin/config.json b/apps/privatebin/config.json index c204e373..0119bea5 100644 --- a/apps/privatebin/config.json +++ b/apps/privatebin/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8122, "id": "privatebin", - "tipi_version": 8, - "version": "1.7.1", + "tipi_version": 9, + "version": "1.7.2", "categories": [ "utilities" ], diff --git a/apps/privatebin/docker-compose.yml b/apps/privatebin/docker-compose.yml index c538613d..96550b07 100644 --- a/apps/privatebin/docker-compose.yml +++ b/apps/privatebin/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.7" services: privatebin: - image: privatebin/nginx-fpm-alpine:1.7.1 + image: privatebin/nginx-fpm-alpine:1.7.2 container_name: privatebin dns: - ${DNS_IP} From f977ab50f10b9ae1099035f5ab8dc41c34da347c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 00:37:48 +0000 Subject: [PATCH 137/161] chore(deps): update bellamy/wallos docker tag to v1.24.0 (#3395) --- apps/wallos/config.json | 4 ++-- apps/wallos/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/wallos/config.json b/apps/wallos/config.json index 23a5bfc5..14fd2f54 100644 --- a/apps/wallos/config.json +++ b/apps/wallos/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "wallos", - "tipi_version": 29, - "version": "1.23.0", + "tipi_version": 30, + "version": "1.24.0", "categories": [ "finance" ], diff --git a/apps/wallos/docker-compose.yml b/apps/wallos/docker-compose.yml index 0ca5896c..b87e94d5 100644 --- a/apps/wallos/docker-compose.yml +++ b/apps/wallos/docker-compose.yml @@ -2,7 +2,7 @@ version: '3' services: wallos: - image: bellamy/wallos:1.23.0 + image: bellamy/wallos:1.24.0 container_name: wallos environment: - TZ=${TZ} From 6586d800f3403bf301fd3a177801e03c03f4e296 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 00:40:28 +0000 Subject: [PATCH 138/161] chore(deps): update dockurr/windows docker tag to v3.03 (#3396) --- apps/windows/config.json | 4 ++-- apps/windows/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/windows/config.json b/apps/windows/config.json index 21785967..9526d072 100644 --- a/apps/windows/config.json +++ b/apps/windows/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "windows", "description": "Run windows in docker...because why not?", - "tipi_version": 24, - "version": "3.02", + "tipi_version": 25, + "version": "3.03", "categories": [ "utilities" ], diff --git a/apps/windows/docker-compose.yml b/apps/windows/docker-compose.yml index 5e1ef4bf..4d262f4f 100644 --- a/apps/windows/docker-compose.yml +++ b/apps/windows/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.9" services: windows: container_name: windows - image: dockurr/windows:3.02 + image: dockurr/windows:3.03 restart: unless-stopped devices: - /dev/kvm From 1a131ee6126b012fae84fd26cfa2de0f06c4dfee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 03:19:34 +0000 Subject: [PATCH 139/161] chore(deps): update ghcr.io/wekan/wekan docker tag to v7.45 (#3397) --- apps/wekan/config.json | 4 ++-- apps/wekan/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/wekan/config.json b/apps/wekan/config.json index e6b48a87..11e0c406 100644 --- a/apps/wekan/config.json +++ b/apps/wekan/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "wekan", - "tipi_version": 18, - "version": "7.44", + "tipi_version": 19, + "version": "7.45", "categories": [ "development" ], diff --git a/apps/wekan/docker-compose.yml b/apps/wekan/docker-compose.yml index e41524e9..5c3e4848 100644 --- a/apps/wekan/docker-compose.yml +++ b/apps/wekan/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: wekan: - image: ghcr.io/wekan/wekan:v7.44 + image: ghcr.io/wekan/wekan:v7.45 container_name: wekan environment: # https://github.com/wekan/wekan/blob/main/docker-compose.yml From 96384262a6991050a28ff375114f8e4dcd242394 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 03:21:58 +0000 Subject: [PATCH 140/161] chore(deps): update lobehub/lobe-chat docker tag to v0.154.3 (#3398) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 71e558de..5b73b9d8 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 140, - "version": "0.153.1", + "tipi_version": 141, + "version": "0.154.3", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index 0730debc..deb42584 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.153.1 + image: lobehub/lobe-chat:v0.154.3 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From b6a6825ca83d22e87892a7671af17d1fcb8abcd5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 07:12:23 +0000 Subject: [PATCH 141/161] chore(deps): update ghcr.io/gethomepage/homepage docker tag to v0.8.13 (#3399) --- apps/homepage/config.json | 4 ++-- apps/homepage/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/homepage/config.json b/apps/homepage/config.json index cb978e35..56b1a9b0 100644 --- a/apps/homepage/config.json +++ b/apps/homepage/config.json @@ -4,8 +4,8 @@ "available": true, "exposable": true, "port": 8756, - "tipi_version": 10, - "version": "0.8.12", + "tipi_version": 11, + "version": "0.8.13", "id": "homepage", "categories": [ "utilities" diff --git a/apps/homepage/docker-compose.yml b/apps/homepage/docker-compose.yml index 82ec1c99..92ceca3a 100644 --- a/apps/homepage/docker-compose.yml +++ b/apps/homepage/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.9" services: homepage: - image: ghcr.io/gethomepage/homepage:v0.8.12 + image: ghcr.io/gethomepage/homepage:v0.8.13 container_name: homepage restart: unless-stopped ports: From 99d341a28576d9a6fd0da8a048459aea91262ecb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 07:14:50 +0000 Subject: [PATCH 142/161] chore(deps): update lobehub/lobe-chat docker tag to v0.154.4 (#3400) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 5b73b9d8..30fcdda6 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 141, - "version": "0.154.3", + "tipi_version": 142, + "version": "0.154.4", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index deb42584..aa27407f 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.154.3 + image: lobehub/lobe-chat:v0.154.4 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From 89ab45cdd4200404c4a660a71c113e1887446ec8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 09:42:00 +0000 Subject: [PATCH 143/161] chore(deps): update nocodb/nocodb docker tag to v0.207.0 (#3401) --- apps/nocodb/config.json | 4 ++-- apps/nocodb/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/nocodb/config.json b/apps/nocodb/config.json index e81acaa3..c89c56da 100644 --- a/apps/nocodb/config.json +++ b/apps/nocodb/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "nocodb", - "tipi_version": 45, - "version": "0.205.1", + "tipi_version": 46, + "version": "0.207.0", "categories": [ "utilities" ], diff --git a/apps/nocodb/docker-compose.yml b/apps/nocodb/docker-compose.yml index 6ce717f3..6bfb4ea4 100644 --- a/apps/nocodb/docker-compose.yml +++ b/apps/nocodb/docker-compose.yml @@ -12,7 +12,7 @@ services: - NC_AUTH_JWT_SECRET=${NOCODB_JWT_SECRET} - NC_REDIS_URL=redis://default:${NOCODB_REDIS_PASSWORD}@nocodb-redis:6379 - DB_QUERY_LIMIT_DEFAULT=${NOCODB_TABLE_ROWS-25} - image: "nocodb/nocodb:0.205.1" + image: "nocodb/nocodb:0.207.0" ports: - "${APP_PORT}:8080" restart: always From 143cd6cbc4b99f4ddc069ebffdb3cda43d2c2be9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 13:27:15 +0000 Subject: [PATCH 144/161] chore(deps): update lobehub/lobe-chat docker tag to v0.154.5 (#3402) --- apps/lobe-chat/config.json | 4 ++-- apps/lobe-chat/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json index 30fcdda6..10c86a14 100644 --- a/apps/lobe-chat/config.json +++ b/apps/lobe-chat/config.json @@ -5,8 +5,8 @@ "exposable": true, "id": "lobe-chat", "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", - "tipi_version": 142, - "version": "0.154.4", + "tipi_version": 143, + "version": "0.154.5", "categories": [ "ai" ], diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml index aa27407f..137d86d7 100644 --- a/apps/lobe-chat/docker-compose.yml +++ b/apps/lobe-chat/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: lobe-chat: container_name: lobe-chat - image: lobehub/lobe-chat:v0.154.4 + image: lobehub/lobe-chat:v0.154.5 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} From d91d3d3fab2d1eb6bc2bc78ea288977aaa9f608e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 17:07:44 +0000 Subject: [PATCH 145/161] chore(deps): update bellamy/wallos docker tag to v1.25.0 (#3403) --- apps/wallos/config.json | 4 ++-- apps/wallos/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/wallos/config.json b/apps/wallos/config.json index 14fd2f54..dab940db 100644 --- a/apps/wallos/config.json +++ b/apps/wallos/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "wallos", - "tipi_version": 30, - "version": "1.24.0", + "tipi_version": 31, + "version": "1.25.0", "categories": [ "finance" ], diff --git a/apps/wallos/docker-compose.yml b/apps/wallos/docker-compose.yml index b87e94d5..3d94cbb6 100644 --- a/apps/wallos/docker-compose.yml +++ b/apps/wallos/docker-compose.yml @@ -2,7 +2,7 @@ version: '3' services: wallos: - image: bellamy/wallos:1.24.0 + image: bellamy/wallos:1.25.0 container_name: wallos environment: - TZ=${TZ} From 1eb2acaa4741ccf198de5cc91583a58b5729c12d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 17:10:11 +0000 Subject: [PATCH 146/161] chore(deps): update gladysassistant/gladys docker tag to v4.40.0 (#3404) --- apps/gladys/config.json | 4 ++-- apps/gladys/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/gladys/config.json b/apps/gladys/config.json index 388f90a5..a63b59a7 100644 --- a/apps/gladys/config.json +++ b/apps/gladys/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": false, "id": "gladys", - "tipi_version": 33, - "version": "4.39.0", + "tipi_version": 34, + "version": "4.40.0", "categories": [ "automation" ], diff --git a/apps/gladys/docker-compose.yml b/apps/gladys/docker-compose.yml index e1d967f5..cb8cef77 100644 --- a/apps/gladys/docker-compose.yml +++ b/apps/gladys/docker-compose.yml @@ -3,7 +3,7 @@ version: '3' services: gladys: container_name: gladys - image: gladysassistant/gladys:v4.39.0 + image: gladysassistant/gladys:v4.40.0 privileged: true restart: on-failure stop_grace_period: 1m From 6650a4abc972f9cbd19d86b5cc3434896d3a062c Mon Sep 17 00:00:00 2001 From: Brahim Hadriche Date: Mon, 6 May 2024 13:49:21 -0400 Subject: [PATCH 147/161] Invidious config for captions (#3386) * Invidious config for captions * Update docker-compose.yml * version bump --- apps/invidious/config.json | 2 +- apps/invidious/docker-compose.arm64.yml | 1 + apps/invidious/docker-compose.yml | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/invidious/config.json b/apps/invidious/config.json index 996e21f4..43ff8b18 100644 --- a/apps/invidious/config.json +++ b/apps/invidious/config.json @@ -6,7 +6,7 @@ "port": 8095, "id": "invidious", "version": "latest", - "tipi_version": 8, + "tipi_version": 9, "categories": ["media", "social"], "description": "Invidious is an open source alternative front-end to YouTube.", "short_desc": "An alternative front-end to YouTube", diff --git a/apps/invidious/docker-compose.arm64.yml b/apps/invidious/docker-compose.arm64.yml index a2615b74..13c0cdcb 100644 --- a/apps/invidious/docker-compose.arm64.yml +++ b/apps/invidious/docker-compose.arm64.yml @@ -18,6 +18,7 @@ services: port: 5432 check_tables: true hmac_key: ${INVIDIOUS_HMAC_KEY} + use_innertube_for_captions: true healthcheck: test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/trending || exit 1 interval: 30s diff --git a/apps/invidious/docker-compose.yml b/apps/invidious/docker-compose.yml index a39e29e8..d35232bb 100644 --- a/apps/invidious/docker-compose.yml +++ b/apps/invidious/docker-compose.yml @@ -19,6 +19,7 @@ services: port: 5432 check_tables: true hmac_key: ${INVIDIOUS_HMAC_KEY} + use_innertube_for_captions: true healthcheck: test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/trending || exit 1 interval: 30s From 71af71c531fd984f4fa9a529779e07930a851f26 Mon Sep 17 00:00:00 2001 From: Jorge Montejo Date: Mon, 6 May 2024 19:54:38 +0200 Subject: [PATCH 148/161] Fix komga traefik port (#3384) * Fix komga traefik port * Update config.json --- apps/komga/config.json | 2 +- apps/komga/docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/komga/config.json b/apps/komga/config.json index b3830ae1..823f619d 100644 --- a/apps/komga/config.json +++ b/apps/komga/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "komga", - "tipi_version": 2, + "tipi_version": 3, "version": "1.11.1", "categories": [ "media" diff --git a/apps/komga/docker-compose.yml b/apps/komga/docker-compose.yml index ddc48b0c..60acfa99 100644 --- a/apps/komga/docker-compose.yml +++ b/apps/komga/docker-compose.yml @@ -17,7 +17,7 @@ services: # Main traefik.enable: true traefik.http.middlewares.komga-web-redirect.redirectscheme.scheme: https - traefik.http.services.komga.loadbalancer.server.port: 8080 + traefik.http.services.komga.loadbalancer.server.port: 25600 # Web traefik.http.routers.komga-insecure.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.komga-insecure.entrypoints: web From 463967999dbfe7db580b9e15cf7ab94be92ca11d Mon Sep 17 00:00:00 2001 From: Jorge Montejo Date: Mon, 6 May 2024 19:55:49 +0200 Subject: [PATCH 149/161] Update renovate.json (#3369) --- renovate.json | 1 + 1 file changed, 1 insertion(+) diff --git a/renovate.json b/renovate.json index e479e0ac..84180633 100644 --- a/renovate.json +++ b/renovate.json @@ -5,6 +5,7 @@ "gitIgnoredAuthors": ["githubaction@githubaction.com"], "dependencyDashboard": true, "enabledManagers": ["docker-compose", "dockerfile"], + "labels": ["update-image"], "hostRules": [ { "matchHost": "index.docker.io", From 7e8f4236c3e012e2a5a4e940423ecf992aea8c9b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 20:03:13 +0200 Subject: [PATCH 150/161] chore(deps): bump actions/checkout from 4.1.3 to 4.1.5 (#3406) Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.3 to 4.1.5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4.1.3...v4.1.5) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yml | 2 +- .github/workflows/readme-generator.yml | 2 +- .github/workflows/renovate-ci.yml | 6 +++--- .github/workflows/renovate.yml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8764cf67..57785ba0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.5 - name: Install Node.js uses: actions/setup-node@v4 diff --git a/.github/workflows/readme-generator.yml b/.github/workflows/readme-generator.yml index a29bade1..d0d73143 100644 --- a/.github/workflows/readme-generator.yml +++ b/.github/workflows/readme-generator.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.5 - name: Install Bun uses: oven-sh/setup-bun@v1 diff --git a/.github/workflows/renovate-ci.yml b/.github/workflows/renovate-ci.yml index 15c69f88..53480eba 100644 --- a/.github/workflows/renovate-ci.yml +++ b/.github/workflows/renovate-ci.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.5 - name: Get last commit message id: get-last-commit-message @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.5 with: fetch-depth: 0 token: ${{ secrets.PERSONAL_TOKEN }} @@ -58,7 +58,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.5 - name: Install Node.js uses: actions/setup-node@v4 diff --git a/.github/workflows/renovate.yml b/.github/workflows/renovate.yml index f16db7d9..f6bea64f 100644 --- a/.github/workflows/renovate.yml +++ b/.github/workflows/renovate.yml @@ -23,7 +23,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.5 - name: Self-hosted Renovate uses: renovatebot/github-action@v40.1.9 with: From 49463d6e6fab1358365bf3a1591256a4de336254 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 20:20:56 +0200 Subject: [PATCH 151/161] chore(deps): update ghcr.io/wizarrrr/wizarr docker tag to v4 (#3331) * chore(deps): update ghcr.io/wizarrrr/wizarr docker tag to v4 * Update app version [ready] --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Tipi CI --- apps/wizarr/config.json | 4 ++-- apps/wizarr/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/wizarr/config.json b/apps/wizarr/config.json index 94b53939..4f6e629b 100644 --- a/apps/wizarr/config.json +++ b/apps/wizarr/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "wizarr", - "tipi_version": 8, - "version": "3.5.1", + "tipi_version": 9, + "version": "4.0.0", "categories": [ "utilities" ], diff --git a/apps/wizarr/docker-compose.yml b/apps/wizarr/docker-compose.yml index a0f8664b..9961789f 100644 --- a/apps/wizarr/docker-compose.yml +++ b/apps/wizarr/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.8" services: wizarr: container_name: wizarr - image: ghcr.io/wizarrrr/wizarr:3.5.1 + image: ghcr.io/wizarrrr/wizarr:4.0.0 ports: - ${APP_PORT}:5690 volumes: From 04302ef741a8299eff82f32e7da957111670b042 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 20:21:12 +0200 Subject: [PATCH 152/161] chore(deps): bump renovatebot/github-action from 40.1.9 to 40.1.11 (#3326) Bumps [renovatebot/github-action](https://github.com/renovatebot/github-action) from 40.1.9 to 40.1.11. - [Release notes](https://github.com/renovatebot/github-action/releases) - [Changelog](https://github.com/renovatebot/github-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/renovatebot/github-action/compare/v40.1.9...v40.1.11) --- updated-dependencies: - dependency-name: renovatebot/github-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/renovate.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renovate.yml b/.github/workflows/renovate.yml index f6bea64f..fa92e9e1 100644 --- a/.github/workflows/renovate.yml +++ b/.github/workflows/renovate.yml @@ -25,7 +25,7 @@ jobs: - name: Checkout uses: actions/checkout@v4.1.5 - name: Self-hosted Renovate - uses: renovatebot/github-action@v40.1.9 + uses: renovatebot/github-action@v40.1.11 with: token: ${{ secrets.RENOVATE_TOKEN }} env: From 908747ed5005d766867ca061a2188bb0549edd5b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 20:23:05 +0200 Subject: [PATCH 153/161] docs: regenerate readme app list (#3318) Co-authored-by: GitHub Co-authored-by: Nicolas Meienberger <47644445+meienberger@users.noreply.github.com> --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 84d65aec..0c8f13e1 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Activepieces](https://github.com/activepieces/activepieces) - True zapier alternative. - [Actual Budget](https://github.com/actualbudget/actual-server) - Local-first OpenSource Budget tool - [Adguard](https://github.com/AdguardTeam) - World's most advanced adblocker! +- [AFFiNE](https://github.com/toeverything/affine) - AFFiNE is a workspace with fully merged docs, whiteboards and databases. - [Anse](https://github.com/anse-app/anse) - Fully optimized UI for AI Chats. - [ArchiveBox](https://github.com/ArchiveBox/ArchiveBox) - Open source self-hosted web archiving. - [Atuin Server](https://github.com/atuinsh/atuin) - Magical Shell History @@ -27,6 +28,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [ChangeDetection](https://github.com/dgtlmoon/changedetection.io) - Website change detection. - [ChatGPT UI](https://github.com/WongSaang/chatgpt-ui) - A ChatGPT web client that supports multiple users, multiple languages, and multiple database connections for persistent data storage - [Chatpad AI](https://github.com/deiucanta/chatpad) - Not just another ChatGPT user-interface! +- [Cheshire Cat AI](https://github.com/cheshire-cat-ai/core) - A production-ready AI framework to develop AI agents. - [Cloudflare DDNS](https://github.com/joshuaavalon/docker-cloudflare) - Update DNS records on Cloudflare. - [Cloudflared](https://github.com/WisdomSky/Cloudflared-web) - Cloudflare Tunnels in a Web UI - [Code-Server - Web VS Code](https://github.com/linuxserver/docker-code-server) - Code-server is VS Code running on a remote server, accessible through the browser. @@ -101,6 +103,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Kimai](https://github.com/kimai/kimai) - Open source time-tracker - [Kiwix Server](https://github.com/kiwix/kiwix-tools/) - Kiwix Server is a web server for hosting .zim files - [Koillection](https://github.com/benjaminjonard/koillection) - Koillection allow you to manage any kind of collections. +- [Komga](https://github.com/gotson/komga) - A media server for your comics, mangas, BDs, magazines and eBooks. - [LibReddit](https://github.com/spikecodes/libreddit) - Browse reddit without problems! - [LibrePhotos](https://github.com/LibrePhotos/librephotos) - Complete photo management service - [LibreTranslate](https://github.com/LibreTranslate/LibreTranslate) - Free and Open Source Machine Translation API. 100% self-hosted, offline capable and easy to setup. @@ -194,6 +197,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Speedtest Tracker](https://github.com/alexjustesen/speedtest-tracker) - Internet performance tracking application. - [Spoolman](https://github.com/Donkie/Spoolman) - Keep track of your inventory of 3D-printer filament spools - [Sshwifty](https://github.com/nirui/sshwifty) - Web SSH & Telnet (WebSSH & WebTelnet client) +- [Stalwart Mail](https://github.com/stalwartlabs) - Open-source mail server solution with JMAP, IMAP4, and SMTP support - [Stirling-PDF](https://github.com/Frooodle/Stirling-PDF/) - Powerful locally hosted web based PDF manipulation tool. - [Syncthing](https://github.com/syncthing) - Peer-to-peer file synchronization between your devices - [Tailscale](https://github.com/tailscale/tailscale) - The easiest, most secure way to use WireGuard and 2FA. From f2251e5417abcac12081b9b79b0e99dd20b7afbd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 18:25:01 +0000 Subject: [PATCH 154/161] chore(deps): update ghcr.io/wizarrrr/wizarr docker tag to v4.1.0 (#3407) --- apps/wizarr/config.json | 4 ++-- apps/wizarr/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/wizarr/config.json b/apps/wizarr/config.json index 4f6e629b..02fe8628 100644 --- a/apps/wizarr/config.json +++ b/apps/wizarr/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "wizarr", - "tipi_version": 9, - "version": "4.0.0", + "tipi_version": 10, + "version": "4.1.0", "categories": [ "utilities" ], diff --git a/apps/wizarr/docker-compose.yml b/apps/wizarr/docker-compose.yml index 9961789f..643871dc 100644 --- a/apps/wizarr/docker-compose.yml +++ b/apps/wizarr/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.8" services: wizarr: container_name: wizarr - image: ghcr.io/wizarrrr/wizarr:4.0.0 + image: ghcr.io/wizarrrr/wizarr:4.1.0 ports: - ${APP_PORT}:5690 volumes: From 2eb5b80b56cce475ed6bcb88dec992da5ad5f8d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 20:29:27 +0200 Subject: [PATCH 155/161] chore(deps-dev): bump @types/node (#3405) Bumps the minor-patch-dev group with 1 update in the / directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node). Updates `@types/node` from 20.12.7 to 20.12.10 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor-patch-dev ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 98 +++++++++++++++++++++++++------------------------- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/package.json b/package.json index a03e8ee7..be4430e6 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "@commitlint/cz-commitlint": "^19.2.0", "@types/jest": "^28.1.6", "@types/js-yaml": "^4.0.9", - "@types/node": "^20.12.7", + "@types/node": "^20.12.10", "@types/semver": "^7.5.8", "commitizen": "^4.3.0", "eslint": "^8.57.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 258ec0bc..31b82ef3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,13 +7,13 @@ settings: devDependencies: '@commitlint/cli': specifier: ^19.3.0 - version: 19.3.0(@types/node@20.12.7)(typescript@5.4.5) + version: 19.3.0(@types/node@20.12.10)(typescript@5.4.5) '@commitlint/config-conventional': specifier: ^19.2.2 version: 19.2.2 '@commitlint/cz-commitlint': specifier: ^19.2.0 - version: 19.2.0(@types/node@20.12.7)(commitizen@4.3.0)(inquirer@9.2.19)(typescript@5.4.5) + version: 19.2.0(@types/node@20.12.10)(commitizen@4.3.0)(inquirer@9.2.20)(typescript@5.4.5) '@types/jest': specifier: ^28.1.6 version: 28.1.6 @@ -21,14 +21,14 @@ devDependencies: specifier: ^4.0.9 version: 4.0.9 '@types/node': - specifier: ^20.12.7 - version: 20.12.7 + specifier: ^20.12.10 + version: 20.12.10 '@types/semver': specifier: ^7.5.8 version: 7.5.8 commitizen: specifier: ^4.3.0 - version: 4.3.0(@types/node@20.12.7)(typescript@5.4.5) + version: 4.3.0(@types/node@20.12.10)(typescript@5.4.5) eslint: specifier: ^8.57.0 version: 8.57.0 @@ -43,7 +43,7 @@ devDependencies: version: 9.0.11 jest: specifier: ^28.1.3 - version: 28.1.3(@types/node@20.12.7) + version: 28.1.3(@types/node@20.12.10) js-yaml: specifier: ^4.1.0 version: 4.1.0 @@ -392,14 +392,14 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@commitlint/cli@19.3.0(@types/node@20.12.7)(typescript@5.4.5): + /@commitlint/cli@19.3.0(@types/node@20.12.10)(typescript@5.4.5): resolution: {integrity: sha512-LgYWOwuDR7BSTQ9OLZ12m7F/qhNY+NpAyPBgo4YNMkACE7lGuUnuQq1yi9hz1KA4+3VqpOYl8H1rY/LYK43v7g==} engines: {node: '>=v18'} hasBin: true dependencies: '@commitlint/format': 19.3.0 '@commitlint/lint': 19.2.2 - '@commitlint/load': 19.2.0(@types/node@20.12.7)(typescript@5.4.5) + '@commitlint/load': 19.2.0(@types/node@20.12.10)(typescript@5.4.5) '@commitlint/read': 19.2.1 '@commitlint/types': 19.0.3 execa: 8.0.1 @@ -425,7 +425,7 @@ packages: ajv: 8.12.0 dev: true - /@commitlint/cz-commitlint@19.2.0(@types/node@20.12.7)(commitizen@4.3.0)(inquirer@9.2.19)(typescript@5.4.5): + /@commitlint/cz-commitlint@19.2.0(@types/node@20.12.10)(commitizen@4.3.0)(inquirer@9.2.20)(typescript@5.4.5): resolution: {integrity: sha512-kudzHMY9/GxflGyAWMiisiBq2UkyQL1D1eWjGKoC66qQ+5jxRYeDaiVwTdPxYMnmehftNcpksZATDYKqdPP0Wg==} engines: {node: '>=v18'} peerDependencies: @@ -433,11 +433,11 @@ packages: inquirer: ^9.0.0 dependencies: '@commitlint/ensure': 19.0.3 - '@commitlint/load': 19.2.0(@types/node@20.12.7)(typescript@5.4.5) + '@commitlint/load': 19.2.0(@types/node@20.12.10)(typescript@5.4.5) '@commitlint/types': 19.0.3 chalk: 5.3.0 - commitizen: 4.3.0(@types/node@20.12.7)(typescript@5.4.5) - inquirer: 9.2.19 + commitizen: 4.3.0(@types/node@20.12.10)(typescript@5.4.5) + inquirer: 9.2.20 lodash.isplainobject: 4.0.6 word-wrap: 1.2.5 transitivePeerDependencies: @@ -488,7 +488,7 @@ packages: '@commitlint/types': 19.0.3 dev: true - /@commitlint/load@19.2.0(@types/node@20.12.7)(typescript@5.4.5): + /@commitlint/load@19.2.0(@types/node@20.12.10)(typescript@5.4.5): resolution: {integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==} engines: {node: '>=v18'} dependencies: @@ -498,7 +498,7 @@ packages: '@commitlint/types': 19.0.3 chalk: 5.3.0 cosmiconfig: 9.0.0(typescript@5.4.5) - cosmiconfig-typescript-loader: 5.0.0(@types/node@20.12.7)(cosmiconfig@9.0.0)(typescript@5.4.5) + cosmiconfig-typescript-loader: 5.0.0(@types/node@20.12.10)(cosmiconfig@9.0.0)(typescript@5.4.5) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -658,7 +658,7 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@jest/types': 28.1.3 - '@types/node': 20.12.7 + '@types/node': 20.12.10 chalk: 4.1.2 jest-message-util: 28.1.3 jest-util: 28.1.3 @@ -679,14 +679,14 @@ packages: '@jest/test-result': 28.1.3 '@jest/transform': 28.1.3 '@jest/types': 28.1.3 - '@types/node': 20.12.7 + '@types/node': 20.12.10 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.3.2 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 28.1.3 - jest-config: 28.1.3(@types/node@20.12.7) + jest-config: 28.1.3(@types/node@20.12.10) jest-haste-map: 28.1.3 jest-message-util: 28.1.3 jest-regex-util: 28.0.2 @@ -714,7 +714,7 @@ packages: dependencies: '@jest/fake-timers': 28.1.3 '@jest/types': 28.1.3 - '@types/node': 20.12.7 + '@types/node': 20.12.10 jest-mock: 28.1.3 dev: true @@ -741,7 +741,7 @@ packages: dependencies: '@jest/types': 28.1.3 '@sinonjs/fake-timers': 9.1.2 - '@types/node': 20.12.7 + '@types/node': 20.12.10 jest-message-util: 28.1.3 jest-mock: 28.1.3 jest-util: 28.1.3 @@ -773,7 +773,7 @@ packages: '@jest/transform': 28.1.3 '@jest/types': 28.1.3 '@jridgewell/trace-mapping': 0.3.14 - '@types/node': 20.12.7 + '@types/node': 20.12.10 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -862,7 +862,7 @@ packages: '@jest/schemas': 28.1.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.12.7 + '@types/node': 20.12.10 '@types/yargs': 17.0.10 chalk: 4.1.2 dev: true @@ -986,13 +986,13 @@ packages: /@types/conventional-commits-parser@5.0.0: resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} dependencies: - '@types/node': 20.12.7 + '@types/node': 20.12.10 dev: true /@types/graceful-fs@4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 20.12.7 + '@types/node': 20.12.10 dev: true /@types/istanbul-lib-coverage@2.0.4: @@ -1022,8 +1022,8 @@ packages: resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} dev: true - /@types/node@20.12.7: - resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} + /@types/node@20.12.10: + resolution: {integrity: sha512-Eem5pH9pmWBHoGAT8Dr5fdc5rYA+4NAovdM4EktRPVAAiJhmWWfQrA0cFhAbOsQdSfIHjAud6YdkbL69+zSKjw==} dependencies: undici-types: 5.26.5 dev: true @@ -1435,13 +1435,13 @@ packages: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true - /commitizen@4.3.0(@types/node@20.12.7)(typescript@5.4.5): + /commitizen@4.3.0(@types/node@20.12.10)(typescript@5.4.5): resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} engines: {node: '>= 12'} hasBin: true dependencies: cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0(@types/node@20.12.7)(typescript@5.4.5) + cz-conventional-changelog: 3.3.0(@types/node@20.12.10)(typescript@5.4.5) dedent: 0.7.0 detect-indent: 6.1.0 find-node-modules: 2.1.3 @@ -1505,7 +1505,7 @@ packages: safe-buffer: 5.1.2 dev: true - /cosmiconfig-typescript-loader@5.0.0(@types/node@20.12.7)(cosmiconfig@9.0.0)(typescript@5.4.5): + /cosmiconfig-typescript-loader@5.0.0(@types/node@20.12.10)(cosmiconfig@9.0.0)(typescript@5.4.5): resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} engines: {node: '>=v16'} peerDependencies: @@ -1513,7 +1513,7 @@ packages: cosmiconfig: '>=8.2' typescript: '>=4' dependencies: - '@types/node': 20.12.7 + '@types/node': 20.12.10 cosmiconfig: 9.0.0(typescript@5.4.5) jiti: 1.21.0 typescript: 5.4.5 @@ -1544,18 +1544,18 @@ packages: which: 2.0.2 dev: true - /cz-conventional-changelog@3.3.0(@types/node@20.12.7)(typescript@5.4.5): + /cz-conventional-changelog@3.3.0(@types/node@20.12.10)(typescript@5.4.5): resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} engines: {node: '>= 10'} dependencies: chalk: 2.4.2 - commitizen: 4.3.0(@types/node@20.12.7)(typescript@5.4.5) + commitizen: 4.3.0(@types/node@20.12.10)(typescript@5.4.5) conventional-commit-types: 3.0.0 lodash.map: 4.6.0 longest: 2.0.1 word-wrap: 1.2.5 optionalDependencies: - '@commitlint/load': 19.2.0(@types/node@20.12.7)(typescript@5.4.5) + '@commitlint/load': 19.2.0(@types/node@20.12.10)(typescript@5.4.5) transitivePeerDependencies: - '@types/node' - typescript @@ -2305,8 +2305,8 @@ packages: wrap-ansi: 7.0.0 dev: true - /inquirer@9.2.19: - resolution: {integrity: sha512-WpxOT71HGsFya6/mj5PUue0sWwbpbiPfAR+332zLj/siB0QA1PZM8v3GepegFV1Op189UxHUCF6y8AySdtOMVA==} + /inquirer@9.2.20: + resolution: {integrity: sha512-SFwJJPS+Ms75NV+wzFBHjirG4z3tzvis31h+9NyH1tqjIu2c7vCavlXILZ73q/nPYy8/aw4W+DNzLH5MjfYXiA==} engines: {node: '>=18'} dependencies: '@inquirer/figures': 1.0.1 @@ -2475,7 +2475,7 @@ packages: '@jest/expect': 28.1.3 '@jest/test-result': 28.1.3 '@jest/types': 28.1.3 - '@types/node': 20.12.7 + '@types/node': 20.12.10 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -2494,7 +2494,7 @@ packages: - supports-color dev: true - /jest-cli@28.1.3(@types/node@20.12.7): + /jest-cli@28.1.3(@types/node@20.12.10): resolution: {integrity: sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} hasBin: true @@ -2511,7 +2511,7 @@ packages: exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 28.1.3(@types/node@20.12.7) + jest-config: 28.1.3(@types/node@20.12.10) jest-util: 28.1.3 jest-validate: 28.1.3 prompts: 2.4.2 @@ -2522,7 +2522,7 @@ packages: - ts-node dev: true - /jest-config@28.1.3(@types/node@20.12.7): + /jest-config@28.1.3(@types/node@20.12.10): resolution: {integrity: sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} peerDependencies: @@ -2537,7 +2537,7 @@ packages: '@babel/core': 7.18.9 '@jest/test-sequencer': 28.1.3 '@jest/types': 28.1.3 - '@types/node': 20.12.7 + '@types/node': 20.12.10 babel-jest: 28.1.3(@babel/core@7.18.9) chalk: 4.1.2 ci-info: 3.3.2 @@ -2596,7 +2596,7 @@ packages: '@jest/environment': 28.1.3 '@jest/fake-timers': 28.1.3 '@jest/types': 28.1.3 - '@types/node': 20.12.7 + '@types/node': 20.12.10 jest-mock: 28.1.3 jest-util: 28.1.3 dev: true @@ -2612,7 +2612,7 @@ packages: dependencies: '@jest/types': 28.1.3 '@types/graceful-fs': 4.1.5 - '@types/node': 20.12.7 + '@types/node': 20.12.10 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.10 @@ -2663,7 +2663,7 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@jest/types': 28.1.3 - '@types/node': 20.12.7 + '@types/node': 20.12.10 dev: true /jest-pnp-resolver@1.2.2(jest-resolve@28.1.3): @@ -2717,7 +2717,7 @@ packages: '@jest/test-result': 28.1.3 '@jest/transform': 28.1.3 '@jest/types': 28.1.3 - '@types/node': 20.12.7 + '@types/node': 20.12.10 chalk: 4.1.2 emittery: 0.10.2 graceful-fs: 4.2.10 @@ -2803,7 +2803,7 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@jest/types': 28.1.3 - '@types/node': 20.12.7 + '@types/node': 20.12.10 chalk: 4.1.2 ci-info: 3.3.2 graceful-fs: 4.2.10 @@ -2828,7 +2828,7 @@ packages: dependencies: '@jest/test-result': 28.1.3 '@jest/types': 28.1.3 - '@types/node': 20.12.7 + '@types/node': 20.12.10 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.10.2 @@ -2840,12 +2840,12 @@ packages: resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@types/node': 20.12.7 + '@types/node': 20.12.10 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@28.1.3(@types/node@20.12.7): + /jest@28.1.3(@types/node@20.12.10): resolution: {integrity: sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} hasBin: true @@ -2858,7 +2858,7 @@ packages: '@jest/core': 28.1.3 '@jest/types': 28.1.3 import-local: 3.1.0 - jest-cli: 28.1.3(@types/node@20.12.7) + jest-cli: 28.1.3(@types/node@20.12.10) transitivePeerDependencies: - '@types/node' - supports-color @@ -3761,7 +3761,7 @@ packages: '@babel/core': 7.18.9 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 28.1.3(@types/node@20.12.7) + jest: 28.1.3(@types/node@20.12.10) jest-util: 28.1.3 json5: 2.2.1 lodash.memoize: 4.1.2 From 2c150961f36ebf03beef1e0b0b484201eadecfbd Mon Sep 17 00:00:00 2001 From: Jorge Montejo Date: Mon, 6 May 2024 20:30:21 +0200 Subject: [PATCH 156/161] add new config to the bitcoin daemon (#3366) --- apps/bitcoind/config.json | 55 ++++++++++++++++++++++++++++++-- apps/bitcoind/docker-compose.yml | 4 +++ 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/apps/bitcoind/config.json b/apps/bitcoind/config.json index e5742fdf..d64d3519 100644 --- a/apps/bitcoind/config.json +++ b/apps/bitcoind/config.json @@ -7,7 +7,7 @@ "port": 8333, "id": "bitcoind", "description": "Bitcoin core node", - "tipi_version": 1, + "tipi_version": 2, "version": "26.0", "categories": [ "finance" @@ -53,10 +53,61 @@ "hint": "Maintain at most N connections to peers. Leave empty for default 125.", "required": false, "env_variable": "BITCOIND_MAXPEERS" + }, + { + "type": "text", + "label": "Enable txindex", + "hint": "Enabled by default", + "required": false, + "env_variable": "BITCOIND_TXINDEX", + "options": [ + { + "label": "Yes", + "value": "1" + }, + { + "label": "No", + "value": "0" + } + ] + }, + { + "type": "text", + "label": "Enable peer bloom filters", + "hint": "Enabled by default", + "required": false, + "env_variable": "BITCOIND_BLOOM_FILTERS", + "options": [ + { + "label": "Yes", + "value": "1" + }, + { + "label": "No", + "value": "0" + } + ] + }, + { + "type": "text", + "label": "Enable block filter index", + "hint": "Enabled by default", + "required": false, + "env_variable": "BITCOIND_BLOCK_FILTER", + "options": [ + { + "label": "Yes", + "value": "1" + }, + { + "label": "No", + "value": "0" + } + ] } ], "supported_architectures": [ "amd64", "arm64" ] -} +} \ No newline at end of file diff --git a/apps/bitcoind/docker-compose.yml b/apps/bitcoind/docker-compose.yml index 54dce6c3..6b7f6792 100644 --- a/apps/bitcoind/docker-compose.yml +++ b/apps/bitcoind/docker-compose.yml @@ -18,6 +18,10 @@ services: --maxmempool=${BITCOIND_MAX_MEMPOOL:-300} --listen=${BITCOIND_LISTEN:-0} --maxconnections=${BITCOIND_MAXPEERS:-125} + --txindex=${BITCOIND_TXINDEX:-1} + --peerbloomfilters=${BITCOIND_BLOOM_FILTERS:-1} + --blockfilterindex=${BITCOIND_BLOCK_FILTER:-1} + --peerblockfilters=${BITCOIND_BLOCK_FILTER:-1} networks: - tipi_main_network labels: From ea7bc111e03d708904af7b891855ed6dda37b541 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 20:33:02 +0200 Subject: [PATCH 157/161] chore(deps): update lncm/bitcoind docker tag to v27 (#3260) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- apps/bitcoind/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/bitcoind/docker-compose.yml b/apps/bitcoind/docker-compose.yml index 6b7f6792..b4812039 100644 --- a/apps/bitcoind/docker-compose.yml +++ b/apps/bitcoind/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' services: bitcoind: container_name: bitcoind - image: lncm/bitcoind:v26.0 + image: lncm/bitcoind:v27.0 user: 0:0 volumes: - ${APP_DATA_DIR}/data:/root/.bitcoin From d74e4c7d71bc06190bfa733ab456ac92d8581fc5 Mon Sep 17 00:00:00 2001 From: Jorge Montejo Date: Tue, 7 May 2024 20:04:15 +0200 Subject: [PATCH 158/161] Update version in config.json (#3413) --- apps/bitcoind/config.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/bitcoind/config.json b/apps/bitcoind/config.json index d64d3519..4d504af2 100644 --- a/apps/bitcoind/config.json +++ b/apps/bitcoind/config.json @@ -8,7 +8,7 @@ "id": "bitcoind", "description": "Bitcoin core node", "tipi_version": 2, - "version": "26.0", + "version": "27.0", "categories": [ "finance" ], @@ -110,4 +110,4 @@ "amd64", "arm64" ] -} \ No newline at end of file +} From 2aa920c9fe53f314ea4a356856629979d994454b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 7 May 2024 20:10:05 +0200 Subject: [PATCH 159/161] chore(deps): update ghcr.io/lissy93/dashy docker tag to v3 (#3227) * chore(deps): update ghcr.io/lissy93/dashy docker tag to v3 * Update app version [ready] * fix(dashy): mount folder instead of conf file --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Tipi CI Co-authored-by: Nicolas Meienberger --- apps/dashy/config.json | 4 ++-- apps/dashy/docker-compose.yml | 10 ++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/apps/dashy/config.json b/apps/dashy/config.json index f8d9399b..f9f32dbc 100644 --- a/apps/dashy/config.json +++ b/apps/dashy/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": false, "id": "dashy", - "tipi_version": 2, - "version": "2.1.2", + "tipi_version": 3, + "version": "3.0.0", "categories": [ "utilities" ], diff --git a/apps/dashy/docker-compose.yml b/apps/dashy/docker-compose.yml index f9795904..62a49097 100644 --- a/apps/dashy/docker-compose.yml +++ b/apps/dashy/docker-compose.yml @@ -1,13 +1,11 @@ -version: "3" - services: dashy: container_name: dashy - image: ghcr.io/lissy93/dashy:2.1.2 + image: ghcr.io/lissy93/dashy:3.0.0 ports: - - ${APP_PORT}:80 + - ${APP_PORT}:8080 volumes: - - ${APP_DATA_DIR}/data/dashy/conf.yml:/app/public/conf.yml + - ${APP_DATA_DIR}/data/dashy:/app/user-data restart: unless-stopped networks: - tipi_main_network @@ -15,7 +13,7 @@ services: # Main traefik.enable: true traefik.http.middlewares.dashy-web-redirect.redirectscheme.scheme: https - traefik.http.services.dashy.loadbalancer.server.port: 80 + traefik.http.services.dashy.loadbalancer.server.port: 8080 # Web traefik.http.routers.dashy-insecure.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.dashy-insecure.entrypoints: web From cb4efe938ef1da17299b63a40be204e313f7f277 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 7 May 2024 18:12:30 +0000 Subject: [PATCH 160/161] chore(deps): update bellamy/wallos docker tag to v1.25.1 (#3416) --- apps/wallos/config.json | 4 ++-- apps/wallos/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/wallos/config.json b/apps/wallos/config.json index dab940db..f1a2e3ec 100644 --- a/apps/wallos/config.json +++ b/apps/wallos/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "wallos", - "tipi_version": 31, - "version": "1.25.0", + "tipi_version": 32, + "version": "1.25.1", "categories": [ "finance" ], diff --git a/apps/wallos/docker-compose.yml b/apps/wallos/docker-compose.yml index 3d94cbb6..181bb464 100644 --- a/apps/wallos/docker-compose.yml +++ b/apps/wallos/docker-compose.yml @@ -2,7 +2,7 @@ version: '3' services: wallos: - image: bellamy/wallos:1.25.0 + image: bellamy/wallos:1.25.1 container_name: wallos environment: - TZ=${TZ} From ef2dde4a70c70eb7402b5dfcaa21a0861a89e218 Mon Sep 17 00:00:00 2001 From: Luis Miguel Date: Tue, 7 May 2024 20:13:28 +0200 Subject: [PATCH 161/161] Update PhotoPrism to v240420 (#3412) * Update config.json Update config.json for new PhotoPrism * Update docker-compose.yml Update docker-compose.yml for new PhotoPrism * Update config.json Increasing tipi_version --------- Co-authored-by: Nicolas Meienberger <47644445+meienberger@users.noreply.github.com> --- apps/photoprism/config.json | 4 ++-- apps/photoprism/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/photoprism/config.json b/apps/photoprism/config.json index 51a66702..a16ccadb 100644 --- a/apps/photoprism/config.json +++ b/apps/photoprism/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "photoprism", - "tipi_version": 4, - "version": "231021", + "tipi_version": 5, + "version": "240420", "categories": [ "photography" ], diff --git a/apps/photoprism/docker-compose.yml b/apps/photoprism/docker-compose.yml index 9c54eb8f..d715cecd 100644 --- a/apps/photoprism/docker-compose.yml +++ b/apps/photoprism/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: photoprism: # TODO: Special image for arm/v7 is available - image: photoprism/photoprism:231021 + image: photoprism/photoprism:240420 container_name: photoprism depends_on: - photoprism-db