From d3e106d4dbda5d4263739c21323041bc7e276058 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 12 Aug 2023 22:36:12 +0000 Subject: [PATCH 01/83] chore(deps): update ghcr.io/ajnart/homarr docker tag to v0.13.2 (#995) --- apps/homarr/config.json | 4 ++-- apps/homarr/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/homarr/config.json b/apps/homarr/config.json index 0bb04eac..196d7f1b 100644 --- a/apps/homarr/config.json +++ b/apps/homarr/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8102, "id": "homarr", - "tipi_version": 15, - "version": "0.13.1", + "tipi_version": 16, + "version": "0.13.2", "categories": [ "utilities" ], diff --git a/apps/homarr/docker-compose.yml b/apps/homarr/docker-compose.yml index 0280a710..e67fa1f3 100644 --- a/apps/homarr/docker-compose.yml +++ b/apps/homarr/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: homarr: container_name: homarr - image: ghcr.io/ajnart/homarr:0.13.1 + image: ghcr.io/ajnart/homarr:0.13.2 restart: unless-stopped volumes: - ${APP_DATA_DIR}/data/config:/app/data/configs From 148e5c9fd6ed77ff31d19f87279c95528bbecd80 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 13 Aug 2023 09:50:47 +0000 Subject: [PATCH 02/83] chore(deps): update lscr.io/linuxserver/jackett docker tag to v0.21.637 (#996) --- 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 805efe98..4286859a 100644 --- a/apps/jackett/config.json +++ b/apps/jackett/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8097, "id": "jackett", - "tipi_version": 67, - "version": "0.21.635", + "tipi_version": 68, + "version": "0.21.637", "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 7667e371..b56f51aa 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.635 + image: lscr.io/linuxserver/jackett:0.21.637 container_name: jackett environment: - PUID=1000 From 7318ec4578599a0eae5fe37ca8fb2a8bdae27f74 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 10:58:52 +0000 Subject: [PATCH 03/83] 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 04/83] 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 05/83] 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 06/83] 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 07/83] 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 08/83] 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 09/83] 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 10/83] 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 140ce705d60782ac0c6f82460622e1e27802f8f9 Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Sun, 13 Aug 2023 16:28:56 +0200 Subject: [PATCH 11/83] Add Ghostfolio --- apps/ghostfolio/config.json | 45 ++++++++++++++ apps/ghostfolio/docker-compose.yml | 74 ++++++++++++++++++++++++ apps/ghostfolio/metadata/description.md | 27 +++++++++ apps/ghostfolio/metadata/logo.png | Bin 0 -> 3028 bytes 4 files changed, 146 insertions(+) create mode 100644 apps/ghostfolio/config.json create mode 100644 apps/ghostfolio/docker-compose.yml create mode 100644 apps/ghostfolio/metadata/description.md create mode 100644 apps/ghostfolio/metadata/logo.png diff --git a/apps/ghostfolio/config.json b/apps/ghostfolio/config.json new file mode 100644 index 00000000..1012bea5 --- /dev/null +++ b/apps/ghostfolio/config.json @@ -0,0 +1,45 @@ +{ + "$schema": "../schema.json", + "name": "Ghostfolio", + "port": 3333, + "available": true, + "exposable": true, + "id": "ghostfolio", + "tipi_version": 1, + "version": "1.300.0", + "categories": ["finance"], + "description": "Ghostfolio is a privacy-first, open source dashboard for your personal finances.", + "short_desc": "", + "author": "dtslvr", + "source": "https://github.com/ghostfolio/ghostfolio", + "form_fields": [ + { + "type": "random", + "min": 32, + "max": 32, + "label": "Access token salt", + "env_variable": "GHOSTFOLIO_ACCESS_TOKEN_SALT" + }, + { + "type": "random", + "min": 32, + "max": 32, + "label": "JSON Web Tokens secret key", + "env_variable": "GHOSTFOLIO_JWT_SECRET_KEY" + }, + { + "type": "random", + "min": 32, + "max": 32, + "label": "Database password", + "env_variable": "GHOSTFOLIO_DB_PASSWORD" + }, + { + "type": "random", + "min": 32, + "max": 32, + "label": "Redis password", + "env_variable": "GHOSTFOLIO_REDIS_PASSWORD" + } + ] + } diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml new file mode 100644 index 00000000..31b2c700 --- /dev/null +++ b/apps/ghostfolio/docker-compose.yml @@ -0,0 +1,74 @@ +version: "3.9" + +services: + ghostfolio: + image: ghostfolio/ghostfolio:1.300.0 + restart: unless-stopped + ports: + - ${APP_PORT}:8080 + environment: + NODE_ENV: production + HOST: 0.0.0.0 + PORT: 3333 + ACCESS_TOKEN_SALT: $GHOSTFOLIO_ACCESS_TOKEN_SALT + DATABASE_URL: postgresql://ghostfolio:${GHOSTFOLIO_DB_PASSWORD}@ghostfolio-postgres:5432/ghostfolio?sslmode=prefer + JWT_SECRET_KEY: ${GHOSTFOLIO_JWT_SECRET_KEY} + POSTGRES_DB: ghostfolio + POSTGRES_USER: ghostfolio + POSTGRES_PASSWORD: ${GHOSTFOLIO_DB_PASSWORD} + REDIS_HOST: ghostfolio-redis + REDIS_PASSWORD: ${GHOSTFOLIO_REDIS_PASSWORD} + REDIS_PORT: 6379 + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.ghostfolio-web-redirect.redirectscheme.scheme: https + traefik.http.services.ghostfolio.loadbalancer.server.port: 3333 + # Web + traefik.http.routers.ghostfolio-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.ghostfolio-insecure.entrypoints: web + traefik.http.routers.ghostfolio-insecure.service: ghostfolio + traefik.http.routers.ghostfolio-insecure.middlewares: ghostfolio-web-redirect + # Websecure + traefik.http.routers.ghostfolio.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.ghostfolio.entrypoints: websecure + traefik.http.routers.ghostfolio.service: ghostfolio + traefik.http.routers.ghostfolio.tls.certresolver: myresolver + # Local domain + traefik.http.routers.ghostfolio-local-insecure.rule: Host(`ghostfolio.${LOCAL_DOMAIN}`) + traefik.http.routers.ghostfolio-local-insecure.entrypoints: web + traefik.http.routers.ghostfolio-local-insecure.service: ghostfolio + traefik.http.routers.ghostfolio-local-insecure.middlewares: ghostfolio-web-redirect + # Local domain secure + traefik.http.routers.ghostfolio-local.rule: Host(`ghostfolio.${LOCAL_DOMAIN}`) + traefik.http.routers.ghostfolio-local.entrypoints: websecure + traefik.http.routers.ghostfolio-local.service: ghostfolio + traefik.http.routers.ghostfolio-local.tls: true + + ghostfolio-postgres: + image: postgres:14-bullseye + restart: unless-stopped + stop_grace_period: 1m + user: "1000:1000" + environment: + POSTGRES_DB: ghostfolio + POSTGRES_USER: ghostfolio + POSTGRES_PASSWORD: ${GHOSTFOLIO_DB_PASSWORD} + PGDATA: /var/lib/postgresql/data + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + networks: + - tipi_main_network + + ghostfolio-redis: + image: redis:6.2-bullseye + restart: unless-stopped + user: "1000:1000" + command: > + --requirepass ${GHOSTFOLIO_REDIS_PASSWORD} + volumes: + - ${APP_DATA_DIR}/data/redis:/data + networks: + - tipi_main_network diff --git a/apps/ghostfolio/metadata/description.md b/apps/ghostfolio/metadata/description.md new file mode 100644 index 00000000..9636517f --- /dev/null +++ b/apps/ghostfolio/metadata/description.md @@ -0,0 +1,27 @@ +**Ghostfolio** is an open source wealth management software built with web technology. The application empowers busy people to keep track of stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions. The software is designed for personal use in continuous operation. + +## Why Ghostfolio? + +Ghostfolio is for you if you are... + +- πŸ’Ό trading stocks, ETFs or cryptocurrencies on multiple platforms +- 🏦 pursuing a buy & hold strategy +- 🎯 interested in getting insights of your portfolio composition +- πŸ‘» valuing privacy and data ownership +- 🧘 into minimalism +- 🧺 caring about diversifying your financial resources +- πŸ†“ interested in financial independence +- πŸ™… saying no to spreadsheets +- 😎 still reading this list + +## Features + +- βœ… Create, update and delete transactions +- βœ… Multi account management +- βœ… Portfolio performance for `Today`, `YTD`, `1Y`, `5Y`, `Max` +- βœ… Various charts +- βœ… Static analysis to identify potential risks in your portfolio +- βœ… Import and export transactions +- βœ… Dark Mode +- βœ… Zen Mode +- βœ… Progressive Web App (PWA) with a mobile-first design diff --git a/apps/ghostfolio/metadata/logo.png b/apps/ghostfolio/metadata/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3f3ce881e29c4e3a593df1d46aff032cddb91da7 GIT binary patch literal 3028 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 Date: Sun, 13 Aug 2023 16:44:11 +0200 Subject: [PATCH 12/83] Fix metadata --- apps/ghostfolio/config.json | 2 +- apps/ghostfolio/metadata/logo.jpg | Bin 0 -> 4295 bytes apps/ghostfolio/metadata/logo.png | Bin 3028 -> 0 bytes 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 apps/ghostfolio/metadata/logo.jpg delete mode 100644 apps/ghostfolio/metadata/logo.png diff --git a/apps/ghostfolio/config.json b/apps/ghostfolio/config.json index 1012bea5..13e6f92d 100644 --- a/apps/ghostfolio/config.json +++ b/apps/ghostfolio/config.json @@ -9,7 +9,7 @@ "version": "1.300.0", "categories": ["finance"], "description": "Ghostfolio is a privacy-first, open source dashboard for your personal finances.", - "short_desc": "", + "short_desc": "Open Source Wealth Management Software.", "author": "dtslvr", "source": "https://github.com/ghostfolio/ghostfolio", "form_fields": [ diff --git a/apps/ghostfolio/metadata/logo.jpg b/apps/ghostfolio/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2aa33d71d25b18634b3096db1ccb5a1bf1808b1f GIT binary patch literal 4295 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 literal 0 HcmV?d00001 diff --git a/apps/ghostfolio/metadata/logo.png b/apps/ghostfolio/metadata/logo.png deleted file mode 100644 index 3f3ce881e29c4e3a593df1d46aff032cddb91da7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3028 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 Date: Sun, 13 Aug 2023 16:54:02 +0200 Subject: [PATCH 13/83] Add container_name --- apps/ghostfolio/docker-compose.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index 31b2c700..a18d2d39 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -2,6 +2,7 @@ version: "3.9" services: ghostfolio: + container_name: ghostfolio image: ghostfolio/ghostfolio:1.300.0 restart: unless-stopped ports: @@ -48,6 +49,7 @@ services: traefik.http.routers.ghostfolio-local.tls: true ghostfolio-postgres: + container_name: ghostfolio-postgres image: postgres:14-bullseye restart: unless-stopped stop_grace_period: 1m @@ -63,6 +65,7 @@ services: - tipi_main_network ghostfolio-redis: + container_name: ghostfolio-redis image: redis:6.2-bullseye restart: unless-stopped user: "1000:1000" From 2a71c3245932cec0bb580d02286640b2c1c750ca Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Sun, 13 Aug 2023 16:58:48 +0200 Subject: [PATCH 14/83] Fix db images --- apps/ghostfolio/docker-compose.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index a18d2d39..e0107a1c 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -50,11 +50,8 @@ services: ghostfolio-postgres: container_name: ghostfolio-postgres - image: postgres:14-bullseye - restart: unless-stopped - stop_grace_period: 1m - user: "1000:1000" - environment: + image: postgres:14 + restart: unless-stopped environment: POSTGRES_DB: ghostfolio POSTGRES_USER: ghostfolio POSTGRES_PASSWORD: ${GHOSTFOLIO_DB_PASSWORD} @@ -66,9 +63,8 @@ services: ghostfolio-redis: container_name: ghostfolio-redis - image: redis:6.2-bullseye + image: redis:6.2 restart: unless-stopped - user: "1000:1000" command: > --requirepass ${GHOSTFOLIO_REDIS_PASSWORD} volumes: From b8e2da126b78e6e8d24ce607c9f9836b29c8970b Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Sun, 13 Aug 2023 17:00:18 +0200 Subject: [PATCH 15/83] Typo --- apps/ghostfolio/docker-compose.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index e0107a1c..865bfd8f 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -51,7 +51,8 @@ services: ghostfolio-postgres: container_name: ghostfolio-postgres image: postgres:14 - restart: unless-stopped environment: + restart: unless-stopped + environment: POSTGRES_DB: ghostfolio POSTGRES_USER: ghostfolio POSTGRES_PASSWORD: ${GHOSTFOLIO_DB_PASSWORD} From 02fc6d3d64202c0cbe492e5a316d1a94d05be215 Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Sun, 13 Aug 2023 17:08:46 +0200 Subject: [PATCH 16/83] Fix port --- apps/ghostfolio/docker-compose.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index 865bfd8f..841d58c3 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -6,7 +6,7 @@ services: image: ghostfolio/ghostfolio:1.300.0 restart: unless-stopped ports: - - ${APP_PORT}:8080 + - ${APP_PORT}:3333 environment: NODE_ENV: production HOST: 0.0.0.0 @@ -22,6 +22,9 @@ services: REDIS_PORT: 6379 networks: - tipi_main_network + depends_on: + - ghostfolio-postgres + - ghostfolio-redis labels: # Main traefik.enable: true From c7ee28fd90a008f11f9f95720aec2a0127729049 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B9=20=D0=9A=D0=BE=D0=B4?= =?UTF-8?q?=D0=BE=D0=BB=D0=BE=D0=B2?= Date: Sun, 13 Aug 2023 20:00:10 +0300 Subject: [PATCH 17/83] update matrix-conduit configuration --- apps/matrix-conduit/config.json | 21 ++++++++++++++++++--- apps/matrix-conduit/docker-compose.yml | 11 +++++++---- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/apps/matrix-conduit/config.json b/apps/matrix-conduit/config.json index 7a62d6a7..7548cbfa 100644 --- a/apps/matrix-conduit/config.json +++ b/apps/matrix-conduit/config.json @@ -7,7 +7,7 @@ "force_expose": true, "no_gui": true, "id": "matrix-conduit", - "tipi_version": 3, + "tipi_version": 4, "version": "0.6.0", "categories": [ "social" @@ -34,7 +34,8 @@ { "type": "array", "label": "Trusted Servers", - "hint": "[\"matrix.org\"]", + "hint": "List of domain names", + "placeholder": "[\"matrix.org\"]", "regex": "^\\[((\"[^\"]*\")(, ?(\"[^\"]*\"))*)?\\]$", "pattern_error": "Must be in list of domain names format", "required": false, @@ -51,9 +52,23 @@ "type": "text", "label": "Loggin Level", "hint": "Available levels: error, warn, info, debug, trace", - "placeholder": "-warn,rocket=off,_=off,sled=off", + "placeholder": "warn,rocket=off,_=off,sled=off", "required": false, "env_variable": "LOG" + }, + { + "type": "array", + "label": "TURN URIs", + "hint": "List of TURN server URIs turn:/turns:", + "placeholder": "[\"turn:?transport=udp\", \"turn:?transport=tcp\"]", + "required": false, + "env_variable": "TURN_URIS" + }, + { + "type": "password", + "label": "TURN Secret", + "required": false, + "env_variable": "TURN_SECRET" } ] } diff --git a/apps/matrix-conduit/docker-compose.yml b/apps/matrix-conduit/docker-compose.yml index 9430bcbc..69ec6f26 100644 --- a/apps/matrix-conduit/docker-compose.yml +++ b/apps/matrix-conduit/docker-compose.yml @@ -8,13 +8,16 @@ services: CONDUIT_SERVER_NAME: ${APP_DOMAIN} CONDUIT_DATABASE_PATH: /var/lib/matrix-conduit/ CONDUIT_DATABASE_BACKEND: rocksdb + CONDUIT_ADDRESS: 0.0.0.0 CONDUIT_PORT: 6167 + CONDUIT_LOG: ${LOG:-warn,rocket=off,_=off,sled=off} CONDUIT_MAX_REQUEST_SIZE: ${MAX_REQUEST_SIZE:-20000000} CONDUIT_ALLOW_REGISTRATION: ${ALLOW_REGISTRATION:-false} CONDUIT_ALLOW_FEDERATION: ${ALLOW_FEDERATION:-false} CONDUIT_TRUSTED_SERVERS: ${TRUSTED_SERVERS:-[]} - CONDUIT_LOG: ${LOG:-warn,rocket=off,_=off,sled=off} - CONDUIT_ADDRESS: 0.0.0.0 + CONDUIT_ALLOW_CHECK_FOR_UPDATES: false + CONDUIT_TURN_URIS: ${TURN_URIS:-["turn:localhost?transport=udp", "turn:localhost?transport=tcp"]} + CONDUIT_TURN_SECRET: ${TURN_SECRET:-turnsecret} CONDUIT_CONFIG: "" # Ignore this restart: unless-stopped volumes: @@ -68,12 +71,12 @@ services: traefik.http.routers.matrix-well-knows-insecure.service: matrix-well-knows traefik.http.routers.matrix-well-knows-insecure.middlewares: matrix-well-knows-web-redirect # Websecure - traefik.http.routers.matrix-well-knows.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.matrix-well-knows.rule: Host(`${APP_DOMAIN}`) && PathPrefix(`/.well-known/matrix`) traefik.http.routers.matrix-well-knows.entrypoints: websecure traefik.http.routers.matrix-well-knows.service: matrix-well-knows traefik.http.routers.matrix-well-knows.tls.certresolver: myresolver # Local domain - traefik.http.routers.matrix-well-knows-local-insecure.rule: Host(`matrix-well-knows.${LOCAL_DOMAIN}`) + traefik.http.routers.matrix-well-knows-local-insecure.rule: Host(`matrix-well-knows.${LOCAL_DOMAIN}`) && PathPrefix(`/.well-known/matrix`) traefik.http.routers.matrix-well-knows-local-insecure.entrypoints: web traefik.http.routers.matrix-well-knows-local-insecure.service: matrix-well-knows traefik.http.routers.matrix-well-knows-local-insecure.middlewares: matrix-well-knows-web-redirect From ea963e23ec37de58e2693e947a4f37eca5d72a9e Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 20:31:35 +0300 Subject: [PATCH 18/83] 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 19/83] 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 20/83] 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 0dfc53b29a33315b34ffb7d6d1bb9d5015de676c Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Sun, 13 Aug 2023 21:05:46 +0200 Subject: [PATCH 21/83] Review comments --- apps/ghostfolio/docker-compose.yml | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index 841d58c3..7e775408 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -12,7 +12,7 @@ services: HOST: 0.0.0.0 PORT: 3333 ACCESS_TOKEN_SALT: $GHOSTFOLIO_ACCESS_TOKEN_SALT - DATABASE_URL: postgresql://ghostfolio:${GHOSTFOLIO_DB_PASSWORD}@ghostfolio-postgres:5432/ghostfolio?sslmode=prefer + DATABASE_URL: postgresql://ghostfolio:${GHOSTFOLIO_DB_PASSWORD}@ghostfolio-db:5432/ghostfolio?sslmode=prefer JWT_SECRET_KEY: ${GHOSTFOLIO_JWT_SECRET_KEY} POSTGRES_DB: ghostfolio POSTGRES_USER: ghostfolio @@ -23,8 +23,10 @@ services: networks: - tipi_main_network depends_on: - - ghostfolio-postgres - - ghostfolio-redis + - ghostfolio-db: + condition: service_healthy + - ghostfolio-redis: + condition: service_healthy labels: # Main traefik.enable: true @@ -51,26 +53,37 @@ services: traefik.http.routers.ghostfolio-local.service: ghostfolio traefik.http.routers.ghostfolio-local.tls: true - ghostfolio-postgres: - container_name: ghostfolio-postgres - image: postgres:14 + ghostfolio-db: + container_name: ghostfolio-db + image: postgres:15.4-alpine restart: unless-stopped environment: POSTGRES_DB: ghostfolio POSTGRES_USER: ghostfolio POSTGRES_PASSWORD: ${GHOSTFOLIO_DB_PASSWORD} PGDATA: /var/lib/postgresql/data + healthcheck: + test: ["CMD", "pg_isready", "-d", "ghostfolio"] + interval: 10s + timeout: 5s + retries: 5 volumes: - - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data networks: - tipi_main_network ghostfolio-redis: - container_name: ghostfolio-redis + container_name: redis:7-alpine image: redis:6.2 restart: unless-stopped command: > --requirepass ${GHOSTFOLIO_REDIS_PASSWORD} + healthcheck: + test: ['CMD', 'redis-cli', 'ping'] + interval: 10s + timeout: 5s + retries: 5 + start_period: 30s volumes: - ${APP_DATA_DIR}/data/redis:/data networks: From 4dcbae68bf76d58bfe8f6c63d0dcc7c74103f0ba Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Sun, 13 Aug 2023 21:09:33 +0200 Subject: [PATCH 22/83] Fixed misedit --- apps/ghostfolio/docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index 7e775408..a516a620 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -73,8 +73,8 @@ services: - tipi_main_network ghostfolio-redis: - container_name: redis:7-alpine - image: redis:6.2 + container_name: ghostfolio-redis + image: redis:7-alpine restart: unless-stopped command: > --requirepass ${GHOSTFOLIO_REDIS_PASSWORD} From d1aa870d4870abb9e42ce505d49cdf4221f0ce0a Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Sun, 13 Aug 2023 21:12:51 +0200 Subject: [PATCH 23/83] Fixed missing indent --- apps/ghostfolio/docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index a516a620..67281932 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -24,9 +24,9 @@ services: - tipi_main_network depends_on: - ghostfolio-db: - condition: service_healthy + condition: service_healthy - ghostfolio-redis: - condition: service_healthy + condition: service_healthy labels: # Main traefik.enable: true From 772e9829e4c4a8dbce37d4f509a96e8d8aca454a Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Sun, 13 Aug 2023 21:24:46 +0200 Subject: [PATCH 24/83] Health check syntax --- apps/ghostfolio/docker-compose.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index 67281932..8ed12f8f 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -23,10 +23,10 @@ services: networks: - tipi_main_network depends_on: - - ghostfolio-db: - condition: service_healthy - - ghostfolio-redis: - condition: service_healthy + ghostfolio-db: + condition: service_healthy + ghostfolio-redis: + condition: service_healthy labels: # Main traefik.enable: true From 95f0f7bfd0a92a0d2750a23312bfd90039acab92 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 22:31:05 +0300 Subject: [PATCH 25/83] 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 26/83] 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 27/83] 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 28/83] 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 29/83] 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 30/83] 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 31/83] 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 32/83] 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 33/83] 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 34/83] 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 35/83] 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 36/83] 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 37/83] 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 38/83] 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 39/83] 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 40/83] 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", From 796f7abf66b4598df276a29786d6cc8f37576e06 Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Tue, 15 Aug 2023 20:29:23 +0200 Subject: [PATCH 41/83] docs: add ghostfolio to main readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 92648714..9a184f39 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 - [Freshrss](https://github.com/FreshRSS/FreshRSS) - A free, self-hostable RSS aggregator - [gandi-livedns](https://github.com/jbbodart/gandi-livedns) - Update your Gandi DNS zone records with your WAN IP - [Ghost](https://github.com/TryGhost/Ghost) - Ghost - Turn your audience into a business +- [Ghostfolio](https://github.com/ghostfolio/ghostfolio) - Open Source Wealth Management Software. - [Gitea](https://github.com/go-gitea/gitea) - Gitea - A painless self-hosted Git service - [Gladys Assistant](https://github.com/gladysassistant/gladys) - A privacy-first, open-source home assistant - [Gotify](https://github.com/gotify/server) - Gotify - Simple server for sending and receiving notification messages From 1ccf4d15ccf742e975b3489058e8d274b0703631 Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Sun, 13 Aug 2023 16:28:56 +0200 Subject: [PATCH 42/83] Add Ghostfolio --- apps/ghostfolio/config.json | 45 ++++++++++++++ apps/ghostfolio/docker-compose.yml | 74 ++++++++++++++++++++++++ apps/ghostfolio/metadata/description.md | 27 +++++++++ apps/ghostfolio/metadata/logo.png | Bin 0 -> 3028 bytes 4 files changed, 146 insertions(+) create mode 100644 apps/ghostfolio/config.json create mode 100644 apps/ghostfolio/docker-compose.yml create mode 100644 apps/ghostfolio/metadata/description.md create mode 100644 apps/ghostfolio/metadata/logo.png diff --git a/apps/ghostfolio/config.json b/apps/ghostfolio/config.json new file mode 100644 index 00000000..1012bea5 --- /dev/null +++ b/apps/ghostfolio/config.json @@ -0,0 +1,45 @@ +{ + "$schema": "../schema.json", + "name": "Ghostfolio", + "port": 3333, + "available": true, + "exposable": true, + "id": "ghostfolio", + "tipi_version": 1, + "version": "1.300.0", + "categories": ["finance"], + "description": "Ghostfolio is a privacy-first, open source dashboard for your personal finances.", + "short_desc": "", + "author": "dtslvr", + "source": "https://github.com/ghostfolio/ghostfolio", + "form_fields": [ + { + "type": "random", + "min": 32, + "max": 32, + "label": "Access token salt", + "env_variable": "GHOSTFOLIO_ACCESS_TOKEN_SALT" + }, + { + "type": "random", + "min": 32, + "max": 32, + "label": "JSON Web Tokens secret key", + "env_variable": "GHOSTFOLIO_JWT_SECRET_KEY" + }, + { + "type": "random", + "min": 32, + "max": 32, + "label": "Database password", + "env_variable": "GHOSTFOLIO_DB_PASSWORD" + }, + { + "type": "random", + "min": 32, + "max": 32, + "label": "Redis password", + "env_variable": "GHOSTFOLIO_REDIS_PASSWORD" + } + ] + } diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml new file mode 100644 index 00000000..31b2c700 --- /dev/null +++ b/apps/ghostfolio/docker-compose.yml @@ -0,0 +1,74 @@ +version: "3.9" + +services: + ghostfolio: + image: ghostfolio/ghostfolio:1.300.0 + restart: unless-stopped + ports: + - ${APP_PORT}:8080 + environment: + NODE_ENV: production + HOST: 0.0.0.0 + PORT: 3333 + ACCESS_TOKEN_SALT: $GHOSTFOLIO_ACCESS_TOKEN_SALT + DATABASE_URL: postgresql://ghostfolio:${GHOSTFOLIO_DB_PASSWORD}@ghostfolio-postgres:5432/ghostfolio?sslmode=prefer + JWT_SECRET_KEY: ${GHOSTFOLIO_JWT_SECRET_KEY} + POSTGRES_DB: ghostfolio + POSTGRES_USER: ghostfolio + POSTGRES_PASSWORD: ${GHOSTFOLIO_DB_PASSWORD} + REDIS_HOST: ghostfolio-redis + REDIS_PASSWORD: ${GHOSTFOLIO_REDIS_PASSWORD} + REDIS_PORT: 6379 + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.ghostfolio-web-redirect.redirectscheme.scheme: https + traefik.http.services.ghostfolio.loadbalancer.server.port: 3333 + # Web + traefik.http.routers.ghostfolio-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.ghostfolio-insecure.entrypoints: web + traefik.http.routers.ghostfolio-insecure.service: ghostfolio + traefik.http.routers.ghostfolio-insecure.middlewares: ghostfolio-web-redirect + # Websecure + traefik.http.routers.ghostfolio.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.ghostfolio.entrypoints: websecure + traefik.http.routers.ghostfolio.service: ghostfolio + traefik.http.routers.ghostfolio.tls.certresolver: myresolver + # Local domain + traefik.http.routers.ghostfolio-local-insecure.rule: Host(`ghostfolio.${LOCAL_DOMAIN}`) + traefik.http.routers.ghostfolio-local-insecure.entrypoints: web + traefik.http.routers.ghostfolio-local-insecure.service: ghostfolio + traefik.http.routers.ghostfolio-local-insecure.middlewares: ghostfolio-web-redirect + # Local domain secure + traefik.http.routers.ghostfolio-local.rule: Host(`ghostfolio.${LOCAL_DOMAIN}`) + traefik.http.routers.ghostfolio-local.entrypoints: websecure + traefik.http.routers.ghostfolio-local.service: ghostfolio + traefik.http.routers.ghostfolio-local.tls: true + + ghostfolio-postgres: + image: postgres:14-bullseye + restart: unless-stopped + stop_grace_period: 1m + user: "1000:1000" + environment: + POSTGRES_DB: ghostfolio + POSTGRES_USER: ghostfolio + POSTGRES_PASSWORD: ${GHOSTFOLIO_DB_PASSWORD} + PGDATA: /var/lib/postgresql/data + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + networks: + - tipi_main_network + + ghostfolio-redis: + image: redis:6.2-bullseye + restart: unless-stopped + user: "1000:1000" + command: > + --requirepass ${GHOSTFOLIO_REDIS_PASSWORD} + volumes: + - ${APP_DATA_DIR}/data/redis:/data + networks: + - tipi_main_network diff --git a/apps/ghostfolio/metadata/description.md b/apps/ghostfolio/metadata/description.md new file mode 100644 index 00000000..9636517f --- /dev/null +++ b/apps/ghostfolio/metadata/description.md @@ -0,0 +1,27 @@ +**Ghostfolio** is an open source wealth management software built with web technology. The application empowers busy people to keep track of stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions. The software is designed for personal use in continuous operation. + +## Why Ghostfolio? + +Ghostfolio is for you if you are... + +- πŸ’Ό trading stocks, ETFs or cryptocurrencies on multiple platforms +- 🏦 pursuing a buy & hold strategy +- 🎯 interested in getting insights of your portfolio composition +- πŸ‘» valuing privacy and data ownership +- 🧘 into minimalism +- 🧺 caring about diversifying your financial resources +- πŸ†“ interested in financial independence +- πŸ™… saying no to spreadsheets +- 😎 still reading this list + +## Features + +- βœ… Create, update and delete transactions +- βœ… Multi account management +- βœ… Portfolio performance for `Today`, `YTD`, `1Y`, `5Y`, `Max` +- βœ… Various charts +- βœ… Static analysis to identify potential risks in your portfolio +- βœ… Import and export transactions +- βœ… Dark Mode +- βœ… Zen Mode +- βœ… Progressive Web App (PWA) with a mobile-first design diff --git a/apps/ghostfolio/metadata/logo.png b/apps/ghostfolio/metadata/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3f3ce881e29c4e3a593df1d46aff032cddb91da7 GIT binary patch literal 3028 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 Date: Sun, 13 Aug 2023 16:44:11 +0200 Subject: [PATCH 43/83] Fix metadata --- apps/ghostfolio/config.json | 2 +- apps/ghostfolio/metadata/logo.jpg | Bin 0 -> 4295 bytes apps/ghostfolio/metadata/logo.png | Bin 3028 -> 0 bytes 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 apps/ghostfolio/metadata/logo.jpg delete mode 100644 apps/ghostfolio/metadata/logo.png diff --git a/apps/ghostfolio/config.json b/apps/ghostfolio/config.json index 1012bea5..13e6f92d 100644 --- a/apps/ghostfolio/config.json +++ b/apps/ghostfolio/config.json @@ -9,7 +9,7 @@ "version": "1.300.0", "categories": ["finance"], "description": "Ghostfolio is a privacy-first, open source dashboard for your personal finances.", - "short_desc": "", + "short_desc": "Open Source Wealth Management Software.", "author": "dtslvr", "source": "https://github.com/ghostfolio/ghostfolio", "form_fields": [ diff --git a/apps/ghostfolio/metadata/logo.jpg b/apps/ghostfolio/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2aa33d71d25b18634b3096db1ccb5a1bf1808b1f GIT binary patch literal 4295 zcmc&!c{JN=w~kUZv?Zn%?Xg-lm2yy}f_zm&O-WNFh~czK8ZlIfdFW|rj~db%YlxiE zP$5xMjN!CJijosSib@PciD+Z0p}5@ht?%@%_1!=2x_^AnyVh^*^}c&Qd+%qj-`@SO zI}VVvwX(4S2nYZG0(%FrI|{fA5InGt{jcC2goK6mAtEe%P*_w%OiWZnR8;J+#9=Y< zqvE2XM}S9;N=QlqCB+U)NlQse@7a?3Bm(=9fu^ZJZ_dX=2AqxapA`xAQv(l7F;DQqj&zs-Cv(RKdoQ=n(mu_ zvZ{~2X2-oH+levxS$PUv?B3O+S#(-g-`xYbb$fzOjQD;UG^nL!AG!-TnBaXQ^UlCj zKjtNoxkJovYkAyGZRl7j$4dw&BC8wErC9tj3ghSw;c;#~Bj3b@CdR)h&>jU)mLme{ zKg7h4)xJS{HD~1VP@l?}V_3%2%@Oa?^#K*d@5K-6wQGtkVffX{$ZvRm&}a(Ss*%sP zWc!otVimj*Fb;4Kk28i2YV~gCs@oPUE;*kwatIv6aoKt+Rz--)veMNeXO3~lSVN#S^hlvKj$4PuXJWge)&Y{{fVE4V?d9WJeLwp zH@bFusN1EcgS~PMu~EB#Rl_Hr;E2oNauf!S80mPjX2bd-x+VAN*TcyPH1R)p*AX_X zhCB!sVM!&Ju0j<`DabcQ)@uIsJeI>`sLd+9h0F$XXkyxVx<54K zPN9DiZV96Mgx~#4TL&7CH*bNrR6^sfVHcZo?@$_xxDu7tJ0=YLEjR)kexY8MR}$%T zvTB2-5i)Bo^JDk1=F(+G%+f;|y)Qd;5fqL^LSO#$W=SsjW}dfec4vPi|& zY?Gl4yzOOUJ*@KAHpb&m)XJ6;uQ7)qt-)@ixb4cT{%Ler%`nDDU#Yh|HiWmZSeg)n z%&#%ZezKoVpwo|RUQZu(t4q=7xOt(BRrPYi0H$+~!$|+MjcwpnHRap8lxOmtD9y;1 zBPW_Fj$>z-tx0QZ;ZASjq`T7m%tK4hI-OF79O;Cm50^BRBo{!MC#E;c@>Eg8^Uq=) zefps(bvI!4#Iri7Zl}4jKi{6x+)N@nye3G{)Z4t3YwUxR1B`=loVNQs#*V9ecK9QM z&f1A~7Wk+VPZuoQcviyp-d|jL5US5hpRvo$)$vuSdHZ=@A(bT+$M zJnqlUTq~ZtQ@cNx$%#J&x}t6{(Gr%!w(o|MV$UuxLp+mt89e;aDu^FkYEw^c_)2f4 zm3MDeH7Tc*gJ895Tl(nZ4Nr&2qygsWsQxgJ-YO|h-YY*iY*BquE^MHF>}o0MkWhtMCe{0Ck+>e zysMl}yPXyt$(MLgoWpk^5#-_Z8KXo$DeQ1-KT} zJ1#B_Kg|9%xyMU-id|#9^p1=y#GUN_Xso)5z(?Ul-LI%pI*scz8~q?R!dpBY>ApF~ zHqn6+uitoRonQ7dred{tDU*|k zva+pxBs-!fM3aV5 zzy)jpf8n=9h-_nrUs|5ayqN@q?UY46^&wPwTMD!~JlY#u9nw4WU_P~OwCt=Bk5~w?>+Cp>{t#5Bfr%$PUt~Q2&AL zJlv-;iT}m5c;gIQpAJcz3p^&;fpq#B+$`2Xc7Aj7j>LJP0X z#pSCmfvM$gvMAGQX4>p4DwfZVeuqS;qVaYJy7bk%5= zo%GZ$Km*Ph-vzvF#+K}0V{EOQQjLCsiO&w1O8UW*zl{Gwfd zBsPDbooQ2&7sIr0+mwZgnphBqDl$pFyP~Y8{b#GRnJ4c1h z3dl+g&k7s^_Ff-Jt*9F=Q0LOT`?AT`*Kp6qtcq8%HQjXyuYsW z`~H`8bu|?4e0GjxH*fH&4P4VYo>{C=Ae}JP+H0DJDy{K?gO78!M5w<#!>Jzgcrvm{ z@vN}be9L8c7OXsb#)=8%ag-XD>W;yxa26d|yv^lkTgA?yK7F=K#{B4XhZ=ir3%FKO zQ`DD60?if_Q*uybO7?8`RBWCyqtt`3`FO*tTXFL=HFx* zlby5w%uC+|R7Z#2-`dn(E2^l_Y^t;wvk%TrtW)$r*9?vMscLqVGfLFB#&@xmBD1;~ z!7V{D?_CHnNck3A@7VhW;`N-5>7Ucx_s+Qnm+QYUWMB#wCY<>A;M|W+7!2I4se%3_ z!CL*(+RE0|Dx68DDdR0Zn^ImINK!lZ+znit6WUDGsNFdhmg&J5EXQit`Ooxw_>Zx2 z{@~beUZ;x{FFl(!X|8)zU#`#yzvk_OyezgX4$`nKJxmPlBUn+!sOdK6`aN?N)<5|0 rkrnT`df6k})#a!u39%G2f(#lo>za#CxC7~uJ@NM%`p;TQyTktloFJMx literal 0 HcmV?d00001 diff --git a/apps/ghostfolio/metadata/logo.png b/apps/ghostfolio/metadata/logo.png deleted file mode 100644 index 3f3ce881e29c4e3a593df1d46aff032cddb91da7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3028 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 Date: Sun, 13 Aug 2023 16:54:02 +0200 Subject: [PATCH 44/83] Add container_name --- apps/ghostfolio/docker-compose.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index 31b2c700..a18d2d39 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -2,6 +2,7 @@ version: "3.9" services: ghostfolio: + container_name: ghostfolio image: ghostfolio/ghostfolio:1.300.0 restart: unless-stopped ports: @@ -48,6 +49,7 @@ services: traefik.http.routers.ghostfolio-local.tls: true ghostfolio-postgres: + container_name: ghostfolio-postgres image: postgres:14-bullseye restart: unless-stopped stop_grace_period: 1m @@ -63,6 +65,7 @@ services: - tipi_main_network ghostfolio-redis: + container_name: ghostfolio-redis image: redis:6.2-bullseye restart: unless-stopped user: "1000:1000" From c867529f29b7fa6a782cef6ac47a401c33e26b21 Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Sun, 13 Aug 2023 16:58:48 +0200 Subject: [PATCH 45/83] Fix db images --- apps/ghostfolio/docker-compose.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index a18d2d39..e0107a1c 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -50,11 +50,8 @@ services: ghostfolio-postgres: container_name: ghostfolio-postgres - image: postgres:14-bullseye - restart: unless-stopped - stop_grace_period: 1m - user: "1000:1000" - environment: + image: postgres:14 + restart: unless-stopped environment: POSTGRES_DB: ghostfolio POSTGRES_USER: ghostfolio POSTGRES_PASSWORD: ${GHOSTFOLIO_DB_PASSWORD} @@ -66,9 +63,8 @@ services: ghostfolio-redis: container_name: ghostfolio-redis - image: redis:6.2-bullseye + image: redis:6.2 restart: unless-stopped - user: "1000:1000" command: > --requirepass ${GHOSTFOLIO_REDIS_PASSWORD} volumes: From 41ceec709d8e6896e50522708902705116e74968 Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Sun, 13 Aug 2023 17:00:18 +0200 Subject: [PATCH 46/83] Typo --- apps/ghostfolio/docker-compose.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index e0107a1c..865bfd8f 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -51,7 +51,8 @@ services: ghostfolio-postgres: container_name: ghostfolio-postgres image: postgres:14 - restart: unless-stopped environment: + restart: unless-stopped + environment: POSTGRES_DB: ghostfolio POSTGRES_USER: ghostfolio POSTGRES_PASSWORD: ${GHOSTFOLIO_DB_PASSWORD} From cb870f845e2f004fe21618296b9229c6193920a7 Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Sun, 13 Aug 2023 17:08:46 +0200 Subject: [PATCH 47/83] Fix port --- apps/ghostfolio/docker-compose.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index 865bfd8f..841d58c3 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -6,7 +6,7 @@ services: image: ghostfolio/ghostfolio:1.300.0 restart: unless-stopped ports: - - ${APP_PORT}:8080 + - ${APP_PORT}:3333 environment: NODE_ENV: production HOST: 0.0.0.0 @@ -22,6 +22,9 @@ services: REDIS_PORT: 6379 networks: - tipi_main_network + depends_on: + - ghostfolio-postgres + - ghostfolio-redis labels: # Main traefik.enable: true From 709c7a65c54e5051b0192e584e68b28780efa903 Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Sun, 13 Aug 2023 21:05:46 +0200 Subject: [PATCH 48/83] Review comments --- apps/ghostfolio/docker-compose.yml | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index 841d58c3..7e775408 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -12,7 +12,7 @@ services: HOST: 0.0.0.0 PORT: 3333 ACCESS_TOKEN_SALT: $GHOSTFOLIO_ACCESS_TOKEN_SALT - DATABASE_URL: postgresql://ghostfolio:${GHOSTFOLIO_DB_PASSWORD}@ghostfolio-postgres:5432/ghostfolio?sslmode=prefer + DATABASE_URL: postgresql://ghostfolio:${GHOSTFOLIO_DB_PASSWORD}@ghostfolio-db:5432/ghostfolio?sslmode=prefer JWT_SECRET_KEY: ${GHOSTFOLIO_JWT_SECRET_KEY} POSTGRES_DB: ghostfolio POSTGRES_USER: ghostfolio @@ -23,8 +23,10 @@ services: networks: - tipi_main_network depends_on: - - ghostfolio-postgres - - ghostfolio-redis + - ghostfolio-db: + condition: service_healthy + - ghostfolio-redis: + condition: service_healthy labels: # Main traefik.enable: true @@ -51,26 +53,37 @@ services: traefik.http.routers.ghostfolio-local.service: ghostfolio traefik.http.routers.ghostfolio-local.tls: true - ghostfolio-postgres: - container_name: ghostfolio-postgres - image: postgres:14 + ghostfolio-db: + container_name: ghostfolio-db + image: postgres:15.4-alpine restart: unless-stopped environment: POSTGRES_DB: ghostfolio POSTGRES_USER: ghostfolio POSTGRES_PASSWORD: ${GHOSTFOLIO_DB_PASSWORD} PGDATA: /var/lib/postgresql/data + healthcheck: + test: ["CMD", "pg_isready", "-d", "ghostfolio"] + interval: 10s + timeout: 5s + retries: 5 volumes: - - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data networks: - tipi_main_network ghostfolio-redis: - container_name: ghostfolio-redis + container_name: redis:7-alpine image: redis:6.2 restart: unless-stopped command: > --requirepass ${GHOSTFOLIO_REDIS_PASSWORD} + healthcheck: + test: ['CMD', 'redis-cli', 'ping'] + interval: 10s + timeout: 5s + retries: 5 + start_period: 30s volumes: - ${APP_DATA_DIR}/data/redis:/data networks: From b69db5a7c412c71906c306d9b14c310be119015e Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Sun, 13 Aug 2023 21:09:33 +0200 Subject: [PATCH 49/83] Fixed misedit --- apps/ghostfolio/docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index 7e775408..a516a620 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -73,8 +73,8 @@ services: - tipi_main_network ghostfolio-redis: - container_name: redis:7-alpine - image: redis:6.2 + container_name: ghostfolio-redis + image: redis:7-alpine restart: unless-stopped command: > --requirepass ${GHOSTFOLIO_REDIS_PASSWORD} From 90dc72a9042620ebb3858785c982fc6ba9e02ab4 Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Sun, 13 Aug 2023 21:12:51 +0200 Subject: [PATCH 50/83] Fixed missing indent --- apps/ghostfolio/docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index a516a620..67281932 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -24,9 +24,9 @@ services: - tipi_main_network depends_on: - ghostfolio-db: - condition: service_healthy + condition: service_healthy - ghostfolio-redis: - condition: service_healthy + condition: service_healthy labels: # Main traefik.enable: true From d848bbef8de7235555599f1c19325ca8bc0d642a Mon Sep 17 00:00:00 2001 From: DireMunchkin <1665676+DireMunchkin@users.noreply.github.com> Date: Sun, 13 Aug 2023 21:24:46 +0200 Subject: [PATCH 51/83] Health check syntax --- apps/ghostfolio/docker-compose.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml index 67281932..8ed12f8f 100644 --- a/apps/ghostfolio/docker-compose.yml +++ b/apps/ghostfolio/docker-compose.yml @@ -23,10 +23,10 @@ services: networks: - tipi_main_network depends_on: - - ghostfolio-db: - condition: service_healthy - - ghostfolio-redis: - condition: service_healthy + ghostfolio-db: + condition: service_healthy + ghostfolio-redis: + condition: service_healthy labels: # Main traefik.enable: true From be92f2251350abf15d6a573a9852fc1e8f1fb976 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 10:58:52 +0000 Subject: [PATCH 52/83] 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 df28de692ca4078264e86e2cc920abacf4b1d35d Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 10:59:37 +0000 Subject: [PATCH 53/83] 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 b91abd43bf68bf27c29686b84750e7ff2b6c812a Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 11:13:51 +0000 Subject: [PATCH 54/83] 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 4a9b485c9dc789c9bec16c3e9df1b9e4659cf1b7 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 11:16:53 +0000 Subject: [PATCH 55/83] 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 fd97ea41dbf47198fd05170ea6dc2f8d43ac02bc Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 11:19:36 +0000 Subject: [PATCH 56/83] 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 d820fce10593289aa070438eac7642eb79ae8636 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 11:21:40 +0000 Subject: [PATCH 57/83] 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 f76a8a406d948e1fa21e7ea7539f4eb5f83469e5 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 11:28:38 +0000 Subject: [PATCH 58/83] 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 8f7e3f002ac3f7db2f41f9af4d416503524989a7 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 12:39:48 +0000 Subject: [PATCH 59/83] 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 549ae15f711dba09a4077bc7dca55ff2a466331e Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 20:31:35 +0300 Subject: [PATCH 60/83] 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 52738e81a1c1b741cb365a3fd0355eea0b911da8 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 20:32:28 +0300 Subject: [PATCH 61/83] 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 2683635bf7afde7d12a82cc431cad5f4e1e07a49 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 20:55:59 +0300 Subject: [PATCH 62/83] 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 df74dbb31ac198c82bffe4a24302c99ab1b8f481 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 22:31:05 +0300 Subject: [PATCH 63/83] 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 1833e914e9449fc89cbe4be637021f3883369beb Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Mon, 14 Aug 2023 00:24:43 +0300 Subject: [PATCH 64/83] 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 c7e371f03546d317511e1e134a4f0cc4447af884 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Mon, 14 Aug 2023 00:25:15 +0300 Subject: [PATCH 65/83] 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 1d2f0a02643d3e0861653ad62bf9fc9ea2f7f07e Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Mon, 14 Aug 2023 00:25:56 +0300 Subject: [PATCH 66/83] 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 e7c66f44d3acbd299b4fd5afbea1f6ce4af2a0c1 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 67/83] 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 8db70ded544655ae7412ce9af49719d86a04dd9d 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 68/83] 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 54f6cd733d577a936c703d2a8bf9a06abe0b1599 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 69/83] 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 23fe74cdc232ccee74a21586e40eae44558a8eeb 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 70/83] 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 56577fdee16f8076502fccf46ca365c5b0be7a8e 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 71/83] 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 b3e47fb168d2f1287c849c01c342a5833401ecd1 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 72/83] 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 a23fe520e006fd86297764ff372b07173ddcdf8a 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 73/83] 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 6126495cfddea6cc042964d51597d67f2797d11e 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 74/83] 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 890c3730f0aedefeb44afe3ce2974c1c93f2a9d7 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 75/83] 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 ac8575a4f40934ba91e063589bd773b640b79c34 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 76/83] 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 a1290aad4de0bbc62535c5322e7f31ed365a3ebe 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 77/83] 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 f220e5e8454706d4f0279f76d5cfa31166306307 Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Tue, 15 Aug 2023 20:21:15 +0200 Subject: [PATCH 78/83] 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", From aea35fd139eab9f3c09add82ff92939fa567e5a3 Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Tue, 15 Aug 2023 20:29:23 +0200 Subject: [PATCH 79/83] docs: add ghostfolio to main readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 92648714..9a184f39 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 - [Freshrss](https://github.com/FreshRSS/FreshRSS) - A free, self-hostable RSS aggregator - [gandi-livedns](https://github.com/jbbodart/gandi-livedns) - Update your Gandi DNS zone records with your WAN IP - [Ghost](https://github.com/TryGhost/Ghost) - Ghost - Turn your audience into a business +- [Ghostfolio](https://github.com/ghostfolio/ghostfolio) - Open Source Wealth Management Software. - [Gitea](https://github.com/go-gitea/gitea) - Gitea - A painless self-hosted Git service - [Gladys Assistant](https://github.com/gladysassistant/gladys) - A privacy-first, open-source home assistant - [Gotify](https://github.com/gotify/server) - Gotify - Simple server for sending and receiving notification messages From 588e885d178235bbdce5e75ab40858f74ad45605 Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Tue, 15 Aug 2023 20:38:18 +0200 Subject: [PATCH 80/83] chore(matrix-conduit): change array fields to text --- apps/matrix-conduit/config.json | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/apps/matrix-conduit/config.json b/apps/matrix-conduit/config.json index 7548cbfa..dd8c1ef1 100644 --- a/apps/matrix-conduit/config.json +++ b/apps/matrix-conduit/config.json @@ -9,9 +9,7 @@ "id": "matrix-conduit", "tipi_version": 4, "version": "0.6.0", - "categories": [ - "social" - ], + "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", @@ -32,7 +30,7 @@ "env_variable": "ALLOW_FEDERATION" }, { - "type": "array", + "type": "text", "label": "Trusted Servers", "hint": "List of domain names", "placeholder": "[\"matrix.org\"]", @@ -57,7 +55,7 @@ "env_variable": "LOG" }, { - "type": "array", + "type": "text", "label": "TURN URIs", "hint": "List of TURN server URIs turn:/turns:", "placeholder": "[\"turn:?transport=udp\", \"turn:?transport=tcp\"]", From c033ed20a456e3c7a7b738eb261b99a302e283cb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Aug 2023 19:01:27 +0000 Subject: [PATCH 81/83] chore(deps): update ghcr.io/tandoorrecipes/recipes docker tag to v1.5.5 (#1012) --- apps/tandoor/config.json | 8 +++++--- apps/tandoor/docker-compose.yml | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/tandoor/config.json b/apps/tandoor/config.json index 731be5c4..bbd0c49f 100644 --- a/apps/tandoor/config.json +++ b/apps/tandoor/config.json @@ -5,9 +5,11 @@ "available": true, "exposable": true, "id": "tandoor", - "tipi_version": 1, - "version": "1.5.4", - "categories": ["data"], + "tipi_version": 2, + "version": "1.5.5", + "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": "Recipe collection manager.", "author": "Tandoor Recipes", diff --git a/apps/tandoor/docker-compose.yml b/apps/tandoor/docker-compose.yml index f729f8dd..3c6bafb7 100644 --- a/apps/tandoor/docker-compose.yml +++ b/apps/tandoor/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" services: tandoor: container_name: tandoor - image: ghcr.io/tandoorrecipes/recipes:1.5.4 + image: ghcr.io/tandoorrecipes/recipes:1.5.5 volumes: - ${APP_DATA_DIR}/data/staticfiles:/opt/recipes/staticfiles - ${APP_DATA_DIR}/data/mediafiles:/opt/recipes/mediafiles From c20dcd1be2bb95e13cdc8965cd357a5cce3bc7ea Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Aug 2023 19:01:38 +0000 Subject: [PATCH 82/83] chore(deps): update superseriousbusiness/gotosocial docker tag to v0.11.0 (#1013) --- apps/gotosocial/config.json | 4 ++-- apps/gotosocial/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/gotosocial/config.json b/apps/gotosocial/config.json index 01c9c5c9..242b3e01 100644 --- a/apps/gotosocial/config.json +++ b/apps/gotosocial/config.json @@ -6,10 +6,10 @@ "exposable": true, "force_expose": true, "id": "gotosocial", - "tipi_version": 6, + "tipi_version": 7, "uid": 1000, "gid": 1000, - "version": "0.10.0", + "version": "0.11.0", "categories": [ "social" ], diff --git a/apps/gotosocial/docker-compose.yml b/apps/gotosocial/docker-compose.yml index 03713f08..e75ce1e7 100644 --- a/apps/gotosocial/docker-compose.yml +++ b/apps/gotosocial/docker-compose.yml @@ -3,7 +3,7 @@ version: "3" services: gotosocial: container_name: gotosocial - image: superseriousbusiness/gotosocial:0.10.0 + image: superseriousbusiness/gotosocial:0.11.0 user: 1000:1000 ports: - ${APP_PORT}:8080 From 2b4b9945ec162b2b0395058b86b2289742e9a3ce Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Aug 2023 19:05:56 +0000 Subject: [PATCH 83/83] chore(deps): update typesense/typesense docker tag to v0.25.0 (#1014) --- 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 73248a35..f2b1fc7d 100644 --- a/apps/immich/docker-compose.yml +++ b/apps/immich/docker-compose.yml @@ -142,7 +142,7 @@ services: immich-typesense: container_name: immich-typesense - image: typesense/typesense:0.24.0 + image: typesense/typesense:0.25.0 environment: - TYPESENSE_API_KEY=${IMMICH_TYPESENSE_API_KEY} - TYPESENSE_DATA_DIR=/data