From 49e931668559546ca4a763b676f4767a3d71ff99 Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger <47644445+meienberger@users.noreply.github.com> Date: Mon, 12 Jun 2023 21:58:59 +0200 Subject: [PATCH] local domain configs M-O (#689) * feat(jackett): change config to support local domain * feat(matrix-conduit): change config to support local domain * feat(mealie): change config to support local domain * feat(memos): change config to support local domain * feat(mind): change config to support local domain * feat(minecraft-server): change config to support local domain * feat(mixpost): change config to support local domain * feat(mixpost-pro): change config to support local domain * feat(moneroblock): change config to support local domain * feat(monerod): change config to support local domain * feat(monica): change config to support local domain * feat(movary): change config to support local domain * feat(mstream): change config to support local domain * feat(mylar3): change config to support local domain * feat(n8n): change config to support local domain * feat(navidrome): change config to support local domain * feat(nitter): change config to support local domain * feat(nocodb): change config to support local domain * feat(nodered): change config to support local domain * feat(onedev): change config to support local domain * feat(openbooks): change config to support local domain * feat(overseerr): change config to support local domain * feat(owncloud): change config to support local domain --- apps/jackett/config.json | 5 +-- apps/matrix-conduit/config.json | 4 +- apps/matrix-conduit/docker-compose.yml | 54 ++++++++++++++++++++---- apps/mealie/config.json | 2 +- apps/mealie/docker-compose.yml | 22 +++++++++- apps/memos/config.json | 11 ++--- apps/memos/docker-compose.yml | 36 ++++++++++++---- apps/mind/config.json | 6 +-- apps/mind/docker-compose.yml | 24 +++++++++-- apps/minecraft-server/config.json | 2 +- apps/minecraft-server/docker-compose.yml | 22 +++++++++- apps/mixpost-pro/config.json | 2 +- apps/mixpost-pro/docker-compose.yml | 32 +++++++++++--- apps/mixpost/config.json | 10 ++--- apps/mixpost/docker-compose.yml | 32 +++++++++++--- apps/moneroblock/config.json | 6 +-- apps/moneroblock/docker-compose.yml | 22 +++++++++- apps/monerod/config.json | 6 +-- apps/monerod/docker-compose.yml | 22 +++++++++- apps/monica/config.json | 12 ++---- apps/monica/docker-compose.yml | 22 +++++++++- apps/movary/config.json | 6 +-- apps/movary/docker-compose.yml | 22 +++++++++- apps/mstream/config.json | 2 +- apps/mstream/docker-compose.yml | 23 ++++++++-- apps/mylar3/config.json | 2 +- apps/mylar3/docker-compose.yml | 24 +++++++++-- apps/n8n/config.json | 6 +-- apps/n8n/docker-compose.yml | 24 +++++++++-- apps/navidrome/config.json | 7 +-- apps/navidrome/docker-compose.yml | 26 ++++++++++-- apps/nitter/config.json | 2 +- apps/nitter/docker-compose.yml | 34 +++++++++++++-- apps/nocodb/config.json | 6 +-- apps/nocodb/docker-compose.yml | 34 +++++++++++---- apps/nodered/config.json | 2 +- apps/nodered/docker-compose.yml | 22 +++++++++- apps/onedev/config.json | 6 +-- apps/onedev/docker-compose.yml | 26 ++++++++++-- apps/openbooks/config.json | 2 +- apps/openbooks/docker-compose.yml | 30 ++++++++++--- apps/overseerr/config.json | 7 +-- apps/overseerr/docker-compose.yml | 22 +++++++++- apps/owncloud/config.json | 6 +-- apps/owncloud/docker-compose.yml | 34 +++++++++++++-- 45 files changed, 559 insertions(+), 170 deletions(-) diff --git a/apps/jackett/config.json b/apps/jackett/config.json index 008d596b..64c20222 100644 --- a/apps/jackett/config.json +++ b/apps/jackett/config.json @@ -9,10 +9,7 @@ "version": "0.21.188", "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": [ - "media", - "utilities" - ], + "categories": ["media", "utilities"], "author": "", "source": "https://github.com/Jackett/Jackett", "form_fields": [] diff --git a/apps/matrix-conduit/config.json b/apps/matrix-conduit/config.json index df2872ea..4a1eeb50 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": 1, + "tipi_version": 2, "version": "0.5.0", "categories": ["social"], "description": "Conduit is a fast Matrix homeserver that’s easy to set up and just works. You can install it on a mini-computer like the Raspberry Pi to host Matrix for your family, friends or company.", @@ -49,7 +49,7 @@ "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" } diff --git a/apps/matrix-conduit/docker-compose.yml b/apps/matrix-conduit/docker-compose.yml index 0c09f805..284de15b 100644 --- a/apps/matrix-conduit/docker-compose.yml +++ b/apps/matrix-conduit/docker-compose.yml @@ -22,12 +22,30 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} - traefik.http.routers.matrix.rule: Host(`${APP_DOMAIN}`) - traefik.http.routers.matrix.entrypoints: websecure - traefik.http.routers.matrix.service: matrix - traefik.http.routers.matrix.tls.certresolver: myresolver - traefik.http.services.matrix.loadbalancer.server.port: 6167 + # Main + traefik.enable: true + traefik.http.middlewares.matrix-conduit-web-redirect.redirectscheme.scheme: https + traefik.http.services.matrix-conduit.loadbalancer.server.port: 6167 + # Web + traefik.http.routers.matrix-conduit-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.matrix-conduit-insecure.entrypoints: web + traefik.http.routers.matrix-conduit-insecure.service: matrix-conduit + traefik.http.routers.matrix-conduit-insecure.middlewares: matrix-conduit-web-redirect + # Websecure + traefik.http.routers.matrix-conduit.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.matrix-conduit.entrypoints: websecure + traefik.http.routers.matrix-conduit.service: matrix-conduit + traefik.http.routers.matrix-conduit.tls.certresolver: myresolver + # Local domain + traefik.http.routers.matrix-conduit-local-insecure.rule: Host(`matrix-conduit.${LOCAL_DOMAIN}`) + traefik.http.routers.matrix-conduit-local-insecure.entrypoints: web + traefik.http.routers.matrix-conduit-local-insecure.service: matrix-conduit + traefik.http.routers.matrix-conduit-local-insecure.middlewares: matrix-conduit-web-redirect + # Local domain secure + traefik.http.routers.matrix-conduit-local.rule: Host(`matrix-conduit.${LOCAL_DOMAIN}`) + traefik.http.routers.matrix-conduit-local.entrypoints: websecure + traefik.http.routers.matrix-conduit-local.service: matrix-conduit + traefik.http.routers.matrix-conduit-local.tls: true matrix-conduit-well-known: container_name: matrix-conduit-well-known @@ -40,9 +58,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} - traefik.http.routers.matrix-well-knows.rule: Host(`${APP_DOMAIN}`) && PathPrefix(`/.well-known/matrix`) + # Main + traefik.enable: true + traefik.http.middlewares.matrix-well-knows-web-redirect.redirectscheme.scheme: https + traefik.http.services.matrix-well-knows.loadbalancer.server.port: 80 + # Web + traefik.http.routers.matrix-well-knows-insecure.rule: Host(`${APP_DOMAIN}`) && PathPrefix(`/.well-known/matrix`) + traefik.http.routers.matrix-well-knows-insecure.entrypoints: web + 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.entrypoints: websecure traefik.http.routers.matrix-well-knows.service: matrix-well-knows traefik.http.routers.matrix-well-knows.tls.certresolver: myresolver - traefik.http.services.matrix-well-knows.loadbalancer.server.port: 80 + # 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.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 + # Local domain secure + traefik.http.routers.matrix-well-knows-local.rule: Host(`matrix-well-knows.${LOCAL_DOMAIN}`) && PathPrefix(`/.well-known/matrix`) + traefik.http.routers.matrix-well-knows-local.entrypoints: websecure + traefik.http.routers.matrix-well-knows-local.service: matrix-well-knows + traefik.http.routers.matrix-well-knows-local.tls: true diff --git a/apps/mealie/config.json b/apps/mealie/config.json index 402e5c51..b1d3f39c 100644 --- a/apps/mealie/config.json +++ b/apps/mealie/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "mealie", - "tipi_version": 2, + "tipi_version": 3, "supported_architectures": ["arm64", "amd64"], "version": "v0.5.6", "description": "Mealie is a self-hosted recipe manager and meal planner with a RestAPI backend and a reactive frontend application built in Vue for a pleasant user experience for the whole family. Easily add recipes into your database by providing the url and Mealie will automatically import the relevant data or add a family recipe with the UI editor. Mealie also provides an API for interactions from 3rd party applications. Default username / password is changeme@email.com / MyPassword", diff --git a/apps/mealie/docker-compose.yml b/apps/mealie/docker-compose.yml index f273884d..22a5325e 100644 --- a/apps/mealie/docker-compose.yml +++ b/apps/mealie/docker-compose.yml @@ -14,9 +14,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.mealie-web-redirect.redirectscheme.scheme: https + traefik.http.services.mealie.loadbalancer.server.port: 80 + # Web + traefik.http.routers.mealie-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.mealie-insecure.entrypoints: web + traefik.http.routers.mealie-insecure.service: mealie + traefik.http.routers.mealie-insecure.middlewares: mealie-web-redirect + # Websecure traefik.http.routers.mealie.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.mealie.entrypoints: websecure traefik.http.routers.mealie.service: mealie traefik.http.routers.mealie.tls.certresolver: myresolver - traefik.http.services.mealie.loadbalancer.server.port: 80 \ No newline at end of file + # Local domain + traefik.http.routers.mealie-local-insecure.rule: Host(`mealie.${LOCAL_DOMAIN}`) + traefik.http.routers.mealie-local-insecure.entrypoints: web + traefik.http.routers.mealie-local-insecure.service: mealie + traefik.http.routers.mealie-local-insecure.middlewares: mealie-web-redirect + # Local domain secure + traefik.http.routers.mealie-local.rule: Host(`mealie.${LOCAL_DOMAIN}`) + traefik.http.routers.mealie-local.entrypoints: websecure + traefik.http.routers.mealie-local.service: mealie + traefik.http.routers.mealie-local.tls: true diff --git a/apps/memos/config.json b/apps/memos/config.json index ee92e5a2..42c3616d 100644 --- a/apps/memos/config.json +++ b/apps/memos/config.json @@ -5,19 +5,14 @@ "exposable": true, "port": 5230, "id": "memos", - "tipi_version": 6, + "tipi_version": 7, "version": "0.13.1", - "categories": [ - "utilities" - ], + "categories": ["utilities"], "description": "Memo hub for knowledge management and collaboration.", "short_desc": "Memo hub for knowledge management and collaboration.", "author": "boojack", "website": "https://usememos.com/", "source": "https://github.com/usememos/memos", - "supported_architectures": [ - "arm64", - "amd64" - ], + "supported_architectures": ["arm64", "amd64"], "form_fields": [] } diff --git a/apps/memos/docker-compose.yml b/apps/memos/docker-compose.yml index 1cf5f6df..bae75f90 100644 --- a/apps/memos/docker-compose.yml +++ b/apps/memos/docker-compose.yml @@ -4,16 +4,34 @@ services: image: neosmemo/memos:0.13.1 container_name: memos volumes: - - ${APP_DATA_DIR}/memos:/var/opt/memos + - ${APP_DATA_DIR}/memos:/var/opt/memos ports: - - ${APP_PORT}:5230 + - ${APP_PORT}:5230 restart: unless-stopped networks: - - tipi_main_network + - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} - traefik.http.routers.memos.rule: Host(`${APP_DOMAIN}`) - traefik.http.routers.memos.entrypoints: websecure - traefik.http.routers.memos.service: memos - traefik.http.routers.memos.tls.certresolver: myresolver - traefik.http.services.memos.loadbalancer.server.port: 5230 \ No newline at end of file + # Main + traefik.enable: true + traefik.http.middlewares.memos-web-redirect.redirectscheme.scheme: https + traefik.http.services.memos.loadbalancer.server.port: 5230 + # Web + traefik.http.routers.memos-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.memos-insecure.entrypoints: web + traefik.http.routers.memos-insecure.service: memos + traefik.http.routers.memos-insecure.middlewares: memos-web-redirect + # Websecure + traefik.http.routers.memos.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.memos.entrypoints: websecure + traefik.http.routers.memos.service: memos + traefik.http.routers.memos.tls.certresolver: myresolver + # Local domain + traefik.http.routers.memos-local-insecure.rule: Host(`memos.${LOCAL_DOMAIN}`) + traefik.http.routers.memos-local-insecure.entrypoints: web + traefik.http.routers.memos-local-insecure.service: memos + traefik.http.routers.memos-local-insecure.middlewares: memos-web-redirect + # Local domain secure + traefik.http.routers.memos-local.rule: Host(`memos.${LOCAL_DOMAIN}`) + traefik.http.routers.memos-local.entrypoints: websecure + traefik.http.routers.memos-local.service: memos + traefik.http.routers.memos-local.tls: true diff --git a/apps/mind/config.json b/apps/mind/config.json index 5d1ee78f..0782ac27 100644 --- a/apps/mind/config.json +++ b/apps/mind/config.json @@ -5,11 +5,9 @@ "available": true, "exposable": true, "id": "mind", - "tipi_version": 4, + "tipi_version": 5, "version": "1.3.1", - "categories": [ - "utilities" - ], + "categories": ["utilities"], "description": "A simple self hosted reminder platform that uses push to send notifications to your device. Set the reminder and forget about it!", "short_desc": "A simple self hosted reminder platform that uses push to send notifications to your device.", "author": "https://github.com/Casvt", diff --git a/apps/mind/docker-compose.yml b/apps/mind/docker-compose.yml index 67dc3fd3..32363079 100644 --- a/apps/mind/docker-compose.yml +++ b/apps/mind/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.3' +version: "3.3" services: mind: @@ -13,9 +13,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.mind-web-redirect.redirectscheme.scheme: https + traefik.http.services.mind.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.mind-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.mind-insecure.entrypoints: web + traefik.http.routers.mind-insecure.service: mind + traefik.http.routers.mind-insecure.middlewares: mind-web-redirect + # Websecure traefik.http.routers.mind.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.mind.entrypoints: websecure traefik.http.routers.mind.service: mind traefik.http.routers.mind.tls.certresolver: myresolver - traefik.http.services.mind.loadbalancer.server.port: 8080 + # Local domain + traefik.http.routers.mind-local-insecure.rule: Host(`mind.${LOCAL_DOMAIN}`) + traefik.http.routers.mind-local-insecure.entrypoints: web + traefik.http.routers.mind-local-insecure.service: mind + traefik.http.routers.mind-local-insecure.middlewares: mind-web-redirect + # Local domain secure + traefik.http.routers.mind-local.rule: Host(`mind.${LOCAL_DOMAIN}`) + traefik.http.routers.mind-local.entrypoints: websecure + traefik.http.routers.mind-local.service: mind + traefik.http.routers.mind-local.tls: true diff --git a/apps/minecraft-server/config.json b/apps/minecraft-server/config.json index 6967b90c..871acca1 100644 --- a/apps/minecraft-server/config.json +++ b/apps/minecraft-server/config.json @@ -6,7 +6,7 @@ "no_gui": true, "port": 25565, "id": "minecraft-server", - "tipi_version": 1, + "tipi_version": 2, "version": "latest", "categories": ["gaming"], "description": "Minecraft Server", diff --git a/apps/minecraft-server/docker-compose.yml b/apps/minecraft-server/docker-compose.yml index b5f3725b..f8945cdf 100644 --- a/apps/minecraft-server/docker-compose.yml +++ b/apps/minecraft-server/docker-compose.yml @@ -17,9 +17,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.minecraft-server-web-redirect.redirectscheme.scheme: https + traefik.http.services.minecraft-server.loadbalancer.server.port: 25565 + # Web + traefik.http.routers.minecraft-server-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.minecraft-server-insecure.entrypoints: web + traefik.http.routers.minecraft-server-insecure.service: minecraft-server + traefik.http.routers.minecraft-server-insecure.middlewares: minecraft-server-web-redirect + # Websecure traefik.http.routers.minecraft-server.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.minecraft-server.entrypoints: websecure traefik.http.routers.minecraft-server.service: minecraft-server traefik.http.routers.minecraft-server.tls.certresolver: myresolver - traefik.http.services.minecraft-server.loadbalancer.server.port: 25565 \ No newline at end of file + # Local domain + traefik.http.routers.minecraft-server-local-insecure.rule: Host(`minecraft-server.${LOCAL_DOMAIN}`) + traefik.http.routers.minecraft-server-local-insecure.entrypoints: web + traefik.http.routers.minecraft-server-local-insecure.service: minecraft-server + traefik.http.routers.minecraft-server-local-insecure.middlewares: minecraft-server-web-redirect + # Local domain secure + traefik.http.routers.minecraft-server-local.rule: Host(`minecraft-server.${LOCAL_DOMAIN}`) + traefik.http.routers.minecraft-server-local.entrypoints: websecure + traefik.http.routers.minecraft-server-local.service: minecraft-server + traefik.http.routers.minecraft-server-local.tls: true diff --git a/apps/mixpost-pro/config.json b/apps/mixpost-pro/config.json index 9c6cbf4d..b72dd9c6 100644 --- a/apps/mixpost-pro/config.json +++ b/apps/mixpost-pro/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "mixpost-pro", - "tipi_version": 5, + "tipi_version": 6, "version": "0.7", "categories": ["social", "utilities"], "description": "Mixpost it's the coolest Self-hosted social media management software.", diff --git a/apps/mixpost-pro/docker-compose.yml b/apps/mixpost-pro/docker-compose.yml index 66d2bfe8..b9d6ad78 100644 --- a/apps/mixpost-pro/docker-compose.yml +++ b/apps/mixpost-pro/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: mixpost-pro: @@ -27,12 +27,30 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.mixpost-pro-web-redirect.redirectscheme.scheme: https + traefik.http.services.mixpost-pro.loadbalancer.server.port: 80 + # Web + traefik.http.routers.mixpost-pro-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.mixpost-pro-insecure.entrypoints: web + traefik.http.routers.mixpost-pro-insecure.service: mixpost-pro + traefik.http.routers.mixpost-pro-insecure.middlewares: mixpost-pro-web-redirect + # Websecure traefik.http.routers.mixpost-pro.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.mixpost-pro.entrypoints: websecure traefik.http.routers.mixpost-pro.service: mixpost-pro traefik.http.routers.mixpost-pro.tls.certresolver: myresolver - traefik.http.services.mixpost-pro.loadbalancer.server.port: 80 + # Local domain + traefik.http.routers.mixpost-pro-local-insecure.rule: Host(`mixpost-pro.${LOCAL_DOMAIN}`) + traefik.http.routers.mixpost-pro-local-insecure.entrypoints: web + traefik.http.routers.mixpost-pro-local-insecure.service: mixpost-pro + traefik.http.routers.mixpost-pro-local-insecure.middlewares: mixpost-pro-web-redirect + # Local domain secure + traefik.http.routers.mixpost-pro-local.rule: Host(`mixpost-pro.${LOCAL_DOMAIN}`) + traefik.http.routers.mixpost-pro-local.entrypoints: websecure + traefik.http.routers.mixpost-pro-local.service: mixpost-pro + traefik.http.routers.mixpost-pro-local.tls: true mixpost-pro-mysql: image: mysql/mysql-server:8.0 @@ -44,7 +62,7 @@ services: - MYSQL_PASSWORD=${MIXPOST_MYSQL_PASSWORD} - MYSQL_DATABASE=mixpost healthcheck: - test: ['CMD', 'mysqladmin', 'ping', '-p ${MIXPOST_MYSQL_PASSWORD}'] + test: ["CMD", "mysqladmin", "ping", "-p ${MIXPOST_MYSQL_PASSWORD}"] retries: 3 timeout: 5s volumes: @@ -53,13 +71,13 @@ services: - tipi_main_network mixpost-pro-redis: - image: 'redis:latest' + image: "redis:latest" container_name: mixpost-pro-redis command: redis-server --appendonly yes --replica-read-only no --requirepass "${MIXPOST_REDIS_PASSWORD}" volumes: - - '${APP_DATA_DIR}/data/redis:/data' + - "${APP_DATA_DIR}/data/redis:/data" healthcheck: - test: ['CMD', 'redis-cli', 'ping'] + test: ["CMD", "redis-cli", "ping"] retries: 3 timeout: 5s networks: diff --git a/apps/mixpost/config.json b/apps/mixpost/config.json index 4432739f..67abd370 100644 --- a/apps/mixpost/config.json +++ b/apps/mixpost/config.json @@ -5,18 +5,14 @@ "available": true, "exposable": true, "id": "mixpost", - "tipi_version": 3, + "tipi_version": 4, "version": "1.2.0", - "categories": [ - "social" - ], + "categories": ["social"], "description": "Mixpost it's the coolest Self-hosted social media management software.", "short_desc": "Self-hosted social media management. Schedule and organize your social content. ", "author": "Inovector", "source": "https://github.com/inovector/mixpost", - "supported_architectures": [ - "amd64" - ], + "supported_architectures": ["amd64"], "form_fields": [ { "type": "random", diff --git a/apps/mixpost/docker-compose.yml b/apps/mixpost/docker-compose.yml index 527c0248..1d2d7b60 100644 --- a/apps/mixpost/docker-compose.yml +++ b/apps/mixpost/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: mixpost: @@ -27,12 +27,30 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.mixpost-web-redirect.redirectscheme.scheme: https + traefik.http.services.mixpost.loadbalancer.server.port: 80 + # Web + traefik.http.routers.mixpost-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.mixpost-insecure.entrypoints: web + traefik.http.routers.mixpost-insecure.service: mixpost + traefik.http.routers.mixpost-insecure.middlewares: mixpost-web-redirect + # Websecure traefik.http.routers.mixpost.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.mixpost.entrypoints: websecure traefik.http.routers.mixpost.service: mixpost traefik.http.routers.mixpost.tls.certresolver: myresolver - traefik.http.services.mixpost.loadbalancer.server.port: 80 + # Local domain + traefik.http.routers.mixpost-local-insecure.rule: Host(`mixpost.${LOCAL_DOMAIN}`) + traefik.http.routers.mixpost-local-insecure.entrypoints: web + traefik.http.routers.mixpost-local-insecure.service: mixpost + traefik.http.routers.mixpost-local-insecure.middlewares: mixpost-web-redirect + # Local domain secure + traefik.http.routers.mixpost-local.rule: Host(`mixpost.${LOCAL_DOMAIN}`) + traefik.http.routers.mixpost-local.entrypoints: websecure + traefik.http.routers.mixpost-local.service: mixpost + traefik.http.routers.mixpost-local.tls: true mixpost-mysql: image: mysql/mysql-server:8.0 @@ -44,7 +62,7 @@ services: - MYSQL_PASSWORD=${MIXPOST_MYSQL_PASSWORD} - MYSQL_DATABASE=mixpost healthcheck: - test: ['CMD', 'mysqladmin', 'ping', '-p ${MIXPOST_MYSQL_PASSWORD}'] + test: ["CMD", "mysqladmin", "ping", "-p ${MIXPOST_MYSQL_PASSWORD}"] retries: 3 timeout: 5s volumes: @@ -53,12 +71,12 @@ services: - tipi_main_network mixpost-redis: - image: 'redis:latest' + image: "redis:latest" command: redis-server --appendonly yes --replica-read-only no --requirepass "${MIXPOST_REDIS_PASSWORD}" volumes: - - '${APP_DATA_DIR}/data/redis:/data' + - "${APP_DATA_DIR}/data/redis:/data" healthcheck: - test: ['CMD', 'redis-cli', 'ping'] + test: ["CMD", "redis-cli", "ping"] retries: 3 timeout: 5s networks: diff --git a/apps/moneroblock/config.json b/apps/moneroblock/config.json index cca19602..4bd08bc8 100644 --- a/apps/moneroblock/config.json +++ b/apps/moneroblock/config.json @@ -5,11 +5,9 @@ "exposable": true, "port": 31312, "id": "moneroblock", - "tipi_version": 2, + "tipi_version": 3, "version": "0.1.2", - "categories": [ - "utilities" - ], + "categories": ["utilities"], "description": "MoneroBlock is a trustless block explorer for the Monero payment network.", "short_desc": "Decentralized and trustless Monero block explorer", "author": "duggavo", diff --git a/apps/moneroblock/docker-compose.yml b/apps/moneroblock/docker-compose.yml index 02911981..d831f029 100644 --- a/apps/moneroblock/docker-compose.yml +++ b/apps/moneroblock/docker-compose.yml @@ -12,9 +12,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.moneroblock-web-redirect.redirectscheme.scheme: https + traefik.http.services.moneroblock.loadbalancer.server.port: 31312 + # Web + traefik.http.routers.moneroblock-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.moneroblock-insecure.entrypoints: web + traefik.http.routers.moneroblock-insecure.service: moneroblock + traefik.http.routers.moneroblock-insecure.middlewares: moneroblock-web-redirect + # Websecure traefik.http.routers.moneroblock.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.moneroblock.entrypoints: websecure traefik.http.routers.moneroblock.service: moneroblock traefik.http.routers.moneroblock.tls.certresolver: myresolver - traefik.http.services.moneroblock.loadbalancer.server.port: 31312 + # Local domain + traefik.http.routers.moneroblock-local-insecure.rule: Host(`moneroblock.${LOCAL_DOMAIN}`) + traefik.http.routers.moneroblock-local-insecure.entrypoints: web + traefik.http.routers.moneroblock-local-insecure.service: moneroblock + traefik.http.routers.moneroblock-local-insecure.middlewares: moneroblock-web-redirect + # Local domain secure + traefik.http.routers.moneroblock-local.rule: Host(`moneroblock.${LOCAL_DOMAIN}`) + traefik.http.routers.moneroblock-local.entrypoints: websecure + traefik.http.routers.moneroblock-local.service: moneroblock + traefik.http.routers.moneroblock-local.tls: true diff --git a/apps/monerod/config.json b/apps/monerod/config.json index 285b4505..64231181 100644 --- a/apps/monerod/config.json +++ b/apps/monerod/config.json @@ -6,11 +6,9 @@ "no_gui": true, "port": 18080, "id": "monerod", - "tipi_version": 6, + "tipi_version": 7, "version": "0.18.2.2", - "categories": [ - "finance" - ], + "categories": ["finance"], "description": "A device on the Internet running the Monero software, with a full copy of the Monero blockchain, actively assisting the Monero network. This is a simple and straightforward Dockerized monerod built from source and exposing standard ports. Please note that running this requires >50GB of free disk space and is best run on solid-state (SSD) storage.", "short_desc": "Monero is a private, decentralized cryptocurrency that keeps your finances confidential and secure.", "author": "sethforprivacy", diff --git a/apps/monerod/docker-compose.yml b/apps/monerod/docker-compose.yml index 1b7caaf4..e81ff394 100644 --- a/apps/monerod/docker-compose.yml +++ b/apps/monerod/docker-compose.yml @@ -21,9 +21,27 @@ services: --prune-blockchain --zmq-pub=tcp://0.0.0.0:18083 labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.monerod-web-redirect.redirectscheme.scheme: https + traefik.http.services.monerod.loadbalancer.server.port: 18089 + # Web + traefik.http.routers.monerod-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.monerod-insecure.entrypoints: web + traefik.http.routers.monerod-insecure.service: monerod + traefik.http.routers.monerod-insecure.middlewares: monerod-web-redirect + # Websecure traefik.http.routers.monerod.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.monerod.entrypoints: websecure traefik.http.routers.monerod.service: monerod traefik.http.routers.monerod.tls.certresolver: myresolver - traefik.http.services.monerod.loadbalancer.server.port: 18089 + # Local domain + traefik.http.routers.monerod-local-insecure.rule: Host(`monerod.${LOCAL_DOMAIN}`) + traefik.http.routers.monerod-local-insecure.entrypoints: web + traefik.http.routers.monerod-local-insecure.service: monerod + traefik.http.routers.monerod-local-insecure.middlewares: monerod-web-redirect + # Local domain secure + traefik.http.routers.monerod-local.rule: Host(`monerod.${LOCAL_DOMAIN}`) + traefik.http.routers.monerod-local.entrypoints: websecure + traefik.http.routers.monerod-local.service: monerod + traefik.http.routers.monerod-local.tls: true diff --git a/apps/monica/config.json b/apps/monica/config.json index 94bddfe0..0650cd71 100644 --- a/apps/monica/config.json +++ b/apps/monica/config.json @@ -5,16 +5,10 @@ "exposable": true, "port": 3291, "id": "monica", - "tipi_version": 1, + "tipi_version": 2, "version": "4.0.0", - "categories": [ - "data", - "social" - ], - "supported_architectures": [ - "amd64", - "arm64" - ], + "categories": ["data", "social"], + "supported_architectures": ["amd64", "arm64"], "description": "Monica is an open-source web application to organize and record your interactions with your loved ones. We call it a PRM, or Personal Relationship Management. Think of it as a CRM (a popular tool used by sales teams in the corporate world) for your friends or family.", "short_desc": "A Personal Relationship Management tool to help you document your social life.", "author": "monicahq", diff --git a/apps/monica/docker-compose.yml b/apps/monica/docker-compose.yml index aa7e1f34..a0a317ea 100644 --- a/apps/monica/docker-compose.yml +++ b/apps/monica/docker-compose.yml @@ -18,12 +18,30 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.monica-web-redirect.redirectscheme.scheme: https + traefik.http.services.monica.loadbalancer.server.port: 80 + # Web + traefik.http.routers.monica-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.monica-insecure.entrypoints: web + traefik.http.routers.monica-insecure.service: monica + traefik.http.routers.monica-insecure.middlewares: monica-web-redirect + # Websecure traefik.http.routers.monica.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.monica.entrypoints: websecure traefik.http.routers.monica.service: monica traefik.http.routers.monica.tls.certresolver: myresolver - traefik.http.services.monica.loadbalancer.server.port: 80 + # Local domain + traefik.http.routers.monica-local-insecure.rule: Host(`monica.${LOCAL_DOMAIN}`) + traefik.http.routers.monica-local-insecure.entrypoints: web + traefik.http.routers.monica-local-insecure.service: monica + traefik.http.routers.monica-local-insecure.middlewares: monica-web-redirect + # Local domain secure + traefik.http.routers.monica-local.rule: Host(`monica.${LOCAL_DOMAIN}`) + traefik.http.routers.monica-local.entrypoints: websecure + traefik.http.routers.monica-local.service: monica + traefik.http.routers.monica-local.tls: true monica-db: image: mariadb:10.6.11 diff --git a/apps/movary/config.json b/apps/movary/config.json index d5eb3468..3749c2c1 100644 --- a/apps/movary/config.json +++ b/apps/movary/config.json @@ -5,11 +5,9 @@ "available": true, "exposable": true, "id": "movary", - "tipi_version": 8, + "tipi_version": 9, "version": "0.54.0", - "categories": [ - "media" - ], + "categories": ["media"], "description": "Movary is a self-hosted web application to track and rate your watched movies (like a digital movie diary). You can import/export your history and ratings from/to third parties like trakt.tv or letterboxd.com, scrobble your watches via Plex and Jellyfin and more.", "short_desc": "Movary is a self-hosted web application to track and rate your watched movies. ", "author": "leepeuker", diff --git a/apps/movary/docker-compose.yml b/apps/movary/docker-compose.yml index 5e40d66b..564433a5 100644 --- a/apps/movary/docker-compose.yml +++ b/apps/movary/docker-compose.yml @@ -24,12 +24,30 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.movary-web-redirect.redirectscheme.scheme: https + traefik.http.services.movary.loadbalancer.server.port: 80 + # Web + traefik.http.routers.movary-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.movary-insecure.entrypoints: web + traefik.http.routers.movary-insecure.service: movary + traefik.http.routers.movary-insecure.middlewares: movary-web-redirect + # Websecure traefik.http.routers.movary.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.movary.entrypoints: websecure traefik.http.routers.movary.service: movary traefik.http.routers.movary.tls.certresolver: myresolver - traefik.http.services.movary.loadbalancer.server.port: 80 + # Local domain + traefik.http.routers.movary-local-insecure.rule: Host(`movary.${LOCAL_DOMAIN}`) + traefik.http.routers.movary-local-insecure.entrypoints: web + traefik.http.routers.movary-local-insecure.service: movary + traefik.http.routers.movary-local-insecure.middlewares: movary-web-redirect + # Local domain secure + traefik.http.routers.movary-local.rule: Host(`movary.${LOCAL_DOMAIN}`) + traefik.http.routers.movary-local.entrypoints: websecure + traefik.http.routers.movary-local.service: movary + traefik.http.routers.movary-local.tls: true movary-db: image: linuxserver/mariadb:latest diff --git a/apps/mstream/config.json b/apps/mstream/config.json index 5b3400b8..451894f4 100644 --- a/apps/mstream/config.json +++ b/apps/mstream/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "mstream", - "tipi_version": 1, + "tipi_version": 2, "version": "v5.11.4-ls101", "categories": ["music", "media"], "description": "mStream is a personal music streaming server. You can use mStream to stream your music from your home computer to any device, anywhere.", diff --git a/apps/mstream/docker-compose.yml b/apps/mstream/docker-compose.yml index 9896a8f1..9fd771c1 100644 --- a/apps/mstream/docker-compose.yml +++ b/apps/mstream/docker-compose.yml @@ -17,10 +17,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.mstream-web-redirect.redirectscheme.scheme: https + traefik.http.services.mstream.loadbalancer.server.port: 3000 + # Web + traefik.http.routers.mstream-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.mstream-insecure.entrypoints: web + traefik.http.routers.mstream-insecure.service: mstream + traefik.http.routers.mstream-insecure.middlewares: mstream-web-redirect + # Websecure traefik.http.routers.mstream.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.mstream.entrypoints: websecure traefik.http.routers.mstream.service: mstream traefik.http.routers.mstream.tls.certresolver: myresolver - traefik.http.services.mstream.loadbalancer.server.port: 3000 - + # Local domain + traefik.http.routers.mstream-local-insecure.rule: Host(`mstream.${LOCAL_DOMAIN}`) + traefik.http.routers.mstream-local-insecure.entrypoints: web + traefik.http.routers.mstream-local-insecure.service: mstream + traefik.http.routers.mstream-local-insecure.middlewares: mstream-web-redirect + # Local domain secure + traefik.http.routers.mstream-local.rule: Host(`mstream.${LOCAL_DOMAIN}`) + traefik.http.routers.mstream-local.entrypoints: websecure + traefik.http.routers.mstream-local.service: mstream + traefik.http.routers.mstream-local.tls: true diff --git a/apps/mylar3/config.json b/apps/mylar3/config.json index 1e75c4d0..6ccd6cfc 100644 --- a/apps/mylar3/config.json +++ b/apps/mylar3/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "mylar3", - "tipi_version": 1, + "tipi_version": 2, "version": "v0.7.1-ls84", "categories": ["media"], "description": "Mylar3 is an automated Comic Book downloader (cbr/cbz) for use with NZB and torrents written in python.", diff --git a/apps/mylar3/docker-compose.yml b/apps/mylar3/docker-compose.yml index 109178aa..4427a5cb 100644 --- a/apps/mylar3/docker-compose.yml +++ b/apps/mylar3/docker-compose.yml @@ -9,7 +9,7 @@ services: volumes: - ${APP_DATA_DIR}/data/mylar3-config:/config - ${ROOT_FOLDER_HOST}/media/data/comics:/comics - - ${ROOT_FOLDER_HOST}/media/downloads/mylar3:/downloads + - ${ROOT_FOLDER_HOST}/media/downloads/mylar3:/downloads environment: - PUID=1000 - PGID=1000 @@ -18,9 +18,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.mylar3-web-redirect.redirectscheme.scheme: https + traefik.http.services.mylar3.loadbalancer.server.port: 8090 + # Web + traefik.http.routers.mylar3-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.mylar3-insecure.entrypoints: web + traefik.http.routers.mylar3-insecure.service: mylar3 + traefik.http.routers.mylar3-insecure.middlewares: mylar3-web-redirect + # Websecure traefik.http.routers.mylar3.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.mylar3.entrypoints: websecure traefik.http.routers.mylar3.service: mylar3 traefik.http.routers.mylar3.tls.certresolver: myresolver - traefik.http.services.mylar3.loadbalancer.server.port: 8090 \ No newline at end of file + # Local domain + traefik.http.routers.mylar3-local-insecure.rule: Host(`mylar3.${LOCAL_DOMAIN}`) + traefik.http.routers.mylar3-local-insecure.entrypoints: web + traefik.http.routers.mylar3-local-insecure.service: mylar3 + traefik.http.routers.mylar3-local-insecure.middlewares: mylar3-web-redirect + # Local domain secure + traefik.http.routers.mylar3-local.rule: Host(`mylar3.${LOCAL_DOMAIN}`) + traefik.http.routers.mylar3-local.entrypoints: websecure + traefik.http.routers.mylar3-local.service: mylar3 + traefik.http.routers.mylar3-local.tls: true diff --git a/apps/n8n/config.json b/apps/n8n/config.json index c32f9e41..78d9bc23 100644 --- a/apps/n8n/config.json +++ b/apps/n8n/config.json @@ -5,11 +5,9 @@ "exposable": true, "port": 8094, "id": "n8n", - "tipi_version": 14, + "tipi_version": 15, "version": "0.232.0", - "categories": [ - "automation" - ], + "categories": ["automation"], "description": "n8n is an extendable workflow automation tool. With a fair-code distribution model, n8n will always have visible source code, be available to self-host, and allow you to add your own custom functions, logic and apps. n8n's node-based approach makes it highly versatile, enabling you to connect anything to everything.", "short_desc": "Workflow Automation Tool. Alternative to Zapier", "author": "n8n.io", diff --git a/apps/n8n/docker-compose.yml b/apps/n8n/docker-compose.yml index 44221c75..e2bf8219 100644 --- a/apps/n8n/docker-compose.yml +++ b/apps/n8n/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: n8n: @@ -23,12 +23,30 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.n8n-web-redirect.redirectscheme.scheme: https + traefik.http.services.n8n.loadbalancer.server.port: 5678 + # Web + traefik.http.routers.n8n-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.n8n-insecure.entrypoints: web + traefik.http.routers.n8n-insecure.service: n8n + traefik.http.routers.n8n-insecure.middlewares: n8n-web-redirect + # Websecure traefik.http.routers.n8n.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.n8n.entrypoints: websecure traefik.http.routers.n8n.service: n8n traefik.http.routers.n8n.tls.certresolver: myresolver - traefik.http.services.n8n.loadbalancer.server.port: 5678 + # Local domain + traefik.http.routers.n8n-local-insecure.rule: Host(`n8n.${LOCAL_DOMAIN}`) + traefik.http.routers.n8n-local-insecure.entrypoints: web + traefik.http.routers.n8n-local-insecure.service: n8n + traefik.http.routers.n8n-local-insecure.middlewares: n8n-web-redirect + # Local domain secure + traefik.http.routers.n8n-local.rule: Host(`n8n.${LOCAL_DOMAIN}`) + traefik.http.routers.n8n-local.entrypoints: websecure + traefik.http.routers.n8n-local.service: n8n + traefik.http.routers.n8n-local.tls: true db-n8n: container_name: db-n8n diff --git a/apps/navidrome/config.json b/apps/navidrome/config.json index 2920252d..2bbcba1b 100644 --- a/apps/navidrome/config.json +++ b/apps/navidrome/config.json @@ -5,12 +5,9 @@ "exposable": true, "id": "navidrome", "description": "Modern Music Server and Streamer compatible with Subsonic/Airsonic", - "tipi_version": 4, + "tipi_version": 5, "version": "0.49.3", - "categories": [ - "media", - "music" - ], + "categories": ["media", "music"], "short_desc": "A selfhosted music server", "author": "https://github.com/Bvoxl", "source": "https://github.com/navidrome/navidrome/", diff --git a/apps/navidrome/docker-compose.yml b/apps/navidrome/docker-compose.yml index 2197c8b4..84e4b6f7 100644 --- a/apps/navidrome/docker-compose.yml +++ b/apps/navidrome/docker-compose.yml @@ -8,18 +8,36 @@ services: restart: unless-stopped environment: ND_SCANSCHEDULE: 1h - ND_LOGLEVEL: info + ND_LOGLEVEL: info ND_SESSIONTIMEOUT: 24h ND_BASEURL: "" volumes: - ${APP_DATA_DIR}/navidrome/data:/data - - ${ROOT_FOLDER_HOST}/media/data/music:/music:ro + - ${ROOT_FOLDER_HOST}/media/data/music:/music:ro networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.navidrome-web-redirect.redirectscheme.scheme: https + traefik.http.services.navidrome.loadbalancer.server.port: 4533 + # Web + traefik.http.routers.navidrome-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.navidrome-insecure.entrypoints: web + traefik.http.routers.navidrome-insecure.service: navidrome + traefik.http.routers.navidrome-insecure.middlewares: navidrome-web-redirect + # Websecure traefik.http.routers.navidrome.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.navidrome.entrypoints: websecure traefik.http.routers.navidrome.service: navidrome traefik.http.routers.navidrome.tls.certresolver: myresolver - traefik.http.services.navidrome.loadbalancer.server.port: 4533 + # Local domain + traefik.http.routers.navidrome-local-insecure.rule: Host(`navidrome.${LOCAL_DOMAIN}`) + traefik.http.routers.navidrome-local-insecure.entrypoints: web + traefik.http.routers.navidrome-local-insecure.service: navidrome + traefik.http.routers.navidrome-local-insecure.middlewares: navidrome-web-redirect + # Local domain secure + traefik.http.routers.navidrome-local.rule: Host(`navidrome.${LOCAL_DOMAIN}`) + traefik.http.routers.navidrome-local.entrypoints: websecure + traefik.http.routers.navidrome-local.service: navidrome + traefik.http.routers.navidrome-local.tls: true diff --git a/apps/nitter/config.json b/apps/nitter/config.json index fa0f8f7b..0ab2b305 100644 --- a/apps/nitter/config.json +++ b/apps/nitter/config.json @@ -5,7 +5,7 @@ "exposable": true, "port": 8106, "id": "nitter", - "tipi_version": 2, + "tipi_version": 3, "version": "latest", "categories": ["social"], "description": "A free and open source alternative Twitter front-end focused on privacy and performance.", diff --git a/apps/nitter/docker-compose.yml b/apps/nitter/docker-compose.yml index f5a0fe7f..9c7dfa5c 100644 --- a/apps/nitter/docker-compose.yml +++ b/apps/nitter/docker-compose.yml @@ -14,16 +14,42 @@ services: - nitter-redis restart: unless-stopped healthcheck: - test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost:8080"] + test: + [ + "CMD", + "wget", + "--no-verbose", + "--tries=1", + "--spider", + "http://localhost:8080", + ] interval: 1m timeout: 3s labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.nitter-web-redirect.redirectscheme.scheme: https + traefik.http.services.nitter.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.nitter-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.nitter-insecure.entrypoints: web + traefik.http.routers.nitter-insecure.service: nitter + traefik.http.routers.nitter-insecure.middlewares: nitter-web-redirect + # Websecure traefik.http.routers.nitter.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.nitter.entrypoints: websecure traefik.http.routers.nitter.service: nitter traefik.http.routers.nitter.tls.certresolver: myresolver - traefik.http.services.nitter.loadbalancer.server.port: 8080 + # Local domain + traefik.http.routers.nitter-local-insecure.rule: Host(`nitter.${LOCAL_DOMAIN}`) + traefik.http.routers.nitter-local-insecure.entrypoints: web + traefik.http.routers.nitter-local-insecure.service: nitter + traefik.http.routers.nitter-local-insecure.middlewares: nitter-web-redirect + # Local domain secure + traefik.http.routers.nitter-local.rule: Host(`nitter.${LOCAL_DOMAIN}`) + traefik.http.routers.nitter-local.entrypoints: websecure + traefik.http.routers.nitter-local.service: nitter + traefik.http.routers.nitter-local.tls: true nitter-redis: image: redis:alpine @@ -33,4 +59,4 @@ services: command: redis-server --save 60 1 --loglevel warning volumes: - "${APP_DATA_DIR}/data/redis:/data" - restart: unless-stopped \ No newline at end of file + restart: unless-stopped diff --git a/apps/nocodb/config.json b/apps/nocodb/config.json index 9745f1b2..5f23adc0 100644 --- a/apps/nocodb/config.json +++ b/apps/nocodb/config.json @@ -5,11 +5,9 @@ "available": true, "exposable": true, "id": "nocodb", - "tipi_version": 10, + "tipi_version": 11, "version": "0.108.1", - "categories": [ - "utilities" - ], + "categories": ["utilities"], "description": "The Open Source Airtable Alternative. Turns any MySQL, PostgreSQL, SQL Server, SQLite & MariaDB into a smart-spreadsheet.", "short_desc": "Open Source Airtable Alternative", "author": "https://github.com/nocodb", diff --git a/apps/nocodb/docker-compose.yml b/apps/nocodb/docker-compose.yml index b7677890..b1b16e72 100644 --- a/apps/nocodb/docker-compose.yml +++ b/apps/nocodb/docker-compose.yml @@ -1,4 +1,4 @@ -version: '2.1' +version: "2.1" services: nocodb: @@ -11,21 +11,39 @@ 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.108.1' + image: "nocodb/nocodb:0.108.1" ports: - - '${APP_PORT}:8080' + - "${APP_PORT}:8080" restart: always volumes: - - '${APP_DATA_DIR}/data/nocode-data:/usr/app/data' + - "${APP_DATA_DIR}/data/nocode-data:/usr/app/data" networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.nocodb-web-redirect.redirectscheme.scheme: https + traefik.http.services.nocodb.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.nocodb-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.nocodb-insecure.entrypoints: web + traefik.http.routers.nocodb-insecure.service: nocodb + traefik.http.routers.nocodb-insecure.middlewares: nocodb-web-redirect + # Websecure traefik.http.routers.nocodb.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.nocodb.entrypoints: websecure traefik.http.routers.nocodb.service: nocodb traefik.http.routers.nocodb.tls.certresolver: myresolver - traefik.http.services.nocodb.loadbalancer.server.port: 8080 + # Local domain + traefik.http.routers.nocodb-local-insecure.rule: Host(`nocodb.${LOCAL_DOMAIN}`) + traefik.http.routers.nocodb-local-insecure.entrypoints: web + traefik.http.routers.nocodb-local-insecure.service: nocodb + traefik.http.routers.nocodb-local-insecure.middlewares: nocodb-web-redirect + # Local domain secure + traefik.http.routers.nocodb-local.rule: Host(`nocodb.${LOCAL_DOMAIN}`) + traefik.http.routers.nocodb-local.entrypoints: websecure + traefik.http.routers.nocodb-local.service: nocodb + traefik.http.routers.nocodb-local.tls: true nocodb-db: container_name: nocodb-db @@ -49,11 +67,11 @@ services: image: redis:alpine container_name: nocodb-redis restart: unless-stopped - command: 'redis-server --requirepass ${NOCODB_REDIS_PASSWORD}' + command: "redis-server --requirepass ${NOCODB_REDIS_PASSWORD}" volumes: - ${APP_DATA_DIR}/data/redis:/data healthcheck: - test: ['CMD', 'redis-cli', 'ping'] + test: ["CMD", "redis-cli", "ping"] interval: 1s timeout: 3s retries: 30 diff --git a/apps/nodered/config.json b/apps/nodered/config.json index 10a4d241..79a76da0 100644 --- a/apps/nodered/config.json +++ b/apps/nodered/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "nodered", - "tipi_version": 3, + "tipi_version": 4, "version": "3.0.2", "categories": ["automation"], "description": "Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways. It provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.", diff --git a/apps/nodered/docker-compose.yml b/apps/nodered/docker-compose.yml index 058b9582..b206fec9 100644 --- a/apps/nodered/docker-compose.yml +++ b/apps/nodered/docker-compose.yml @@ -12,9 +12,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.nodered-web-redirect.redirectscheme.scheme: https + traefik.http.services.nodered.loadbalancer.server.port: 1880 + # Web + traefik.http.routers.nodered-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.nodered-insecure.entrypoints: web + traefik.http.routers.nodered-insecure.service: nodered + traefik.http.routers.nodered-insecure.middlewares: nodered-web-redirect + # Websecure traefik.http.routers.nodered.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.nodered.entrypoints: websecure traefik.http.routers.nodered.service: nodered traefik.http.routers.nodered.tls.certresolver: myresolver - traefik.http.services.nodered.loadbalancer.server.port: 1880 \ No newline at end of file + # Local domain + traefik.http.routers.nodered-local-insecure.rule: Host(`nodered.${LOCAL_DOMAIN}`) + traefik.http.routers.nodered-local-insecure.entrypoints: web + traefik.http.routers.nodered-local-insecure.service: nodered + traefik.http.routers.nodered-local-insecure.middlewares: nodered-web-redirect + # Local domain secure + traefik.http.routers.nodered-local.rule: Host(`nodered.${LOCAL_DOMAIN}`) + traefik.http.routers.nodered-local.entrypoints: websecure + traefik.http.routers.nodered-local.service: nodered + traefik.http.routers.nodered-local.tls: true diff --git a/apps/onedev/config.json b/apps/onedev/config.json index 6d4a1bf9..29a21973 100644 --- a/apps/onedev/config.json +++ b/apps/onedev/config.json @@ -5,11 +5,9 @@ "available": true, "exposable": true, "id": "onedev", - "tipi_version": 22, + "tipi_version": 23, "version": "8.3.8", - "categories": [ - "development" - ], + "categories": ["development"], "description": "Self-hosted Git Server with Kanban and CI/CD", "short_desc": "Self-hosted Git Server with Kanban and CI/CD", "author": "https://code.onedev.io/", diff --git a/apps/onedev/docker-compose.yml b/apps/onedev/docker-compose.yml index 28eb2ae4..120a49e1 100644 --- a/apps/onedev/docker-compose.yml +++ b/apps/onedev/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: onedev: @@ -20,18 +20,36 @@ services: - /var/run/docker.sock:/var/run/docker.sock ports: - ${APP_PORT}:6610 - - '6611:6611' + - "6611:6611" depends_on: - onedev-db networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.onedev-web-redirect.redirectscheme.scheme: https + traefik.http.services.onedev.loadbalancer.server.port: 6610 + # Web + traefik.http.routers.onedev-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.onedev-insecure.entrypoints: web + traefik.http.routers.onedev-insecure.service: onedev + traefik.http.routers.onedev-insecure.middlewares: onedev-web-redirect + # Websecure traefik.http.routers.onedev.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.onedev.entrypoints: websecure traefik.http.routers.onedev.service: onedev traefik.http.routers.onedev.tls.certresolver: myresolver - traefik.http.services.onedev.loadbalancer.server.port: 6610 + # Local domain + traefik.http.routers.onedev-local-insecure.rule: Host(`onedev.${LOCAL_DOMAIN}`) + traefik.http.routers.onedev-local-insecure.entrypoints: web + traefik.http.routers.onedev-local-insecure.service: onedev + traefik.http.routers.onedev-local-insecure.middlewares: onedev-web-redirect + # Local domain secure + traefik.http.routers.onedev-local.rule: Host(`onedev.${LOCAL_DOMAIN}`) + traefik.http.routers.onedev-local.entrypoints: websecure + traefik.http.routers.onedev-local.service: onedev + traefik.http.routers.onedev-local.tls: true onedev-db: container_name: onedev-db diff --git a/apps/openbooks/config.json b/apps/openbooks/config.json index e8ef847a..1563bfdc 100644 --- a/apps/openbooks/config.json +++ b/apps/openbooks/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "openbooks", - "tipi_version": 2, + "tipi_version": 3, "url_suffix": "/openbooks/", "version": "v4.5.0", "categories": ["media", "books"], diff --git a/apps/openbooks/docker-compose.yml b/apps/openbooks/docker-compose.yml index d6d57f73..00a7e73f 100644 --- a/apps/openbooks/docker-compose.yml +++ b/apps/openbooks/docker-compose.yml @@ -1,22 +1,40 @@ -version: '3' +version: "3" services: openbooks: container_name: openbooks image: evanbuss/openbooks:4.5.0 - command: './openbooks server --dir /books --port 80 --persist --name ${OPENBOOKS_IRC_USERNAME}' + command: "./openbooks server --dir /books --port 80 --persist --name ${OPENBOOKS_IRC_USERNAME}" ports: - ${APP_PORT}:80 volumes: - ${ROOT_FOLDER_HOST}/media/data/books/:/books environment: - BASE_PATH=/openbooks/ + networks: + - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.openbooks-web-redirect.redirectscheme.scheme: https + traefik.http.services.openbooks.loadbalancer.server.port: 80 + # Web + traefik.http.routers.openbooks-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.openbooks-insecure.entrypoints: web + traefik.http.routers.openbooks-insecure.service: openbooks + traefik.http.routers.openbooks-insecure.middlewares: openbooks-web-redirect + # Websecure traefik.http.routers.openbooks.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.openbooks.entrypoints: websecure traefik.http.routers.openbooks.service: openbooks traefik.http.routers.openbooks.tls.certresolver: myresolver - traefik.http.services.openbooks.loadbalancer.server.port: 80 - networks: - - tipi_main_network + # Local domain + traefik.http.routers.openbooks-local-insecure.rule: Host(`openbooks.${LOCAL_DOMAIN}`) + traefik.http.routers.openbooks-local-insecure.entrypoints: web + traefik.http.routers.openbooks-local-insecure.service: openbooks + traefik.http.routers.openbooks-local-insecure.middlewares: openbooks-web-redirect + # Local domain secure + traefik.http.routers.openbooks-local.rule: Host(`openbooks.${LOCAL_DOMAIN}`) + traefik.http.routers.openbooks-local.entrypoints: websecure + traefik.http.routers.openbooks-local.service: openbooks + traefik.http.routers.openbooks-local.tls: true diff --git a/apps/overseerr/config.json b/apps/overseerr/config.json index 030949dd..e196742c 100644 --- a/apps/overseerr/config.json +++ b/apps/overseerr/config.json @@ -5,12 +5,9 @@ "exposable": true, "port": 8116, "id": "overseerr", - "tipi_version": 4, + "tipi_version": 5, "version": "1.32.5", - "categories": [ - "media", - "utilities" - ], + "categories": ["media", "utilities"], "description": "Overseerr is a free and open source software application for managing requests for your media library. It integrates with your existing services, such as Sonarr, Radarr, and Plex!", "short_desc": "Request management and media discovery tool for the Plex ecosystem", "author": "sct", diff --git a/apps/overseerr/docker-compose.yml b/apps/overseerr/docker-compose.yml index 99e858d7..c004418c 100644 --- a/apps/overseerr/docker-compose.yml +++ b/apps/overseerr/docker-compose.yml @@ -15,9 +15,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.overseerr-web-redirect.redirectscheme.scheme: https + traefik.http.services.overseerr.loadbalancer.server.port: 5055 + # Web + traefik.http.routers.overseerr-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.overseerr-insecure.entrypoints: web + traefik.http.routers.overseerr-insecure.service: overseerr + traefik.http.routers.overseerr-insecure.middlewares: overseerr-web-redirect + # Websecure traefik.http.routers.overseerr.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.overseerr.entrypoints: websecure traefik.http.routers.overseerr.service: overseerr traefik.http.routers.overseerr.tls.certresolver: myresolver - traefik.http.services.overseerr.loadbalancer.server.port: 5055 + # Local domain + traefik.http.routers.overseerr-local-insecure.rule: Host(`overseerr.${LOCAL_DOMAIN}`) + traefik.http.routers.overseerr-local-insecure.entrypoints: web + traefik.http.routers.overseerr-local-insecure.service: overseerr + traefik.http.routers.overseerr-local-insecure.middlewares: overseerr-web-redirect + # Local domain secure + traefik.http.routers.overseerr-local.rule: Host(`overseerr.${LOCAL_DOMAIN}`) + traefik.http.routers.overseerr-local.entrypoints: websecure + traefik.http.routers.overseerr-local.service: overseerr + traefik.http.routers.overseerr-local.tls: true diff --git a/apps/owncloud/config.json b/apps/owncloud/config.json index bb1ac6b7..8a09d155 100644 --- a/apps/owncloud/config.json +++ b/apps/owncloud/config.json @@ -5,11 +5,9 @@ "available": true, "exposable": true, "id": "owncloud", - "tipi_version": 4, + "tipi_version": 5, "version": "10.12.2", - "categories": [ - "data" - ], + "categories": ["data"], "description": "ownCloud gives you freedom and control over your own data. A personal cloud which runs on your own server. ", "short_desc": "A personal cloud which runs on your own server. ", "author": "https://github.com/owncloud", diff --git a/apps/owncloud/docker-compose.yml b/apps/owncloud/docker-compose.yml index 925f048d..d2b6d7c9 100644 --- a/apps/owncloud/docker-compose.yml +++ b/apps/owncloud/docker-compose.yml @@ -29,16 +29,34 @@ services: timeout: 10s retries: 5 volumes: - - ${APP_DATA_DIR}/data/owncloud:/mnt/data + - ${APP_DATA_DIR}/data/owncloud:/mnt/data networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.owncloud-web-redirect.redirectscheme.scheme: https + traefik.http.services.owncloud.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.owncloud-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.owncloud-insecure.entrypoints: web + traefik.http.routers.owncloud-insecure.service: owncloud + traefik.http.routers.owncloud-insecure.middlewares: owncloud-web-redirect + # Websecure traefik.http.routers.owncloud.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.owncloud.entrypoints: websecure traefik.http.routers.owncloud.service: owncloud traefik.http.routers.owncloud.tls.certresolver: myresolver - traefik.http.services.owncloud.loadbalancer.server.port: 8080 + # Local domain + traefik.http.routers.owncloud-local-insecure.rule: Host(`owncloud.${LOCAL_DOMAIN}`) + traefik.http.routers.owncloud-local-insecure.entrypoints: web + traefik.http.routers.owncloud-local-insecure.service: owncloud + traefik.http.routers.owncloud-local-insecure.middlewares: owncloud-web-redirect + # Local domain secure + traefik.http.routers.owncloud-local.rule: Host(`owncloud.${LOCAL_DOMAIN}`) + traefik.http.routers.owncloud-local.entrypoints: websecure + traefik.http.routers.owncloud-local.service: owncloud + traefik.http.routers.owncloud-local.tls: true owncloud-db: image: mariadb:10.6 # minimum required ownCloud version is 10.9 @@ -51,7 +69,15 @@ services: - MYSQL_DATABASE=owncloud command: ["--max-allowed-packet=128M", "--innodb-log-file-size=64M"] healthcheck: - test: ["CMD", "mysqladmin", "ping", "-u", "root", "--password=${OWNCLOUD_DB_PASSWORD}"] + test: + [ + "CMD", + "mysqladmin", + "ping", + "-u", + "root", + "--password=${OWNCLOUD_DB_PASSWORD}", + ] interval: 10s timeout: 5s retries: 5