From da3edea0ea7993df557814fb84f935c510f377da Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Jan 2024 14:02:04 +0000 Subject: [PATCH 01/10] chore(deps): update alfhou/hammond docker tag to v0.0.22 (#1966) --- apps/hammond/config.json | 13 +++++++++---- apps/hammond/docker-compose.yml | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/apps/hammond/config.json b/apps/hammond/config.json index e0eabeec..f570aa51 100644 --- a/apps/hammond/config.json +++ b/apps/hammond/config.json @@ -5,9 +5,11 @@ "available": true, "exposable": true, "id": "hammond", - "tipi_version": 3, - "version": "0.0.21", - "categories": ["utilities"], + "tipi_version": 4, + "version": "0.0.22", + "categories": [ + "utilities" + ], "description": "Self hosted vehicle and expense management system. Like Clarkson, but better", "short_desc": "Self hosted vehicle and expense management system. Like Clarkson, but better", "author": "Akhilrex, alfhou", @@ -20,5 +22,8 @@ "env_variable": "HAMMOND_TZ" } ], - "supported_architectures": ["arm64", "amd64"] + "supported_architectures": [ + "arm64", + "amd64" + ] } diff --git a/apps/hammond/docker-compose.yml b/apps/hammond/docker-compose.yml index ca7d0608..ed30edd8 100644 --- a/apps/hammond/docker-compose.yml +++ b/apps/hammond/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.8" services: hammond: container_name: hammond - image: alfhou/hammond:v0.0.21 + image: alfhou/hammond:v0.0.22 ports: - ${APP_PORT}:3000 volumes: From db352af9fdb82ec45199d8816e71debc9f9d11c2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Jan 2024 14:02:12 +0000 Subject: [PATCH 02/10] chore(deps): update budibase/budibase docker tag to v2.14.1 (#1967) --- 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 073db26d..60acfb36 100644 --- a/apps/budibase/config.json +++ b/apps/budibase/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "budibase", - "tipi_version": 59, - "version": "2.14.0", + "tipi_version": 60, + "version": "2.14.1", "categories": [ "development" ], diff --git a/apps/budibase/docker-compose.yml b/apps/budibase/docker-compose.yml index 43d29c34..518daf82 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.14.0 + image: budibase/budibase:2.14.1 restart: unless-stopped container_name: budibase ports: From ac026fe011c5d865a7c36e5a2df63cabda0d7ff9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Jan 2024 16:53:49 +0000 Subject: [PATCH 03/10] chore(deps): update budibase/budibase docker tag to v2.14.2 (#1968) --- 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 60acfb36..f4c359e7 100644 --- a/apps/budibase/config.json +++ b/apps/budibase/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "budibase", - "tipi_version": 60, - "version": "2.14.1", + "tipi_version": 61, + "version": "2.14.2", "categories": [ "development" ], diff --git a/apps/budibase/docker-compose.yml b/apps/budibase/docker-compose.yml index 518daf82..7fa5351b 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.14.1 + image: budibase/budibase:2.14.2 restart: unless-stopped container_name: budibase ports: From b9e28ea110b49779416cb9e87c3da96f3c2e73d4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Jan 2024 16:53:56 +0000 Subject: [PATCH 04/10] chore(deps): update ghcr.io/shlinkio/shlink docker tag to v3.7.3 (#1969) --- apps/shlink/config.json | 4 ++-- apps/shlink/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/shlink/config.json b/apps/shlink/config.json index b24a89f0..cb6b3a21 100644 --- a/apps/shlink/config.json +++ b/apps/shlink/config.json @@ -6,8 +6,8 @@ "force_expose": true, "port": 8207, "id": "shlink", - "tipi_version": 3, - "version": "3.7.2", + "tipi_version": 4, + "version": "3.7.3", "categories": [ "utilities" ], diff --git a/apps/shlink/docker-compose.yml b/apps/shlink/docker-compose.yml index e282ae27..0c91d131 100644 --- a/apps/shlink/docker-compose.yml +++ b/apps/shlink/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.9" services: shlink: container_name: shlink - image: ghcr.io/shlinkio/shlink:3.7.2 + image: ghcr.io/shlinkio/shlink:3.7.3 environment: - DEFAULT_DOMAIN=${APP_DOMAIN} - IS_HTTPS_ENABLED=true From 3242be4009b6bcf516901fcddef44ad37302f832 Mon Sep 17 00:00:00 2001 From: JigSaw Date: Thu, 4 Jan 2024 21:31:16 +0100 Subject: [PATCH 05/10] feat(store): add email-oauth2-proxy (#1970) --- README.md | 1 + apps/email-oauth2-proxy/config.json | 21 +++++++++++++++++ apps/email-oauth2-proxy/docker-compose.yml | 21 +++++++++++++++++ .../metadata/description.md | 22 ++++++++++++++++++ apps/email-oauth2-proxy/metadata/logo.jpg | Bin 0 -> 30856 bytes 5 files changed, 65 insertions(+) create mode 100644 apps/email-oauth2-proxy/config.json create mode 100644 apps/email-oauth2-proxy/docker-compose.yml create mode 100644 apps/email-oauth2-proxy/metadata/description.md create mode 100644 apps/email-oauth2-proxy/metadata/logo.jpg diff --git a/README.md b/README.md index 24d642ff..31bc7ee2 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Dozzle](https://github.com/amir20/dozzle) - Dozzle is a small web based app to monitor Docker logs - [Draw.io](https://github.com/jgraph/drawio) - draw.io is a JavaScript, client-side editor for general diagramming and whiteboarding. - [Duplicati](https://github.com/linuxserver/docker-duplicati) - Store securely encrypted backups in the cloud! +- [Email OAuth 2.0 Proxy](https://github.com/simonrob/email-oauth2-proxy) - Transparently add OAuth 2.0 support to IMAP/POP/SMTP client applications, scripts or any other email use-cases that don't support this authentication method. - [Emulatorjs](https://github.com/EmulatorJS/EmulatorJS) - Self-hosted Javascript emulation for various system. - [Excalidraw](https://github.com/excalidraw/excalidraw) - Online whiteboard collaboration made easy - [Filebrowser](https://github.com/filebrowser/filebrowser) - Web File Browser diff --git a/apps/email-oauth2-proxy/config.json b/apps/email-oauth2-proxy/config.json new file mode 100644 index 00000000..303e1a34 --- /dev/null +++ b/apps/email-oauth2-proxy/config.json @@ -0,0 +1,21 @@ +{ + "$schema": "../schema.json", + "name": "Email OAuth2 Proxy", + "available": true, + "exposable": false, + "no_gui": true, + "port": 1999, + "id": "email-oauth2-proxy", + "tipi_version": 1, + "version": "2024.01.04", + "categories": [ + "utilities", + "security" + ], + "description": "Transparently add OAuth 2.0 support to IMAP/POP/SMTP client applications, scripts or any other email use-cases that don't support this authentication method.", + "short_desc": "OAuth Proxy for IMAP/POP/SMTP.", + "author": "simonrob", + "source": "https://github.com/simonrob/email-oauth2-proxy", + "form_fields": [], + "supported_architectures": ["arm64", "amd64"] +} \ No newline at end of file diff --git a/apps/email-oauth2-proxy/docker-compose.yml b/apps/email-oauth2-proxy/docker-compose.yml new file mode 100644 index 00000000..94ceae44 --- /dev/null +++ b/apps/email-oauth2-proxy/docker-compose.yml @@ -0,0 +1,21 @@ +version: "3.9" + +services: + email-oauth2-proxy: + container_name: email-oauth2-proxy + image: ghcr.io/blacktirion/email-oauth2-proxy-docker:2024.01.04 + ports: + - ${APP_PORT}:80 + restart: unless-stopped + volumes: + - ${APP_DATA_DIR}/data/config:/config:rw + environment: + - DEBUG=true + - CACHE_STORE=/config/credstore.config + - LOGFILE=true + - LOCAL_SERVER_AUTH=true + networks: + - tipi_main_network + labels: + # Main + traefik.enable: false \ No newline at end of file diff --git a/apps/email-oauth2-proxy/metadata/description.md b/apps/email-oauth2-proxy/metadata/description.md new file mode 100644 index 00000000..941e0d3e --- /dev/null +++ b/apps/email-oauth2-proxy/metadata/description.md @@ -0,0 +1,22 @@ +# Email OAuth 2.0 Proxy +Transparently add OAuth 2.0 support to IMAP/POP/SMTP client applications, scripts or any other email use-cases that don't support this authentication method. + + +## Motivation and capabilities +Email services that support IMAP, POP and/or SMTP access are increasingly requiring the use of OAuth 2.0 to authenticate connections, but not all clients support this method. +This tool creates a simple local proxy that intercepts the traditional IMAP/POP/SMTP authentication commands and transparently replaces them with the appropriate SASL (X)OAuth 2.0 commands and credentials. +Your email client can continue to use the `login` or `auth`/`authenticate` options, with no need to make it aware of OAuth's existence. +The proxy works in the background with a menu bar/taskbar helper or as a headless system service, and is compatible with macOS, Windows and Linux. + +### Example use-cases +- You need to use an Office 365 email account, but don't get on with Outlook. +The email client you like doesn't support OAuth 2.0, which became mandatory [in January 2023](https://techcommunity.microsoft.com/t5/exchange-team-blog/basic-authentication-deprecation-in-exchange-online-september/ba-p/3609437). +- You used to use Gmail via IMAP/POP/SMTP with your raw account credentials (i.e., your real password), but cannot do this now that Google has disabled this method, and don't want to use an [App Password](https://support.google.com/accounts/answer/185833) (or cannot enable this option). +- You have an account already set up in an email client, and you need to switch it to OAuth 2.0 authentication. +You can edit the server details, but the client forces you to delete and re-add the account to enable OAuth 2.0, and you don't want to do this. +- You have made your own script or application that sends or receives email, but it doesn't support OAuth 2.0, and you don't want to have to modify it to implement this. +- You work with multiple services or applications that use IMAP/POP/SMTP, and you don't want to have to set up OAuth 2.0 independently for each one. + +In all of these cases and more, this proxy can help. +Follow the instructions here to get started, and please [open an issue](https://github.com/simonrob/email-oauth2-proxy/issues) with any problems or suggestions. +For commercial support or feature requests, please also consider [sponsoring this project](https://github.com/sponsors/simonrob?frequency=one-time). \ No newline at end of file diff --git a/apps/email-oauth2-proxy/metadata/logo.jpg b/apps/email-oauth2-proxy/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d99ba94a2904e5764e1ef878e9be9f953cc264bb GIT binary patch literal 30856 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 mftr@O!vEP Date: Thu, 4 Jan 2024 20:32:50 +0000 Subject: [PATCH 06/10] chore(deps): update docker.io/gotenberg/gotenberg docker tag to v8 (#1971) --- 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 a823cc8a..e1ff4a2c 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:7.10 + image: docker.io/gotenberg/gotenberg:8.0 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 ba0b73dd49f5ab6988fe41be6c1e20350ce5ee05 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Jan 2024 21:58:19 +0000 Subject: [PATCH 07/10] chore(deps): update ghcr.io/hay-kot/homebox docker tag to v0.10.3 (#1972) --- apps/homebox/config.json | 4 ++-- apps/homebox/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/homebox/config.json b/apps/homebox/config.json index 7108e0ff..7261ff3a 100644 --- a/apps/homebox/config.json +++ b/apps/homebox/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "homebox", - "tipi_version": 8, - "version": "0.10.2", + "tipi_version": 9, + "version": "0.10.3", "categories": [ "utilities" ], diff --git a/apps/homebox/docker-compose.yml b/apps/homebox/docker-compose.yml index 38c9c887..e1933d29 100644 --- a/apps/homebox/docker-compose.yml +++ b/apps/homebox/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.4" services: homebox: - image: ghcr.io/hay-kot/homebox:v0.10.2 + image: ghcr.io/hay-kot/homebox:v0.10.3 container_name: homebox restart: always environment: From 77c08572829d115742edcfb188494673bf82ea00 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Jan 2024 21:58:23 +0000 Subject: [PATCH 08/10] chore(deps): update activepieces/activepieces docker tag to v0.16.0 (#1973) --- 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 1372f9dc..e2a760aa 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": 8, - "version": "0.15.0", + "tipi_version": 9, + "version": "0.16.0", "categories": [ "automation" ], diff --git a/apps/activepieces/docker-compose.yml b/apps/activepieces/docker-compose.yml index 9524c81f..d54041e4 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.15.0 + image: activepieces/activepieces:0.16.0 container_name: activepieces restart: unless-stopped ports: From 2f8d15be71b39da7c0948f0f06b74935d6598083 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Cilia?= Date: Fri, 5 Jan 2024 07:53:50 +0100 Subject: [PATCH 09/10] fix: Add TLS port for AdGuard (#1960) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Frédéric Cilia Co-authored-by: JigSaw --- apps/adguard/config.json | 2 +- apps/adguard/docker-compose.yml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/adguard/config.json b/apps/adguard/config.json index b4c5bae1..7e784d06 100644 --- a/apps/adguard/config.json +++ b/apps/adguard/config.json @@ -3,7 +3,7 @@ "name": "Adguard", "available": true, "exposable": true, - "tipi_version": 22, + "tipi_version": 23, "version": "0.107.43", "port": 8104, "id": "adguard", diff --git a/apps/adguard/docker-compose.yml b/apps/adguard/docker-compose.yml index 8d5b9510..28a4f533 100644 --- a/apps/adguard/docker-compose.yml +++ b/apps/adguard/docker-compose.yml @@ -12,6 +12,8 @@ services: ports: - ${NETWORK_INTERFACE:-0.0.0.0}:53:53/tcp - ${NETWORK_INTERFACE:-0.0.0.0}:53:53/udp + - ${NETWORK_INTERFACE:-0.0.0.0}:853:853/tcp + - ${NETWORK_INTERFACE:-0.0.0.0}:853:853/udp - ${APP_PORT}:80 labels: # Main From 1cc68799c9d8b318fd16e373d828635b64a77c81 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 09:58:43 +0000 Subject: [PATCH 10/10] chore(deps): update ghcr.io/diced/zipline docker tag to v3.7.8 (#1974) --- apps/zipline/config.json | 4 ++-- apps/zipline/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/zipline/config.json b/apps/zipline/config.json index feb61828..8b3be4ec 100644 --- a/apps/zipline/config.json +++ b/apps/zipline/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "zipline", - "tipi_version": 8, - "version": "3.7.7", + "tipi_version": 9, + "version": "3.7.8", "categories": [ "media" ], diff --git a/apps/zipline/docker-compose.yml b/apps/zipline/docker-compose.yml index 006ad57a..c2aecddd 100644 --- a/apps/zipline/docker-compose.yml +++ b/apps/zipline/docker-compose.yml @@ -3,7 +3,7 @@ version: '3.7' services: zipline: container_name: zipline - image: ghcr.io/diced/zipline:3.7.7 + image: ghcr.io/diced/zipline:3.7.8 ports: - '${APP_PORT}:3000' restart: unless-stopped