From 7318ec4578599a0eae5fe37ca8fb2a8bdae27f74 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 10:58:52 +0000 Subject: [PATCH 01/27] Fix planka enviroment variables and add tandoor. --- apps/planka/docker-compose.yml | 8 ++--- apps/tandoor/config.json | 30 ++++++++++++++++++ apps/tandoor/docker-compose.yml | 45 +++++++++++++++++++++++++++ apps/tandoor/metadata/description.md | 36 +++++++++++++++++++++ apps/tandoor/metadata/logo.jpg | Bin 0 -> 32464 bytes 5 files changed, 115 insertions(+), 4 deletions(-) create mode 100644 apps/tandoor/config.json create mode 100644 apps/tandoor/docker-compose.yml create mode 100644 apps/tandoor/metadata/description.md create mode 100644 apps/tandoor/metadata/logo.jpg diff --git a/apps/planka/docker-compose.yml b/apps/planka/docker-compose.yml index 51b60b8e..52cbb8df 100644 --- a/apps/planka/docker-compose.yml +++ b/apps/planka/docker-compose.yml @@ -20,10 +20,10 @@ services: ports: - ${APP_PORT}:1337 environment: - BASE_URL: ${APP_PROTOCOL:-http}://${APP_DOMAIN} - TRUST_PROXY: 1 - DATABASE_URL: "postgresql://postgres@postgres/planka" - SECRET_KEY: "${PLANKA_SECRET_KEY}" + - BASE_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN} + - TRUST_PROXY=1 + - DATABASE_URL="postgresql://postgres@postgres/planka" + - SECRET_KEY="${PLANKA_SECRET_KEY}" networks: - tipi_main_network labels: diff --git a/apps/tandoor/config.json b/apps/tandoor/config.json new file mode 100644 index 00000000..37044367 --- /dev/null +++ b/apps/tandoor/config.json @@ -0,0 +1,30 @@ +{ + "$schema": "../schema.json", + "name": "Tandoor", + "port": 8341, + "available": true, + "exposable": true, + "id": "tandoor", + "tipi_version": 1, + "version": "1.5.4", + "categories": ["data"], + "description": "Drop your collection of links and notes. Get Tandoor and never look back onto a time without recipe management, storage, sharing and collaborative cooking!", + "short_desc": "Manage your ever growing recipe collection online.", + "author": "Tandoor Recipes", + "source": "https://github.com/TandoorRecipes/recipes", + "website": "https://tandoor.dev/", + "form_fields": [ + { + "type": "random", + "label": "Tandoor Secret Key", + "min": 32, + "env_variable": "TANDOOR_SECRET_KEY" + }, + { + "type": "random", + "label": "Postgress Password", + "min": 32, + "env_variable": "TANDOOR_POSTGRESS_PASSWORD" + } + ] +} diff --git a/apps/tandoor/docker-compose.yml b/apps/tandoor/docker-compose.yml new file mode 100644 index 00000000..dd8f3931 --- /dev/null +++ b/apps/tandoor/docker-compose.yml @@ -0,0 +1,45 @@ +version: "3.7" +services: + recipes: + container_name: tandoor + image: ghcr.io/tandoorrecipes/recipes:1.5.4 + volumes: + - ${APP_DATA_DIR}/staticfiles:/opt/recipes/staticfiles + - ${APP_DATA_DIR}/mediafiles:/opt/recipes/mediafiles + ports: + - ${APP_PORT}:8080 + environment: + - SECRET_KEY=${TANDOOR_SECRET_KEY} + - DB_ENGINE=django.db.backends.postgresql + - POSTGRES_HOST=db_recipes + - POSTGRES_PORT=5432 + - POSTGRES_USER=djangodb + - POSTGRES_PASSWORD=${TANDOOR_POSTGRESS_PASSWORD} + - POSTGRES_DB=djangodb + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.tandoor-web-redirect.redirectscheme.scheme: https + traefik.http.services.tandoor.loadbalancer.server.port: 8341 + # Web + traefik.http.routers.tandoor-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.tandoor-insecure.entrypoints: web + traefik.http.routers.tandoor-insecure.service: tandoor + traefik.http.routers.tandoor-insecure.middlewares: tandoor-web-redirect + # Websecure + traefik.http.routers.tandoor.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.tandoor.entrypoints: websecure + traefik.http.routers.tandoor.service: tandoor + traefik.http.routers.tandoor.tls.certresolver: myresolver + # Local domain + traefik.http.routers.tandoor-local-insecure.rule: Host(`tandoor.${LOCAL_DOMAIN}`) + traefik.http.routers.tandoor-local-insecure.entrypoints: web + traefik.http.routers.tandoor-local-insecure.service: tandoor + traefik.http.routers.tandoor-local-insecure.middlewares: tandoor-web-redirect + # Local domain secure + traefik.http.routers.tandoor-local.rule: Host(`tandoor.${LOCAL_DOMAIN}`) + traefik.http.routers.tandoor-local.entrypoints: websecure + traefik.http.routers.tandoor-local.service: tandoor + traefik.http.routers.tandoor-local.tls: true diff --git a/apps/tandoor/metadata/description.md b/apps/tandoor/metadata/description.md new file mode 100644 index 00000000..49a2ae66 --- /dev/null +++ b/apps/tandoor/metadata/description.md @@ -0,0 +1,36 @@ +# Tandoor Recipes + +The recipe manager that allows you to manage your ever growing collection of digital recipes. + +## Core Features +- πŸ₯— **Manage your recipes** - Manage your ever growing recipe collection +- πŸ“† **Plan** - multiple meals for each day +- πŸ›’ **Shopping lists** - via the meal plan or straight from recipes +- πŸ“š **Cookbooks** - collect recipes into books +- πŸ‘ͺ **Share and collaborate** on recipes with friends and family + +## Made by and for power users + +- πŸ” Powerful & customizable **search** with fulltext support and [TrigramSimilarity](https://docs.djangoproject.com/en/3.0/ref/contrib/postgres/search/#trigram-similarity) +- 🏷️ Create and search for **tags**, assign them in batch to all files matching certain filters +- ↔️ Quickly merge and rename ingredients, tags and units +- πŸ“₯️ **Import recipes** from thousands of websites supporting [ld+json or microdata](https://schema.org/Recipe) +- βž— Support for **fractions** or decimals +- 🐳 Easy setup with **Docker** and included examples for **Kubernetes**, **Unraid** and **Synology** +- 🎨 Customize your interface with **themes** +- πŸ“¦ **Sync** files with Dropbox and Nextcloud + +## All the must haves + +- πŸ“±Optimized for use on **mobile** devices +- 🌍 localized in many languages thanks to the awesome community +- πŸ“₯️ **Import your collection** from many other [recipe managers](https://docs.tandoor.dev/features/import_export/) +- βž• Many more like recipe scaling, image compression, printing views and supermarkets + +This application is meant for people with a collection of recipes they want to share with family and friends or simply +store them in a nicely organized way. A basic permission system exists but this application is not meant to be run as +a public page. + +## Docs + +Documentation can be found [here](https://docs.tandoor.dev/). \ No newline at end of file diff --git a/apps/tandoor/metadata/logo.jpg b/apps/tandoor/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bc5f5afcfa88e0387484999d5e36c0aac50509f0 GIT binary patch literal 32464 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 b*0E^mj?LPee>u7SY1aS$`Tx8Hj;Q|u9fx0* literal 0 HcmV?d00001 From ebae1d2b8cf2a707456d1676649abbcf4f139c39 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 10:59:37 +0000 Subject: [PATCH 02/27] Fix readme and make tandoor pass tests. --- README.md | 2 ++ apps/tandoor/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 64304bf2..92648714 100644 --- a/README.md +++ b/README.md @@ -120,6 +120,8 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Sshwifty](https://github.com/nirui/sshwifty/) - Web SSH & Telnet (WebSSH & WebTelnet client) - [Syncthing](https://github.com/syncthing/syncthing) - Continuous File Synchronization - [Tailscale](https://github.com/tailscale/tailscale) - The easiest, most secure way to use WireGuard and 2FA +- [Tandoor](https://github.com/TandoorRecipes/recipes) - Drop your collection of links and notes. Get Tandoor and never look back onto a time without recipe management, storage, sharing and collaborative cooking! +- [Tasks.md](https://github.com/BaldissaraMatheus/Tasks.md) - A self-hosted, file based task management board that supports Markdown syntax - [Tautulli](https://github.com/Tautulli/Tautulli) - A Python based monitoring and tracking tool for Plex Media Server - [Teddit](https://codeberg.org/teddit/teddit) - Alternative Reddit front-end focused on privacy https://teddit.net - [Transmission](https://github.com/transmission/transmission) - Fast, easy, and free BitTorrent client diff --git a/apps/tandoor/docker-compose.yml b/apps/tandoor/docker-compose.yml index dd8f3931..6caa0ebf 100644 --- a/apps/tandoor/docker-compose.yml +++ b/apps/tandoor/docker-compose.yml @@ -1,6 +1,6 @@ version: "3.7" services: - recipes: + tandoor: container_name: tandoor image: ghcr.io/tandoorrecipes/recipes:1.5.4 volumes: From 8462d98870ef29f6c02c41cff9ed1e7a4306636a Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 11:13:51 +0000 Subject: [PATCH 03/27] Add database for tandoor. --- apps/tandoor/docker-compose.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/apps/tandoor/docker-compose.yml b/apps/tandoor/docker-compose.yml index 6caa0ebf..44fc34b0 100644 --- a/apps/tandoor/docker-compose.yml +++ b/apps/tandoor/docker-compose.yml @@ -43,3 +43,19 @@ services: traefik.http.routers.tandoor-local.entrypoints: websecure traefik.http.routers.tandoor-local.service: tandoor traefik.http.routers.tandoor-local.tls: true + depends_on: + - tandoor_db + + tandoor_db: + restart: always + image: postgres:15-alpine + volumes: + - ${APP_DATA_DIR}/postgresql:/var/lib/postgresql/data + enviroment: + - POSTGRES_HOST=db_recipes + - POSTGRES_PORT=5432 + - POSTGRES_USER=djangodb + - POSTGRES_PASSWORD=${TANDOOR_POSTGRESS_PASSWORD} + - POSTGRES_DB=djangodb + networks: + - tipi_main_network From 0ffcabf3dcd38acf34ee6a7e826f99f29f5c122b Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 11:16:53 +0000 Subject: [PATCH 04/27] Fix mapping. --- apps/tandoor/docker-compose.yml | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/apps/tandoor/docker-compose.yml b/apps/tandoor/docker-compose.yml index 44fc34b0..cd3f787a 100644 --- a/apps/tandoor/docker-compose.yml +++ b/apps/tandoor/docker-compose.yml @@ -1,5 +1,19 @@ version: "3.7" services: + tandoor_db: + restart: always + image: postgres:15-alpine + volumes: + - ${APP_DATA_DIR}/postgresql:/var/lib/postgresql/data + enviroment: + - POSTGRES_HOST=db_recipes + - POSTGRES_PORT=5432 + - POSTGRES_USER=djangodb + - POSTGRES_PASSWORD=${TANDOOR_POSTGRESS_PASSWORD} + - POSTGRES_DB=djangodb + networks: + - tipi_main_network + tandoor: container_name: tandoor image: ghcr.io/tandoorrecipes/recipes:1.5.4 @@ -46,16 +60,4 @@ services: depends_on: - tandoor_db - tandoor_db: - restart: always - image: postgres:15-alpine - volumes: - - ${APP_DATA_DIR}/postgresql:/var/lib/postgresql/data - enviroment: - - POSTGRES_HOST=db_recipes - - POSTGRES_PORT=5432 - - POSTGRES_USER=djangodb - - POSTGRES_PASSWORD=${TANDOOR_POSTGRESS_PASSWORD} - - POSTGRES_DB=djangodb - networks: - - tipi_main_network + \ No newline at end of file From bee90027494f5fe4863d38226d8ffe2078c238c3 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 11:19:36 +0000 Subject: [PATCH 05/27] Fix spacing... --- apps/tandoor/docker-compose.yml | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/apps/tandoor/docker-compose.yml b/apps/tandoor/docker-compose.yml index cd3f787a..89aca7cd 100644 --- a/apps/tandoor/docker-compose.yml +++ b/apps/tandoor/docker-compose.yml @@ -1,19 +1,5 @@ version: "3.7" services: - tandoor_db: - restart: always - image: postgres:15-alpine - volumes: - - ${APP_DATA_DIR}/postgresql:/var/lib/postgresql/data - enviroment: - - POSTGRES_HOST=db_recipes - - POSTGRES_PORT=5432 - - POSTGRES_USER=djangodb - - POSTGRES_PASSWORD=${TANDOOR_POSTGRESS_PASSWORD} - - POSTGRES_DB=djangodb - networks: - - tipi_main_network - tandoor: container_name: tandoor image: ghcr.io/tandoorrecipes/recipes:1.5.4 @@ -57,7 +43,19 @@ services: traefik.http.routers.tandoor-local.entrypoints: websecure traefik.http.routers.tandoor-local.service: tandoor traefik.http.routers.tandoor-local.tls: true - depends_on: + depends_on: - tandoor_db - \ No newline at end of file + tandoor_db: + restart: always + image: postgres:15-alpine + volumes: + - ${APP_DATA_DIR}/postgresql:/var/lib/postgresql/data + enviroment: + - POSTGRES_HOST=db_recipes + - POSTGRES_PORT=5432 + - POSTGRES_USER=djangodb + - POSTGRES_PASSWORD=${TANDOOR_POSTGRESS_PASSWORD} + - POSTGRES_DB=djangodb + networks: + - tipi_main_network From ba2386082f1013a9d6dd84f8ead64b1481233823 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 11:21:40 +0000 Subject: [PATCH 06/27] Fix misspelling... --- apps/tandoor/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/tandoor/docker-compose.yml b/apps/tandoor/docker-compose.yml index 89aca7cd..7c17bfe6 100644 --- a/apps/tandoor/docker-compose.yml +++ b/apps/tandoor/docker-compose.yml @@ -51,7 +51,7 @@ services: image: postgres:15-alpine volumes: - ${APP_DATA_DIR}/postgresql:/var/lib/postgresql/data - enviroment: + environment: - POSTGRES_HOST=db_recipes - POSTGRES_PORT=5432 - POSTGRES_USER=djangodb From 102dd559f35b23ee61e5c1e7791728df0be4f566 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 11:28:38 +0000 Subject: [PATCH 07/27] Fix db configs... --- apps/tandoor/docker-compose.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/tandoor/docker-compose.yml b/apps/tandoor/docker-compose.yml index 7c17bfe6..078cbd51 100644 --- a/apps/tandoor/docker-compose.yml +++ b/apps/tandoor/docker-compose.yml @@ -11,7 +11,7 @@ services: environment: - SECRET_KEY=${TANDOOR_SECRET_KEY} - DB_ENGINE=django.db.backends.postgresql - - POSTGRES_HOST=db_recipes + - POSTGRES_HOST=tandoor_db - POSTGRES_PORT=5432 - POSTGRES_USER=djangodb - POSTGRES_PASSWORD=${TANDOOR_POSTGRESS_PASSWORD} @@ -47,12 +47,11 @@ services: - tandoor_db tandoor_db: - restart: always image: postgres:15-alpine + container_name: tandoor_db volumes: - ${APP_DATA_DIR}/postgresql:/var/lib/postgresql/data environment: - - POSTGRES_HOST=db_recipes - POSTGRES_PORT=5432 - POSTGRES_USER=djangodb - POSTGRES_PASSWORD=${TANDOOR_POSTGRESS_PASSWORD} From 98671817ee8ad326a3dc0af4f26e26767982fc7a Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 12:39:48 +0000 Subject: [PATCH 08/27] Fix app data path. --- apps/tandoor/docker-compose.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/tandoor/docker-compose.yml b/apps/tandoor/docker-compose.yml index 078cbd51..ee226037 100644 --- a/apps/tandoor/docker-compose.yml +++ b/apps/tandoor/docker-compose.yml @@ -4,8 +4,8 @@ services: container_name: tandoor image: ghcr.io/tandoorrecipes/recipes:1.5.4 volumes: - - ${APP_DATA_DIR}/staticfiles:/opt/recipes/staticfiles - - ${APP_DATA_DIR}/mediafiles:/opt/recipes/mediafiles + - ${APP_DATA_DIR}/data/staticfiles:/opt/recipes/staticfiles + - ${APP_DATA_DIR}/data/mediafiles:/opt/recipes/mediafiles ports: - ${APP_PORT}:8080 environment: @@ -50,7 +50,7 @@ services: image: postgres:15-alpine container_name: tandoor_db volumes: - - ${APP_DATA_DIR}/postgresql:/var/lib/postgresql/data + - ${APP_DATA_DIR}/data/postgresql:/var/lib/postgresql/data environment: - POSTGRES_PORT=5432 - POSTGRES_USER=djangodb From ea963e23ec37de58e2693e947a4f37eca5d72a9e Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 20:31:35 +0300 Subject: [PATCH 09/27] Update docker-compose.yml --- apps/tandoor/docker-compose.yml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/apps/tandoor/docker-compose.yml b/apps/tandoor/docker-compose.yml index ee226037..d1a6b362 100644 --- a/apps/tandoor/docker-compose.yml +++ b/apps/tandoor/docker-compose.yml @@ -11,13 +11,14 @@ services: environment: - SECRET_KEY=${TANDOOR_SECRET_KEY} - DB_ENGINE=django.db.backends.postgresql - - POSTGRES_HOST=tandoor_db + - POSTGRES_HOST=tandoor-db - POSTGRES_PORT=5432 - - POSTGRES_USER=djangodb + - POSTGRES_USER=tandoor - POSTGRES_PASSWORD=${TANDOOR_POSTGRESS_PASSWORD} - - POSTGRES_DB=djangodb + - POSTGRES_DB=tandoordb networks: - tipi_main_network + restart: unless-stopped labels: # Main traefik.enable: true @@ -44,17 +45,18 @@ services: traefik.http.routers.tandoor-local.service: tandoor traefik.http.routers.tandoor-local.tls: true depends_on: - - tandoor_db + - tandoor-db - tandoor_db: + tandoor-db: image: postgres:15-alpine - container_name: tandoor_db + container_name: tandoor-db volumes: - ${APP_DATA_DIR}/data/postgresql:/var/lib/postgresql/data environment: - POSTGRES_PORT=5432 - - POSTGRES_USER=djangodb + - POSTGRES_USER=tandoor - POSTGRES_PASSWORD=${TANDOOR_POSTGRESS_PASSWORD} - - POSTGRES_DB=djangodb + - POSTGRES_DB=tandoordb + restart: unless-stopped networks: - tipi_main_network From 90ed2631161256f13af1ad91cdf33adcb659f097 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 20:32:28 +0300 Subject: [PATCH 10/27] Update config.json --- apps/tandoor/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/tandoor/config.json b/apps/tandoor/config.json index 37044367..731be5c4 100644 --- a/apps/tandoor/config.json +++ b/apps/tandoor/config.json @@ -9,7 +9,7 @@ "version": "1.5.4", "categories": ["data"], "description": "Drop your collection of links and notes. Get Tandoor and never look back onto a time without recipe management, storage, sharing and collaborative cooking!", - "short_desc": "Manage your ever growing recipe collection online.", + "short_desc": "Recipe collection manager.", "author": "Tandoor Recipes", "source": "https://github.com/TandoorRecipes/recipes", "website": "https://tandoor.dev/", From 212e58bc92cf79f094e1cc3a45cb7f954898db65 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 20:55:59 +0300 Subject: [PATCH 11/27] Update docker-compose.yml --- apps/tandoor/docker-compose.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/tandoor/docker-compose.yml b/apps/tandoor/docker-compose.yml index d1a6b362..9a611433 100644 --- a/apps/tandoor/docker-compose.yml +++ b/apps/tandoor/docker-compose.yml @@ -60,3 +60,9 @@ services: restart: unless-stopped networks: - tipi_main_network + healthcheck: + test: ["CMD-SHELL", "pg_isready", "-d", "tandoor"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 30s From 95f0f7bfd0a92a0d2750a23312bfd90039acab92 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 22:31:05 +0300 Subject: [PATCH 12/27] Update docker-compose.yml --- apps/tandoor/docker-compose.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/tandoor/docker-compose.yml b/apps/tandoor/docker-compose.yml index 9a611433..11e84e40 100644 --- a/apps/tandoor/docker-compose.yml +++ b/apps/tandoor/docker-compose.yml @@ -19,6 +19,12 @@ services: networks: - tipi_main_network restart: unless-stopped + healthcheck: + test: wget --no-verbose --tries=1 --spider http://localhost:8080 + interval: 10s + timeout: 5s + retries: 5 + start_period: 30s labels: # Main traefik.enable: true @@ -45,7 +51,8 @@ services: traefik.http.routers.tandoor-local.service: tandoor traefik.http.routers.tandoor-local.tls: true depends_on: - - tandoor-db + tandoor-db: + condition: service_healthy tandoor-db: image: postgres:15-alpine From 33e6795fce51016fde60acef079fc7448fda2450 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 13 Aug 2023 20:09:27 +0000 Subject: [PATCH 13/27] chore(deps): update neosmemo/memos docker tag to v0.14.4 (#1001) --- apps/memos/config.json | 4 ++-- apps/memos/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/memos/config.json b/apps/memos/config.json index fafd624f..eda27bb2 100644 --- a/apps/memos/config.json +++ b/apps/memos/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 5230, "id": "memos", - "tipi_version": 12, - "version": "0.14.3", + "tipi_version": 13, + "version": "0.14.4", "categories": [ "utilities" ], diff --git a/apps/memos/docker-compose.yml b/apps/memos/docker-compose.yml index 3c8248db..0b9243d9 100644 --- a/apps/memos/docker-compose.yml +++ b/apps/memos/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.7" services: memos: - image: neosmemo/memos:0.14.3 + image: neosmemo/memos:0.14.4 container_name: memos volumes: - ${APP_DATA_DIR}/memos:/var/opt/memos From 852fad63c4fc8a5e60fdad1632357bafe7a66e7e Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Mon, 14 Aug 2023 00:24:43 +0300 Subject: [PATCH 14/27] Update docker-compose.yml --- apps/tandoor/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/tandoor/docker-compose.yml b/apps/tandoor/docker-compose.yml index 11e84e40..f729f8dd 100644 --- a/apps/tandoor/docker-compose.yml +++ b/apps/tandoor/docker-compose.yml @@ -29,7 +29,7 @@ services: # Main traefik.enable: true traefik.http.middlewares.tandoor-web-redirect.redirectscheme.scheme: https - traefik.http.services.tandoor.loadbalancer.server.port: 8341 + traefik.http.services.tandoor.loadbalancer.server.port: 8080 # Web traefik.http.routers.tandoor-insecure.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.tandoor-insecure.entrypoints: web From 4a19adfb3749247e8693a9fd3baa9a2a45d1b097 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Mon, 14 Aug 2023 00:25:15 +0300 Subject: [PATCH 15/27] Update docker-compose.yml --- apps/sshwifty/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/sshwifty/docker-compose.yml b/apps/sshwifty/docker-compose.yml index 3406f0cf..ba9f4f67 100644 --- a/apps/sshwifty/docker-compose.yml +++ b/apps/sshwifty/docker-compose.yml @@ -13,7 +13,7 @@ services: # Main traefik.enable: true traefik.http.middlewares.sshwifty-web-redirect.redirectscheme.scheme: https - traefik.http.services.sshwifty.loadbalancer.server.port: 8273 + traefik.http.services.sshwifty.loadbalancer.server.port: 8182 # Web traefik.http.routers.sshwifty-insecure.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.sshwifty-insecure.entrypoints: web From c3cb6b6821a567ba4e496b9fe3cf96e13a03ab0f Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Mon, 14 Aug 2023 00:25:56 +0300 Subject: [PATCH 16/27] Update docker-compose.yml --- apps/planka/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/planka/docker-compose.yml b/apps/planka/docker-compose.yml index 52cbb8df..cfcf4bd0 100644 --- a/apps/planka/docker-compose.yml +++ b/apps/planka/docker-compose.yml @@ -30,7 +30,7 @@ services: # Main traefik.enable: true traefik.http.middlewares.planka-web-redirect.redirectscheme.scheme: https - traefik.http.services.planka.loadbalancer.server.port: 8016 + traefik.http.services.planka.loadbalancer.server.port: 1337 # Web traefik.http.routers.planka-insecure.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.planka-insecure.entrypoints: web From cc6f8195cf59fc999e14704c093ec801bda1e0b7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Aug 2023 03:05:50 +0000 Subject: [PATCH 17/27] chore(deps): update lscr.io/linuxserver/radarr docker tag to v4.7.5 (#1002) --- apps/radarr/config.json | 4 ++-- apps/radarr/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/radarr/config.json b/apps/radarr/config.json index a9dac0e6..0fabdf4a 100644 --- a/apps/radarr/config.json +++ b/apps/radarr/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8088, "id": "radarr", - "tipi_version": 8, - "version": "4.6.4", + "tipi_version": 9, + "version": "4.7.5", "categories": [ "media", "utilities" diff --git a/apps/radarr/docker-compose.yml b/apps/radarr/docker-compose.yml index a3e4ba68..7a2bd728 100644 --- a/apps/radarr/docker-compose.yml +++ b/apps/radarr/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.7" services: radarr: - image: lscr.io/linuxserver/radarr:4.6.4 + image: lscr.io/linuxserver/radarr:4.7.5 container_name: radarr environment: - PUID=1000 From 04a8d0d6c1a0574d00d0bf6c0399190ef3dd2cf1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Aug 2023 11:15:02 +0000 Subject: [PATCH 18/27] chore(deps): update lscr.io/linuxserver/jackett docker tag to v0.21.643 (#1003) --- apps/jackett/config.json | 4 ++-- apps/jackett/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/jackett/config.json b/apps/jackett/config.json index 4286859a..b6c2c39b 100644 --- a/apps/jackett/config.json +++ b/apps/jackett/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8097, "id": "jackett", - "tipi_version": 68, - "version": "0.21.637", + "tipi_version": 69, + "version": "0.21.643", "description": "Jackett works as a proxy server: it translates queries from apps (Sonarr, Radarr, SickRage, CouchPotato, Mylar3, Lidarr, DuckieTV, qBittorrent, Nefarious etc.) into tracker-site-specific http queries, parses the html or json response, and then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches.", "short_desc": "API Support for your favorite torrent trackers ", "categories": [ diff --git a/apps/jackett/docker-compose.yml b/apps/jackett/docker-compose.yml index b56f51aa..c86c61ff 100644 --- a/apps/jackett/docker-compose.yml +++ b/apps/jackett/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.7" services: jackett: - image: lscr.io/linuxserver/jackett:0.21.637 + image: lscr.io/linuxserver/jackett:0.21.643 container_name: jackett environment: - PUID=1000 From 2ec933cad04c430ce368b00d8a998d92880b30d9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Aug 2023 14:14:23 +0000 Subject: [PATCH 19/27] chore(deps): update nocodb/nocodb docker tag to v0.109.7 (#1004) --- 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 2b997447..60a938f2 100644 --- a/apps/nocodb/config.json +++ b/apps/nocodb/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "nocodb", - "tipi_version": 17, - "version": "0.109.6", + "tipi_version": 18, + "version": "0.109.7", "categories": [ "utilities" ], diff --git a/apps/nocodb/docker-compose.yml b/apps/nocodb/docker-compose.yml index 407bc1a4..7f09d20a 100644 --- a/apps/nocodb/docker-compose.yml +++ b/apps/nocodb/docker-compose.yml @@ -11,7 +11,7 @@ services: - NC_PUBLIC_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN} - NC_AUTH_JWT_SECRET=${NOCODB_JWT_SECRET} - NC_REDIS_URL=redis://default:${NOCODB_REDIS_PASSWORD}@nocodb-redis:6379 - image: "nocodb/nocodb:0.109.6" + image: "nocodb/nocodb:0.109.7" ports: - "${APP_PORT}:8080" restart: always From cd08175373f07e3c6d1cea14278ca2e4e710c41d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Aug 2023 04:32:36 +0000 Subject: [PATCH 20/27] chore(deps): update 1dev/server docker tag to v8.6.12 (#1005) --- 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 23fc585e..9c2df9b4 100644 --- a/apps/onedev/config.json +++ b/apps/onedev/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "onedev", - "tipi_version": 45, - "version": "8.6.11", + "tipi_version": 46, + "version": "8.6.12", "categories": [ "development" ], diff --git a/apps/onedev/docker-compose.yml b/apps/onedev/docker-compose.yml index ba69c875..39c35521 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:8.6.11 + image: 1dev/server:8.6.12 container_name: onedev environment: - hibernate_dialect=io.onedev.server.persistence.PostgreSQLDialect From 406898c01b478ca67c7a3fbd963e7f2dad06f348 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Aug 2023 08:28:15 +0000 Subject: [PATCH 21/27] chore(deps): update inovector/mixpost docker tag to v1.3.2 (#1006) --- apps/mixpost/config.json | 4 ++-- apps/mixpost/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/mixpost/config.json b/apps/mixpost/config.json index 223136a7..78224e16 100644 --- a/apps/mixpost/config.json +++ b/apps/mixpost/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "mixpost", - "tipi_version": 6, - "version": "1.3.1", + "tipi_version": 7, + "version": "1.3.2", "categories": [ "social" ], diff --git a/apps/mixpost/docker-compose.yml b/apps/mixpost/docker-compose.yml index 6b0fc33a..4345b035 100644 --- a/apps/mixpost/docker-compose.yml +++ b/apps/mixpost/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: mixpost: - image: inovector/mixpost:v1.3.1 + image: inovector/mixpost:v1.3.2 container_name: mixpost environment: - APP_NAME='Mixpost' From 91c7753f6e86b555c7d1312b6319793abf283fa2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Aug 2023 08:28:25 +0000 Subject: [PATCH 22/27] chore(deps): update lscr.io/linuxserver/jackett docker tag to v0.21.648 (#1007) --- apps/jackett/config.json | 4 ++-- apps/jackett/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/jackett/config.json b/apps/jackett/config.json index b6c2c39b..910300f2 100644 --- a/apps/jackett/config.json +++ b/apps/jackett/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8097, "id": "jackett", - "tipi_version": 69, - "version": "0.21.643", + "tipi_version": 70, + "version": "0.21.648", "description": "Jackett works as a proxy server: it translates queries from apps (Sonarr, Radarr, SickRage, CouchPotato, Mylar3, Lidarr, DuckieTV, qBittorrent, Nefarious etc.) into tracker-site-specific http queries, parses the html or json response, and then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches.", "short_desc": "API Support for your favorite torrent trackers ", "categories": [ diff --git a/apps/jackett/docker-compose.yml b/apps/jackett/docker-compose.yml index c86c61ff..72c2a283 100644 --- a/apps/jackett/docker-compose.yml +++ b/apps/jackett/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.7" services: jackett: - image: lscr.io/linuxserver/jackett:0.21.643 + image: lscr.io/linuxserver/jackett:0.21.648 container_name: jackett environment: - PUID=1000 From 9ed0875237b2f5a2701b9dacde9b6a9c8f6b2287 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Aug 2023 13:44:05 +0000 Subject: [PATCH 23/27] chore(deps): update altran1502/immich-machine-learning docker tag to v1.73.0 (#1008) --- 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 34fd2417..2a3effaa 100644 --- a/apps/immich/docker-compose.yml +++ b/apps/immich/docker-compose.yml @@ -93,7 +93,7 @@ services: immich-machine-learning: container_name: immich-machine-learning - image: altran1502/immich-machine-learning:v1.72.2 + image: altran1502/immich-machine-learning:v1.73.0 volumes: - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload - ${APP_DATA_DIR}/data/immich-ml-cache:/cache From fc5957c76a2a1071ef4b976006631996c91a0a3e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Aug 2023 13:44:44 +0000 Subject: [PATCH 24/27] chore(deps): update altran1502/immich-proxy docker tag to v1.73.0 (#1009) --- apps/immich/config.json | 4 ++-- apps/immich/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/immich/config.json b/apps/immich/config.json index 9b10f586..9ad3eb9d 100644 --- a/apps/immich/config.json +++ b/apps/immich/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8128, "id": "immich", - "tipi_version": 33, - "version": "1.72.2", + "tipi_version": 34, + "version": "1.73.0", "categories": [ "data", "photography" diff --git a/apps/immich/docker-compose.yml b/apps/immich/docker-compose.yml index 2a3effaa..2c0e688e 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: altran1502/immich-proxy:v1.72.2 + image: altran1502/immich-proxy:v1.73.0 ports: - ${APP_PORT}:8080 depends_on: From c5b02db2f705c19a0b81e007c8a8bdacfd71de25 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Aug 2023 16:24:07 +0000 Subject: [PATCH 25/27] chore(deps): update altran1502/immich-server docker tag to v1.73.0 (#1010) --- apps/immich/docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/immich/docker-compose.yml b/apps/immich/docker-compose.yml index 2c0e688e..9801d397 100644 --- a/apps/immich/docker-compose.yml +++ b/apps/immich/docker-compose.yml @@ -43,7 +43,7 @@ services: immich-server: container_name: immich-server - image: altran1502/immich-server:v1.72.2 + image: altran1502/immich-server:v1.73.0 command: ["start-server.sh"] volumes: - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload @@ -68,7 +68,7 @@ services: immich-microservices: container_name: immich-microservices - image: altran1502/immich-server:v1.72.2 + image: altran1502/immich-server:v1.73.0 command: ["start-microservices.sh"] volumes: - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload From 85ca6b7fb5bef373a93fce1b99b3fa3488e87899 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Aug 2023 16:24:12 +0000 Subject: [PATCH 26/27] chore(deps): update altran1502/immich-web docker tag to v1.73.0 (#1011) --- 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 9801d397..73248a35 100644 --- a/apps/immich/docker-compose.yml +++ b/apps/immich/docker-compose.yml @@ -114,7 +114,7 @@ services: immich-web: container_name: immich-web - image: altran1502/immich-web:v1.72.2 + image: altran1502/immich-web:v1.73.0 restart: unless-stopped networks: - tipi_main_network From 8a4a0519b2b0db44c0b1d9c4fa80289ae2536cab Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Tue, 15 Aug 2023 20:21:15 +0200 Subject: [PATCH 27/27] chore(planka & sshwifty): bump tipi version --- apps/planka/config.json | 2 +- apps/sshwifty/config.json | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/apps/planka/config.json b/apps/planka/config.json index 8c459e22..32b0d469 100644 --- a/apps/planka/config.json +++ b/apps/planka/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "planka", - "tipi_version": 1, + "tipi_version": 2, "version": "1.12.0", "categories": ["development"], "description": "The realtime kanban board for workgroups built with React and Redux.", diff --git a/apps/sshwifty/config.json b/apps/sshwifty/config.json index 63ae26c6..a671c13d 100644 --- a/apps/sshwifty/config.json +++ b/apps/sshwifty/config.json @@ -5,11 +5,9 @@ "available": true, "exposable": true, "id": "sshwifty", - "tipi_version": 2, + "tipi_version": 3, "version": "0.3.0-beta-release", - "categories": [ - "development" - ], + "categories": ["development"], "description": "Sshwifty is a SSH and Telnet connector made for the Web. It can be deployed on your computer or server to provide SSH and Telnet access interface for any compatible (standard) web browser.", "short_desc": "Web SSH & Telnet (WebSSH & WebTelnet client)", "author": "Nirui",