diff --git a/apps/halo/config.json b/apps/halo/config.json index 9e9bea9c..f5be12df 100644 --- a/apps/halo/config.json +++ b/apps/halo/config.json @@ -5,14 +5,11 @@ "exposable": true, "port": 8092, "id": "halo", - "tipi_version": 2, + "tipi_version": 3, "version": "2.6.0", "description": "Halo is a powerful and easy-to-use open source website building tool.", "short_desc": "Halo - Open source website building tool.", - "categories": [ - "social", - "media" - ], + "categories": ["social", "media"], "author": "halo-dev", "source": "https://github.com/halo-dev/halo", "website": "https://halo.run", diff --git a/apps/halo/docker-compose.yml b/apps/halo/docker-compose.yml index 841bb467..689ed618 100644 --- a/apps/halo/docker-compose.yml +++ b/apps/halo/docker-compose.yml @@ -15,11 +15,12 @@ services: ports: - ${APP_PORT}:8090 healthcheck: - test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"] + test: + ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"] interval: 30s timeout: 5s retries: 5 - start_period: 30s + start_period: 30s command: - --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo - --spring.r2dbc.username=halo @@ -29,12 +30,30 @@ services: - --halo.security.initializer.superadminusername=${HALO_ADMIN_USERNAME} - --halo.security.initializer.superadminpassword=${HALO_ADMIN_PASSWORD} labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.halo-web-redirect.redirectscheme.scheme: https + traefik.http.services.halo.loadbalancer.server.port: 8090 + # Web + traefik.http.routers.halo-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.halo-insecure.entrypoints: web + traefik.http.routers.halo-insecure.service: halo + traefik.http.routers.halo-insecure.middlewares: halo-web-redirect + # Websecure traefik.http.routers.halo.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.halo.entrypoints: websecure traefik.http.routers.halo.service: halo traefik.http.routers.halo.tls.certresolver: myresolver - traefik.http.services.halo.loadbalancer.server.port: 8090 + # Local domain + traefik.http.routers.halo-local-insecure.rule: Host(`halo.${LOCAL_DOMAIN}`) + traefik.http.routers.halo-local-insecure.entrypoints: web + traefik.http.routers.halo-local-insecure.service: halo + traefik.http.routers.halo-local-insecure.middlewares: halo-web-redirect + # Local domain secure + traefik.http.routers.halo-local.rule: Host(`halo.${LOCAL_DOMAIN}`) + traefik.http.routers.halo-local.entrypoints: websecure + traefik.http.routers.halo-local.service: halo + traefik.http.routers.halo-local.tls: true halodb: image: postgres:latest @@ -45,7 +64,7 @@ services: volumes: - ${APP_DATA_DIR}/db:/var/lib/postgresql/data healthcheck: - test: [ "CMD", "pg_isready" ] + test: ["CMD", "pg_isready"] interval: 10s timeout: 5s retries: 5 diff --git a/apps/hammond/config.json b/apps/hammond/config.json index 51c2c2ee..fd3562ea 100644 --- a/apps/hammond/config.json +++ b/apps/hammond/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "hammond", - "tipi_version": 1, + "tipi_version": 2, "version": "1.0.0", "categories": ["utilities"], "description": "Self hosted vehicle and expense management system. Like Clarkson, but better", diff --git a/apps/hammond/docker-compose.yml b/apps/hammond/docker-compose.yml index 8c337b24..f2317a3d 100644 --- a/apps/hammond/docker-compose.yml +++ b/apps/hammond/docker-compose.yml @@ -13,9 +13,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.hammond-web-redirect.redirectscheme.scheme: https + traefik.http.services.hammond.loadbalancer.server.port: 3000 + # Web + traefik.http.routers.hammond-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.hammond-insecure.entrypoints: web + traefik.http.routers.hammond-insecure.service: hammond + traefik.http.routers.hammond-insecure.middlewares: hammond-web-redirect + # Websecure traefik.http.routers.hammond.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.hammond.entrypoints: websecure traefik.http.routers.hammond.service: hammond traefik.http.routers.hammond.tls.certresolver: myresolver - traefik.http.services.hammond.loadbalancer.server.port: 3000 \ No newline at end of file + # Local domain + traefik.http.routers.hammond-local-insecure.rule: Host(`hammond.${LOCAL_DOMAIN}`) + traefik.http.routers.hammond-local-insecure.entrypoints: web + traefik.http.routers.hammond-local-insecure.service: hammond + traefik.http.routers.hammond-local-insecure.middlewares: hammond-web-redirect + # Local domain secure + traefik.http.routers.hammond-local.rule: Host(`hammond.${LOCAL_DOMAIN}`) + traefik.http.routers.hammond-local.entrypoints: websecure + traefik.http.routers.hammond-local.service: hammond + traefik.http.routers.hammond-local.tls: true diff --git a/apps/haven/config.json b/apps/haven/config.json index 116e3acd..2bbcf2a5 100644 --- a/apps/haven/config.json +++ b/apps/haven/config.json @@ -5,7 +5,7 @@ "exposable": true, "port": 8130, "id": "haven", - "tipi_version": 1, + "tipi_version": 2, "version": "a0280ce", "categories": ["social"], "description": "Self-hostable private blogging", diff --git a/apps/haven/docker-compose.yml b/apps/haven/docker-compose.yml index ce2b07ee..29583b07 100644 --- a/apps/haven/docker-compose.yml +++ b/apps/haven/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: haven: image: ghcr.io/havenweb/haven:a0280ce @@ -20,26 +20,52 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.haven-web-redirect.redirectscheme.scheme: https + traefik.http.services.haven.loadbalancer.server.port: 3000 + # Web + traefik.http.routers.haven-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.haven-insecure.entrypoints: web + traefik.http.routers.haven-insecure.service: haven + traefik.http.routers.haven-insecure.middlewares: haven-web-redirect + # Websecure traefik.http.routers.haven.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.haven.entrypoints: websecure traefik.http.routers.haven.service: haven traefik.http.routers.haven.tls.certresolver: myresolver - traefik.http.services.haven.loadbalancer.server.port: 3000 + # Local domain + traefik.http.routers.haven-local-insecure.rule: Host(`haven.${LOCAL_DOMAIN}`) + traefik.http.routers.haven-local-insecure.entrypoints: web + traefik.http.routers.haven-local-insecure.service: haven + traefik.http.routers.haven-local-insecure.middlewares: haven-web-redirect + # Local domain secure + traefik.http.routers.haven-local.rule: Host(`haven.${LOCAL_DOMAIN}`) + traefik.http.routers.haven-local.entrypoints: websecure + traefik.http.routers.haven-local.service: haven + traefik.http.routers.haven-local.tls: true haven-db: image: postgres:13.2-alpine container_name: haven-db - command: [ - "postgres", - "-c", "max_connections=1000", - "-c", "synchronous_commit=off", - "-c", "fsync=off", - "-c", "full_page_writes=off", - "-c", "max_wal_size=4GB", - "-c", "checkpoint_timeout=30min", - "-c", "wal_level=logical" - ] + command: + [ + "postgres", + "-c", + "max_connections=1000", + "-c", + "synchronous_commit=off", + "-c", + "fsync=off", + "-c", + "full_page_writes=off", + "-c", + "max_wal_size=4GB", + "-c", + "checkpoint_timeout=30min", + "-c", + "wal_level=logical", + ] environment: POSTGRES_HOST_AUTH_METHOD: trust POSTGRES_USER: haven diff --git a/apps/hedgedoc/config.json b/apps/hedgedoc/config.json index ef588023..4aa70ad1 100644 --- a/apps/hedgedoc/config.json +++ b/apps/hedgedoc/config.json @@ -5,19 +5,15 @@ "available": true, "exposable": true, "id": "hedgedoc", - "tipi_version": 2, + "tipi_version": 3, "version": "1.9.8", - "categories": [ - "media" - ], + "categories": ["media"], "description": "HedgeDoc (formerly known as CodiMD) is an open-source, web-based, self-hosted, collaborative markdown editor. You can use it to easily collaborate on notes, graphs and even presentations in real-time. All you need to do is to share your note-link to your co-workers and they’re ready to go.", "short_desc": "A Collaborative Markdown and Note Taking App", "website": "https://hedgedoc.org/", "author": "https://github.com/hedgedoc", "source": "https://github.com/hedgedoc/hedgedoc", - "supported_architectures": [ - "amd64" - ], + "supported_architectures": ["amd64"], "form_fields": [ { "type": "random", diff --git a/apps/hedgedoc/docker-compose.yml b/apps/hedgedoc/docker-compose.yml index 4e5b48f1..b4e25bb7 100644 --- a/apps/hedgedoc/docker-compose.yml +++ b/apps/hedgedoc/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: hedgedoc: @@ -18,12 +18,30 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.hedgedoc-web-redirect.redirectscheme.scheme: https + traefik.http.services.hedgedoc.loadbalancer.server.port: 3000 + # Web + traefik.http.routers.hedgedoc-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.hedgedoc-insecure.entrypoints: web + traefik.http.routers.hedgedoc-insecure.service: hedgedoc + traefik.http.routers.hedgedoc-insecure.middlewares: hedgedoc-web-redirect + # Websecure traefik.http.routers.hedgedoc.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.hedgedoc.entrypoints: websecure traefik.http.routers.hedgedoc.service: hedgedoc traefik.http.routers.hedgedoc.tls.certresolver: myresolver - traefik.http.services.hedgedoc.loadbalancer.server.port: 3000 + # Local domain + traefik.http.routers.hedgedoc-local-insecure.rule: Host(`hedgedoc.${LOCAL_DOMAIN}`) + traefik.http.routers.hedgedoc-local-insecure.entrypoints: web + traefik.http.routers.hedgedoc-local-insecure.service: hedgedoc + traefik.http.routers.hedgedoc-local-insecure.middlewares: hedgedoc-web-redirect + # Local domain secure + traefik.http.routers.hedgedoc-local.rule: Host(`hedgedoc.${LOCAL_DOMAIN}`) + traefik.http.routers.hedgedoc-local.entrypoints: websecure + traefik.http.routers.hedgedoc-local.service: hedgedoc + traefik.http.routers.hedgedoc-local.tls: true hedgedoc-db: container_name: hedgedoc-db diff --git a/apps/hello-world/config.json b/apps/hello-world/config.json index 3d177d32..cd3d8f97 100644 --- a/apps/hello-world/config.json +++ b/apps/hello-world/config.json @@ -5,11 +5,9 @@ "exposable": true, "port": 8000, "id": "hello-world", - "tipi_version": 1, + "tipi_version": 2, "version": "1.0.0", - "categories": [ - "utilities" - ], + "categories": ["utilities"], "description": "Hello World web server in under 2 MB", "short_desc": "Hello World web server in under 2 MB", "author": "crccheck", diff --git a/apps/hello-world/docker-compose.yml b/apps/hello-world/docker-compose.yml index 03d95808..6612c5fe 100644 --- a/apps/hello-world/docker-compose.yml +++ b/apps/hello-world/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: hello-world: container_name: hello-world @@ -9,9 +9,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.hello-world-web-redirect.redirectscheme.scheme: https + traefik.http.services.hello-world.loadbalancer.server.port: 8000 + # Web + traefik.http.routers.hello-world-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.hello-world-insecure.entrypoints: web + traefik.http.routers.hello-world-insecure.service: hello-world + traefik.http.routers.hello-world-insecure.middlewares: hello-world-web-redirect + # Websecure traefik.http.routers.hello-world.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.hello-world.entrypoints: websecure traefik.http.routers.hello-world.service: hello-world traefik.http.routers.hello-world.tls.certresolver: myresolver - traefik.http.services.hello-world.loadbalancer.server.port: 7575 + # Local domain + traefik.http.routers.hello-world-local-insecure.rule: Host(`hello-world.${LOCAL_DOMAIN}`) + traefik.http.routers.hello-world-local-insecure.entrypoints: web + traefik.http.routers.hello-world-local-insecure.service: hello-world + traefik.http.routers.hello-world-local-insecure.middlewares: hello-world-web-redirect + # Local domain secure + traefik.http.routers.hello-world-local.rule: Host(`hello-world.${LOCAL_DOMAIN}`) + traefik.http.routers.hello-world-local.entrypoints: websecure + traefik.http.routers.hello-world-local.service: hello-world + traefik.http.routers.hello-world-local.tls: true diff --git a/apps/homarr/config.json b/apps/homarr/config.json index d0cb844e..9be857a0 100644 --- a/apps/homarr/config.json +++ b/apps/homarr/config.json @@ -5,11 +5,9 @@ "exposable": true, "port": 8102, "id": "homarr", - "tipi_version": 11, + "tipi_version": 12, "version": "0.12.2", - "categories": [ - "utilities" - ], + "categories": ["utilities"], "description": "A homepage for your server.", "short_desc": "Homarr is a simple and lightweight homepage for your server, that helps you easily access all of your services in one place.", "author": "ajnart", diff --git a/apps/homarr/docker-compose.yml b/apps/homarr/docker-compose.yml index d39e6da0..42515dcb 100644 --- a/apps/homarr/docker-compose.yml +++ b/apps/homarr/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: homarr: container_name: homarr @@ -17,9 +17,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.homarr-web-redirect.redirectscheme.scheme: https + traefik.http.services.homarr.loadbalancer.server.port: 7575 + # Web + traefik.http.routers.homarr-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.homarr-insecure.entrypoints: web + traefik.http.routers.homarr-insecure.service: homarr + traefik.http.routers.homarr-insecure.middlewares: homarr-web-redirect + # Websecure traefik.http.routers.homarr.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.homarr.entrypoints: websecure traefik.http.routers.homarr.service: homarr traefik.http.routers.homarr.tls.certresolver: myresolver - traefik.http.services.homarr.loadbalancer.server.port: 7575 + # Local domain + traefik.http.routers.homarr-local-insecure.rule: Host(`homarr.${LOCAL_DOMAIN}`) + traefik.http.routers.homarr-local-insecure.entrypoints: web + traefik.http.routers.homarr-local-insecure.service: homarr + traefik.http.routers.homarr-local-insecure.middlewares: homarr-web-redirect + # Local domain secure + traefik.http.routers.homarr-local.rule: Host(`homarr.${LOCAL_DOMAIN}`) + traefik.http.routers.homarr-local.entrypoints: websecure + traefik.http.routers.homarr-local.service: homarr + traefik.http.routers.homarr-local.tls: true diff --git a/apps/homebox/config.json b/apps/homebox/config.json index 586ee733..86086c9e 100644 --- a/apps/homebox/config.json +++ b/apps/homebox/config.json @@ -5,11 +5,9 @@ "available": true, "exposable": true, "id": "homebox", - "tipi_version": 4, + "tipi_version": 5, "version": "0.9.2", - "categories": [ - "utilities" - ], + "categories": ["utilities"], "description": "Homebox is the inventory and organization system built for the Home User", "short_desc": "Homebox is the inventory and organization system built for the Home User", "author": "hay-kot", diff --git a/apps/homebox/docker-compose.yml b/apps/homebox/docker-compose.yml index c2016116..95ee1290 100644 --- a/apps/homebox/docker-compose.yml +++ b/apps/homebox/docker-compose.yml @@ -6,10 +6,10 @@ services: container_name: homebox restart: always environment: - - HBOX_LOG_LEVEL=info - - HBOX_LOG_FORMAT=text - - HBOX_WEB_MAX_UPLOAD_SIZE=10 - - HBOX_OPTIONS_ALLOW_REGISTRATION=${HBOX_OPTIONS_ALLOW_REGISTRATION} + - HBOX_LOG_LEVEL=info + - HBOX_LOG_FORMAT=text + - HBOX_WEB_MAX_UPLOAD_SIZE=10 + - HBOX_OPTIONS_ALLOW_REGISTRATION=${HBOX_OPTIONS_ALLOW_REGISTRATION} volumes: - ${APP_DATA_DIR}/data/homebox-data:/data/ ports: @@ -17,9 +17,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.homebox-web-redirect.redirectscheme.scheme: https + traefik.http.services.homebox.loadbalancer.server.port: 7745 + # Web + traefik.http.routers.homebox-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.homebox-insecure.entrypoints: web + traefik.http.routers.homebox-insecure.service: homebox + traefik.http.routers.homebox-insecure.middlewares: homebox-web-redirect + # Websecure traefik.http.routers.homebox.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.homebox.entrypoints: websecure traefik.http.routers.homebox.service: homebox traefik.http.routers.homebox.tls.certresolver: myresolver - traefik.http.services.homebox.loadbalancer.server.port: 7745 \ No newline at end of file + # Local domain + traefik.http.routers.homebox-local-insecure.rule: Host(`homebox.${LOCAL_DOMAIN}`) + traefik.http.routers.homebox-local-insecure.entrypoints: web + traefik.http.routers.homebox-local-insecure.service: homebox + traefik.http.routers.homebox-local-insecure.middlewares: homebox-web-redirect + # Local domain secure + traefik.http.routers.homebox-local.rule: Host(`homebox.${LOCAL_DOMAIN}`) + traefik.http.routers.homebox-local.entrypoints: websecure + traefik.http.routers.homebox-local.service: homebox + traefik.http.routers.homebox-local.tls: true diff --git a/apps/immich/config.json b/apps/immich/config.json index 0d912db6..a0a5e84a 100644 --- a/apps/immich/config.json +++ b/apps/immich/config.json @@ -5,7 +5,7 @@ "exposable": true, "port": 8128, "id": "immich", - "tipi_version": 16, + "tipi_version": 17, "version": "v1.60.0", "categories": ["data", "photography"], "description": "Photo and video backup solution directly from your mobile phone.", diff --git a/apps/immich/docker-compose.yml b/apps/immich/docker-compose.yml index 3581d841..42de1d8c 100644 --- a/apps/immich/docker-compose.yml +++ b/apps/immich/docker-compose.yml @@ -12,16 +12,34 @@ services: environment: - IMMICH_WEB_URL=http://immich-web:3000 - IMMICH_SERVER_URL=http://immich-server:3001 - # - IMMICH_MACHINE_LEARNING_URL="http://immich-machine-learning:3003" + # - IMMICH_MACHINE_LEARNING_URL="http://immich-machine-learning:3003" networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.immich-web-redirect.redirectscheme.scheme: https + traefik.http.services.immich.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.immich-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.immich-insecure.entrypoints: web + traefik.http.routers.immich-insecure.service: immich + traefik.http.routers.immich-insecure.middlewares: immich-web-redirect + # Websecure traefik.http.routers.immich.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.immich.entrypoints: websecure traefik.http.routers.immich.service: immich traefik.http.routers.immich.tls.certresolver: myresolver - traefik.http.services.immich.loadbalancer.server.port: 8080 + # Local domain + traefik.http.routers.immich-local-insecure.rule: Host(`immich.${LOCAL_DOMAIN}`) + traefik.http.routers.immich-local-insecure.entrypoints: web + traefik.http.routers.immich-local-insecure.service: immich + traefik.http.routers.immich-local-insecure.middlewares: immich-web-redirect + # Local domain secure + traefik.http.routers.immich-local.rule: Host(`immich.${LOCAL_DOMAIN}`) + traefik.http.routers.immich-local.entrypoints: websecure + traefik.http.routers.immich-local.service: immich + traefik.http.routers.immich-local.tls: true immich-server: container_name: immich-server @@ -121,7 +139,7 @@ services: restart: unless-stopped networks: - tipi_main_network - + immich-typesense: container_name: immich-typesense image: typesense/typesense:0.24.0 @@ -134,4 +152,4 @@ services: - ${APP_DATA_DIR}/data/typesense:/data restart: always networks: - - tipi_main_network \ No newline at end of file + - tipi_main_network diff --git a/apps/invidious/config.json b/apps/invidious/config.json index 0410f2d5..9ad8640d 100644 --- a/apps/invidious/config.json +++ b/apps/invidious/config.json @@ -6,7 +6,7 @@ "port": 8095, "id": "invidious", "version": "latest", - "tipi_version": 4, + "tipi_version": 5, "supported_architectures": ["arm64", "amd64"], "categories": ["media", "social"], "description": "Invidious is an open source alternative front-end to YouTube.", diff --git a/apps/invidious/docker-compose.arm64.yml b/apps/invidious/docker-compose.arm64.yml index b3759d1d..8690583d 100644 --- a/apps/invidious/docker-compose.arm64.yml +++ b/apps/invidious/docker-compose.arm64.yml @@ -28,12 +28,29 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.invidious-web-redirect.redirectscheme.scheme: https + traefik.http.services.invidious.loadbalancer.server.port: 3000 + # Web + traefik.http.routers.invidious-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.invidious-insecure.entrypoints: web + traefik.http.routers.invidious-insecure.service: invidious + traefik.http.routers.invidious-insecure.middlewares: invidious-web-redirect + # Websecure traefik.http.routers.invidious.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.invidious.entrypoints: websecure traefik.http.routers.invidious.service: invidious traefik.http.routers.invidious.tls.certresolver: myresolver - traefik.http.services.invidious.loadbalancer.server.port: 3000 + # Local domain + traefik.http.routers.invidious-local-insecure.rule: Host(`invidious.${LOCAL_DOMAIN}`) + traefik.http.routers.invidious-local-insecure.entrypoints: web + traefik.http.routers.invidious-local-insecure.service: invidious + traefik.http.routers.invidious-local-insecure.middlewares: invidious-web-redirect + # Local domain secure + traefik.http.routers.invidious-local.rule: Host(`invidious.${LOCAL_DOMAIN}`) + traefik.http.routers.invidious-local.entrypoints: websecure + traefik.http.routers.invidious-local.service: invidious invidious-db: container_name: invidious-db diff --git a/apps/invidious/docker-compose.yml b/apps/invidious/docker-compose.yml index c208b148..39f8de47 100644 --- a/apps/invidious/docker-compose.yml +++ b/apps/invidious/docker-compose.yml @@ -29,12 +29,30 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.invidious-web-redirect.redirectscheme.scheme: https + traefik.http.services.invidious.loadbalancer.server.port: 3000 + # Web + traefik.http.routers.invidious-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.invidious-insecure.entrypoints: web + traefik.http.routers.invidious-insecure.service: invidious + traefik.http.routers.invidious-insecure.middlewares: invidious-web-redirect + # Websecure traefik.http.routers.invidious.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.invidious.entrypoints: websecure traefik.http.routers.invidious.service: invidious traefik.http.routers.invidious.tls.certresolver: myresolver - traefik.http.services.invidious.loadbalancer.server.port: 3000 + # Local domain + traefik.http.routers.invidious-local-insecure.rule: Host(`invidious.${LOCAL_DOMAIN}`) + traefik.http.routers.invidious-local-insecure.entrypoints: web + traefik.http.routers.invidious-local-insecure.service: invidious + traefik.http.routers.invidious-local-insecure.middlewares: invidious-web-redirect + # Local domain secure + traefik.http.routers.invidious-local.rule: Host(`invidious.${LOCAL_DOMAIN}`) + traefik.http.routers.invidious-local.entrypoints: websecure + traefik.http.routers.invidious-local.service: invidious + traefik.http.routers.invidious-local.tls: true invidious-db: container_name: invidious-db diff --git a/apps/it-tools/config.json b/apps/it-tools/config.json index 62d395ee..fc7fda7b 100644 --- a/apps/it-tools/config.json +++ b/apps/it-tools/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "it-tools", - "tipi_version": 1, + "tipi_version": 2, "version": "latest", "categories": ["development"], "description": "Useful tools for developer and people working in IT. ", diff --git a/apps/it-tools/docker-compose.yml b/apps/it-tools/docker-compose.yml index afd2c287..db9a3398 100644 --- a/apps/it-tools/docker-compose.yml +++ b/apps/it-tools/docker-compose.yml @@ -10,10 +10,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.it-tools-web-redirect.redirectscheme.scheme: https + traefik.http.services.it-tools.loadbalancer.server.port: 80 + # Web + traefik.http.routers.it-tools-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.it-tools-insecure.entrypoints: web + traefik.http.routers.it-tools-insecure.service: it-tools + traefik.http.routers.it-tools-insecure.middlewares: it-tools-web-redirect + # Websecure traefik.http.routers.it-tools.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.it-tools.entrypoints: websecure traefik.http.routers.it-tools.service: it-tools traefik.http.routers.it-tools.tls.certresolver: myresolver - traefik.http.services.it-tools.loadbalancer.server.port: 80 - + # Local domain + traefik.http.routers.it-tools-local-insecure.rule: Host(`it-tools.${LOCAL_DOMAIN}`) + traefik.http.routers.it-tools-local-insecure.entrypoints: web + traefik.http.routers.it-tools-local-insecure.service: it-tools + traefik.http.routers.it-tools-local-insecure.middlewares: it-tools-web-redirect + # Local domain secure + traefik.http.routers.it-tools-local.rule: Host(`it-tools.${LOCAL_DOMAIN}`) + traefik.http.routers.it-tools-local.entrypoints: websecure + traefik.http.routers.it-tools-local.service: it-tools + traefik.http.routers.it-tools-local.tls: true diff --git a/apps/jackett/config.json b/apps/jackett/config.json index 31f5cac2..e227dd45 100644 --- a/apps/jackett/config.json +++ b/apps/jackett/config.json @@ -5,14 +5,11 @@ "exposable": true, "port": 8097, "id": "jackett", - "tipi_version": 44, + "tipi_version": 45, "version": "0.21.186", "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/jackett/docker-compose.yml b/apps/jackett/docker-compose.yml index b675c6e8..9f67d54c 100644 --- a/apps/jackett/docker-compose.yml +++ b/apps/jackett/docker-compose.yml @@ -19,9 +19,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.jackett-web-redirect.redirectscheme.scheme: https + traefik.http.services.jackett.loadbalancer.server.port: 9117 + # Web + traefik.http.routers.jackett-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.jackett-insecure.entrypoints: web + traefik.http.routers.jackett-insecure.service: jackett + traefik.http.routers.jackett-insecure.middlewares: jackett-web-redirect + # Websecure traefik.http.routers.jackett.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.jackett.entrypoints: websecure traefik.http.routers.jackett.service: jackett traefik.http.routers.jackett.tls.certresolver: myresolver - traefik.http.services.jackett.loadbalancer.server.port: 9117 + # Local domain + traefik.http.routers.jackett-local-insecure.rule: Host(`jackett.${LOCAL_DOMAIN}`) + traefik.http.routers.jackett-local-insecure.entrypoints: web + traefik.http.routers.jackett-local-insecure.service: jackett + traefik.http.routers.jackett-local-insecure.middlewares: jackett-web-redirect + # Local domain secure + traefik.http.routers.jackett-local.rule: Host(`jackett.${LOCAL_DOMAIN}`) + traefik.http.routers.jackett-local.entrypoints: websecure + traefik.http.routers.jackett-local.service: jackett + traefik.http.routers.jackett-local.tls: true diff --git a/apps/jellyseerr/config.json b/apps/jellyseerr/config.json index b9a10598..4b25b25d 100644 --- a/apps/jellyseerr/config.json +++ b/apps/jellyseerr/config.json @@ -5,12 +5,9 @@ "exposable": true, "port": 8163, "id": "jellyseerr", - "tipi_version": 2, + "tipi_version": 3, "version": "1.5.0", - "categories": [ - "media", - "utilities" - ], + "categories": ["media", "utilities"], "description": "Jellyseerr is a free and open source software application for managing requests for your media library. It is a a fork of Overseerr built to bring support for Jellyfin & Emby media servers!", "short_desc": "Fork of overseerr for Jellyfin support", "author": "Fallenbagel", diff --git a/apps/jellyseerr/docker-compose.yml b/apps/jellyseerr/docker-compose.yml index 3b7ffcea..9eedd37f 100644 --- a/apps/jellyseerr/docker-compose.yml +++ b/apps/jellyseerr/docker-compose.yml @@ -15,9 +15,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.jellyseerr-web-redirect.redirectscheme.scheme: https + traefik.http.services.jellyseerr.loadbalancer.server.port: 5055 + # Web + traefik.http.routers.jellyseerr-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.jellyseerr-insecure.entrypoints: web + traefik.http.routers.jellyseerr-insecure.service: jellyseerr + traefik.http.routers.jellyseerr-insecure.middlewares: jellyseerr-web-redirect + # Websecure traefik.http.routers.jellyseerr.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.jellyseerr.entrypoints: websecure traefik.http.routers.jellyseerr.service: jellyseerr traefik.http.routers.jellyseerr.tls.certresolver: myresolver - traefik.http.services.jellyseerr.loadbalancer.server.port: 5055 + # Local domain + traefik.http.routers.jellyseerr-local-insecure.rule: Host(`jellyseerr.${LOCAL_DOMAIN}`) + traefik.http.routers.jellyseerr-local-insecure.entrypoints: web + traefik.http.routers.jellyseerr-local-insecure.service: jellyseerr + traefik.http.routers.jellyseerr-local-insecure.middlewares: jellyseerr-web-redirect + # Local domain secure + traefik.http.routers.jellyseerr-local.rule: Host(`jellyseerr.${LOCAL_DOMAIN}`) + traefik.http.routers.jellyseerr-local.entrypoints: websecure + traefik.http.routers.jellyseerr-local.service: jellyseerr + traefik.http.routers.jellyseerr-local.tls: true diff --git a/apps/joplin/README.md b/apps/joplin/README.md deleted file mode 100644 index 63665775..00000000 --- a/apps/joplin/README.md +++ /dev/null @@ -1,13 +0,0 @@ -Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or from your own text editor. The notes are in Markdown format. -Notes exported from Evernote can be imported into Joplin, including the formatted content (which is converted to Markdown), resources (images, attachments, etc.) and complete metadata (geolocation, updated time, created time, etc.). Plain Markdown files can also be imported. - -The notes can be securely synchronised using end-to-end encryption with various cloud services including Nextcloud, Dropbox, OneDrive and Joplin Cloud. - -Full text search is available on all platforms to quickly find the information you need. The app can be customised using plugins and themes, and you can also easily create your own. - -The application is available for Windows, Linux, macOS, Android and iOS. A Web Clipper, to save web pages and screenshots from your browser, is also available for Firefox and Chrome. - -## Credentials - -Username: admin@localhost -Password: admin diff --git a/apps/joplin/config.json b/apps/joplin/config.json index c9dac3d4..8029ee5d 100644 --- a/apps/joplin/config.json +++ b/apps/joplin/config.json @@ -5,11 +5,9 @@ "exposable": true, "port": 8099, "id": "joplin", - "tipi_version": 5, + "tipi_version": 6, "version": "2.10.11", - "categories": [ - "utilities" - ], + "categories": ["utilities"], "description": "Default credentials: admin@localhost / admin", "short_desc": "Note taking and to-do application with synchronisation", "author": "https://github.com/laurent22", diff --git a/apps/joplin/docker-compose.yml b/apps/joplin/docker-compose.yml index 5143b0de..c2bea328 100644 --- a/apps/joplin/docker-compose.yml +++ b/apps/joplin/docker-compose.yml @@ -24,16 +24,32 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.joplin-web-redirect.redirectscheme.scheme: https + traefik.http.services.joplin.loadbalancer.passhostheader: true + traefik.http.services.joplin.loadbalancer.server.port: 22300 + # Web + traefik.http.routers.joplin-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.joplin-insecure.entrypoints: web + traefik.http.routers.joplin-insecure.service: joplin + traefik.http.routers.joplin-insecure.middlewares: joplin-web-redirect + # Websecure traefik.http.routers.joplin.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.joplin.entrypoints: websecure traefik.http.routers.joplin.service: joplin traefik.http.routers.joplin.tls.certresolver: myresolver - traefik.http.services.joplin.loadbalancer.server.port: 22300 - traefik.http.services.joplin.loadbalancer.passhostheader: true - traefik.http.middlewares.joplin-sslheader.headers.customrequestheaders.X-Forwarded-Proto: http - traefik.http.routers.joplin-sslheader.middlewares: joplin-sslheader@docker - + # Local domain + traefik.http.routers.joplin-local-insecure.rule: Host(`joplin.${LOCAL_DOMAIN}`) + traefik.http.routers.joplin-local-insecure.entrypoints: web + traefik.http.routers.joplin-local-insecure.service: joplin + traefik.http.routers.joplin-local-insecure.middlewares: joplin-web-redirect + # Local domain secure + traefik.http.routers.joplin-local.rule: Host(`joplin.${LOCAL_DOMAIN}`) + traefik.http.routers.joplin-local.entrypoints: websecure + traefik.http.routers.joplin-local.service: joplin + traefik.http.routers.joplin-local.tls: true + db-joplin: container_name: db-joplin image: postgres:14.2 diff --git a/apps/kanboard/config.json b/apps/kanboard/config.json index 677285a8..49cfa62b 100644 --- a/apps/kanboard/config.json +++ b/apps/kanboard/config.json @@ -5,11 +5,9 @@ "port": 8010, "id": "kanboard", "description": "Kanboard is a free and open source Kanban project management software.", - "tipi_version": 3, + "tipi_version": 4, "version": "1.2.30", - "categories": [ - "development" - ], + "categories": ["development"], "short_desc": "Open Source Kanban Board", "author": "Frédéric Guillot", "source": "https://github.com/kanboard/kanboard", diff --git a/apps/kanboard/docker-compose.yml b/apps/kanboard/docker-compose.yml index f608382f..1ddab497 100644 --- a/apps/kanboard/docker-compose.yml +++ b/apps/kanboard/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.9' +version: "3.9" services: kanboard: @@ -15,9 +15,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.kanboard-web-redirect.redirectscheme.scheme: https + traefik.http.services.kanboard.loadbalancer.server.port: 80 + # Web + traefik.http.routers.kanboard-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.kanboard-insecure.entrypoints: web + traefik.http.routers.kanboard-insecure.service: kanboard + traefik.http.routers.kanboard-insecure.middlewares: kanboard-web-redirect + # Websecure traefik.http.routers.kanboard.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.kanboard.entrypoints: websecure traefik.http.routers.kanboard.service: kanboard traefik.http.routers.kanboard.tls.certresolver: myresolver - traefik.http.services.kanboard.loadbalancer.server.port: 80 + # Local domain + traefik.http.routers.kanboard-local-insecure.rule: Host(`kanboard.${LOCAL_DOMAIN}`) + traefik.http.routers.kanboard-local-insecure.entrypoints: web + traefik.http.routers.kanboard-local-insecure.service: kanboard + traefik.http.routers.kanboard-local-insecure.middlewares: kanboard-web-redirect + # Local domain secure + traefik.http.routers.kanboard-local.rule: Host(`kanboard.${LOCAL_DOMAIN}`) + traefik.http.routers.kanboard-local.entrypoints: websecure + traefik.http.routers.kanboard-local.service: kanboard + traefik.http.routers.kanboard-local.tls: true diff --git a/apps/kapowarr/config.json b/apps/kapowarr/config.json index a60ce820..46e7addf 100644 --- a/apps/kapowarr/config.json +++ b/apps/kapowarr/config.json @@ -5,12 +5,9 @@ "exposable": true, "port": 8194, "id": "kapowarr", - "tipi_version": 1, + "tipi_version": 2, "version": "v1.0.0-beta-1", - "categories": [ - "media", - "utilities" - ], + "categories": ["media", "utilities"], "description": "Kapowarr is a software to build and manage a comic book library, fitting in the *arr suite of software.", "short_desc": "Kapowarr is a software to build and manage a comic book library, fitting in the *arr suite of software.", "author": "Casvt", diff --git a/apps/kapowarr/docker-compose.yml b/apps/kapowarr/docker-compose.yml index 545dc949..cef66410 100644 --- a/apps/kapowarr/docker-compose.yml +++ b/apps/kapowarr/docker-compose.yml @@ -14,9 +14,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.kapowarr-web-redirect.redirectscheme.scheme: https + traefik.http.services.kapowarr.loadbalancer.server.port: 5656 + # Web + traefik.http.routers.kapowarr-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.kapowarr-insecure.entrypoints: web + traefik.http.routers.kapowarr-insecure.service: kapowarr + traefik.http.routers.kapowarr-insecure.middlewares: kapowarr-web-redirect + # Websecure traefik.http.routers.kapowarr.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.kapowarr.entrypoints: websecure traefik.http.routers.kapowarr.service: kapowarr traefik.http.routers.kapowarr.tls.certresolver: myresolver - traefik.http.services.kapowarr.loadbalancer.server.port: 5656 + # Local domain + traefik.http.routers.kapowarr-local-insecure.rule: Host(`kapowarr.${LOCAL_DOMAIN}`) + traefik.http.routers.kapowarr-local-insecure.entrypoints: web + traefik.http.routers.kapowarr-local-insecure.service: kapowarr + traefik.http.routers.kapowarr-local-insecure.middlewares: kapowarr-web-redirect + # Local domain secure + traefik.http.routers.kapowarr-local.rule: Host(`kapowarr.${LOCAL_DOMAIN}`) + traefik.http.routers.kapowarr-local.entrypoints: websecure + traefik.http.routers.kapowarr-local.service: kapowarr + traefik.http.routers.kapowarr-local.tls: true diff --git a/apps/kavita/config.json b/apps/kavita/config.json index 31855e9a..8d1be496 100644 --- a/apps/kavita/config.json +++ b/apps/kavita/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "kavita", - "tipi_version": 1, + "tipi_version": 2, "version": "nightly-0.7.1.4", "categories": ["media"], "description": "Kavita is a fast, feature rich, cross platform reading server", diff --git a/apps/kavita/docker-compose.yml b/apps/kavita/docker-compose.yml index d7709379..6bf8fc33 100644 --- a/apps/kavita/docker-compose.yml +++ b/apps/kavita/docker-compose.yml @@ -1,9 +1,9 @@ -version: '3.9' +version: "3.9" services: kavita: container_name: kavita - image: kizaing/kavita:nightly-0.7.1.4 + image: kizaing/kavita:nightly-0.7.1.4 ports: - ${APP_PORT}:5000 volumes: @@ -17,9 +17,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.kavita-web-redirect.redirectscheme.scheme: https + traefik.http.services.kavita.loadbalancer.server.port: 5000 + # Web + traefik.http.routers.kavita-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.kavita-insecure.entrypoints: web + traefik.http.routers.kavita-insecure.service: kavita + traefik.http.routers.kavita-insecure.middlewares: kavita-web-redirect + # Websecure traefik.http.routers.kavita.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.kavita.entrypoints: websecure traefik.http.routers.kavita.service: kavita traefik.http.routers.kavita.tls.certresolver: myresolver - traefik.http.services.kavita.loadbalancer.server.port: 5000 + # Local domain + traefik.http.routers.kavita-local-insecure.rule: Host(`kavita.${LOCAL_DOMAIN}`) + traefik.http.routers.kavita-local-insecure.entrypoints: web + traefik.http.routers.kavita-local-insecure.service: kavita + traefik.http.routers.kavita-local-insecure.middlewares: kavita-web-redirect + # Local domain secure + traefik.http.routers.kavita-local.rule: Host(`kavita.${LOCAL_DOMAIN}`) + traefik.http.routers.kavita-local.entrypoints: websecure + traefik.http.routers.kavita-local.service: kavita + traefik.http.routers.kavita-local.tls: true diff --git a/apps/libreddit/config.json b/apps/libreddit/config.json index 75660f1c..4f5b45e5 100644 --- a/apps/libreddit/config.json +++ b/apps/libreddit/config.json @@ -5,7 +5,7 @@ "exposable": true, "port": 8105, "id": "libreddit", - "tipi_version": 2, + "tipi_version": 3, "version": "latest", "categories": ["social"], "description": "LibReddit is a bloat free reddit frontend written in Rust, no ads, no tracking and strong Content Security Policy prevents any request from going to reddit, everything is proxied.", diff --git a/apps/libreddit/docker-compose.arm.yml b/apps/libreddit/docker-compose.arm.yml index 7b1bffef..a99f372a 100644 --- a/apps/libreddit/docker-compose.arm.yml +++ b/apps/libreddit/docker-compose.arm.yml @@ -11,9 +11,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.libreddit-web-redirect.redirectscheme.scheme: https + traefik.http.services.libreddit.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.libreddit-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.libreddit-insecure.entrypoints: web + traefik.http.routers.libreddit-insecure.service: libreddit + traefik.http.routers.libreddit-insecure.middlewares: libreddit-web-redirect + # Websecure traefik.http.routers.libreddit.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.libreddit.entrypoints: websecure traefik.http.routers.libreddit.service: libreddit traefik.http.routers.libreddit.tls.certresolver: myresolver - traefik.http.services.libreddit.loadbalancer.server.port: 8080 \ No newline at end of file + # Local domain + traefik.http.routers.libreddit-local-insecure.rule: Host(`libreddit.${LOCAL_DOMAIN}`) + traefik.http.routers.libreddit-local-insecure.entrypoints: web + traefik.http.routers.libreddit-local-insecure.service: libreddit + traefik.http.routers.libreddit-local-insecure.middlewares: libreddit-web-redirect + # Local domain secure + traefik.http.routers.libreddit-local.rule: Host(`libreddit.${LOCAL_DOMAIN}`) + traefik.http.routers.libreddit-local.entrypoints: websecure + traefik.http.routers.libreddit-local.service: libreddit + traefik.http.routers.libreddit-local.tls: true diff --git a/apps/libreddit/docker-compose.arm64.yml b/apps/libreddit/docker-compose.arm64.yml index b9001bf0..af7cb2a3 100644 --- a/apps/libreddit/docker-compose.arm64.yml +++ b/apps/libreddit/docker-compose.arm64.yml @@ -11,9 +11,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.libreddit-web-redirect.redirectscheme.scheme: https + traefik.http.services.libreddit.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.libreddit-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.libreddit-insecure.entrypoints: web + traefik.http.routers.libreddit-insecure.service: libreddit + traefik.http.routers.libreddit-insecure.middlewares: libreddit-web-redirect + # Websecure traefik.http.routers.libreddit.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.libreddit.entrypoints: websecure traefik.http.routers.libreddit.service: libreddit traefik.http.routers.libreddit.tls.certresolver: myresolver - traefik.http.services.libreddit.loadbalancer.server.port: 8080 \ No newline at end of file + # Local domain + traefik.http.routers.libreddit-local-insecure.rule: Host(`libreddit.${LOCAL_DOMAIN}`) + traefik.http.routers.libreddit-local-insecure.entrypoints: web + traefik.http.routers.libreddit-local-insecure.service: libreddit + traefik.http.routers.libreddit-local-insecure.middlewares: libreddit-web-redirect + # Local domain secure + traefik.http.routers.libreddit-local.rule: Host(`libreddit.${LOCAL_DOMAIN}`) + traefik.http.routers.libreddit-local.entrypoints: websecure + traefik.http.routers.libreddit-local.service: libreddit + traefik.http.routers.libreddit-local.tls: true diff --git a/apps/libreddit/docker-compose.yml b/apps/libreddit/docker-compose.yml index 1651d615..68a9e2e6 100644 --- a/apps/libreddit/docker-compose.yml +++ b/apps/libreddit/docker-compose.yml @@ -11,10 +11,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.libreddit-web-redirect.redirectscheme.scheme: https + traefik.http.services.libreddit.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.libreddit-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.libreddit-insecure.entrypoints: web + traefik.http.routers.libreddit-insecure.service: libreddit + traefik.http.routers.libreddit-insecure.middlewares: libreddit-web-redirect + # Websecure traefik.http.routers.libreddit.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.libreddit.entrypoints: websecure traefik.http.routers.libreddit.service: libreddit traefik.http.routers.libreddit.tls.certresolver: myresolver - traefik.http.services.libreddit.loadbalancer.server.port: 8080 - + # Local domain + traefik.http.routers.libreddit-local-insecure.rule: Host(`libreddit.${LOCAL_DOMAIN}`) + traefik.http.routers.libreddit-local-insecure.entrypoints: web + traefik.http.routers.libreddit-local-insecure.service: libreddit + traefik.http.routers.libreddit-local-insecure.middlewares: libreddit-web-redirect + # Local domain secure + traefik.http.routers.libreddit-local.rule: Host(`libreddit.${LOCAL_DOMAIN}`) + traefik.http.routers.libreddit-local.entrypoints: websecure + traefik.http.routers.libreddit-local.service: libreddit + traefik.http.routers.libreddit-local.tls: true diff --git a/apps/librephotos/config.json b/apps/librephotos/config.json index 709b4ce9..307cb757 100644 --- a/apps/librephotos/config.json +++ b/apps/librephotos/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "librephotos", - "tipi_version": 7, + "tipi_version": 8, "version": "2023w20", "supported_architectures": ["amd64", "arm64"], "categories": ["photography"], diff --git a/apps/librephotos/docker-compose.yml b/apps/librephotos/docker-compose.yml index 407da3e1..050b65e3 100644 --- a/apps/librephotos/docker-compose.yml +++ b/apps/librephotos/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: librephotos: image: reallibrephotos/librephotos-proxy:2023w20 @@ -16,12 +16,30 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.librephotos-web-redirect.redirectscheme.scheme: https + traefik.http.services.librephotos.loadbalancer.server.port: 80 + # Web + traefik.http.routers.librephotos-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.librephotos-insecure.entrypoints: web + traefik.http.routers.librephotos-insecure.service: librephotos + traefik.http.routers.librephotos-insecure.middlewares: librephotos-web-redirect + # Websecure traefik.http.routers.librephotos.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.librephotos.entrypoints: websecure traefik.http.routers.librephotos.service: librephotos traefik.http.routers.librephotos.tls.certresolver: myresolver - traefik.http.services.librephotos.loadbalancer.server.port: 80 + # Local domain + traefik.http.routers.librephotos-local-insecure.rule: Host(`librephotos.${LOCAL_DOMAIN}`) + traefik.http.routers.librephotos-local-insecure.entrypoints: web + traefik.http.routers.librephotos-local-insecure.service: librephotos + traefik.http.routers.librephotos-local-insecure.middlewares: librephotos-web-redirect + # Local domain secure + traefik.http.routers.librephotos-local.rule: Host(`librephotos.${LOCAL_DOMAIN}`) + traefik.http.routers.librephotos-local.entrypoints: websecure + traefik.http.routers.librephotos-local.service: librephotos + traefik.http.routers.librephotos-local.tls: true librephotos-db: image: postgres:14 @@ -35,7 +53,7 @@ services: - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data #Checking health of Postgres db healthcheck: - test: ['CMD-SHELL', 'pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB'] + test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"] interval: 5s timeout: 5s retries: 5 diff --git a/apps/libretranslate/config.json b/apps/libretranslate/config.json index 042d7043..4ba63962 100644 --- a/apps/libretranslate/config.json +++ b/apps/libretranslate/config.json @@ -5,11 +5,9 @@ "exposable": true, "port": 8121, "id": "libretranslate", - "tipi_version": 5, + "tipi_version": 6, "version": "1.3.11", - "categories": [ - "utilities" - ], + "categories": ["utilities"], "description": "Free and Open Source Machine Translation API, entirely self-hosted. Unlike other APIs, it doesn't rely on proprietary providers such as Google or Azure to perform translations. Instead, its translation engine is powered by the open source Argos Translate library.", "short_desc": "Free and Open Source Machine Translation API. 100% self-hosted, offline capable and easy to setup.", "author": "LibreTranslate", diff --git a/apps/libretranslate/docker-compose.yml b/apps/libretranslate/docker-compose.yml index 7c76f853..c17fa3d3 100644 --- a/apps/libretranslate/docker-compose.yml +++ b/apps/libretranslate/docker-compose.yml @@ -11,10 +11,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.libretranslate-web-redirect.redirectscheme.scheme: https + traefik.http.services.libretranslate.loadbalancer.server.port: 5000 + # Web + traefik.http.routers.libretranslate-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.libretranslate-insecure.entrypoints: web + traefik.http.routers.libretranslate-insecure.service: libretranslate + traefik.http.routers.libretranslate-insecure.middlewares: libretranslate-web-redirect + # Websecure traefik.http.routers.libretranslate.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.libretranslate.entrypoints: websecure traefik.http.routers.libretranslate.service: libretranslate traefik.http.routers.libretranslate.tls.certresolver: myresolver - traefik.http.services.libretranslate.loadbalancer.server.port: 5000 - + # Local domain + traefik.http.routers.libretranslate-local-insecure.rule: Host(`libretranslate.${LOCAL_DOMAIN}`) + traefik.http.routers.libretranslate-local-insecure.entrypoints: web + traefik.http.routers.libretranslate-local-insecure.service: libretranslate + traefik.http.routers.libretranslate-local-insecure.middlewares: libretranslate-web-redirect + # Local domain secure + traefik.http.routers.libretranslate-local.rule: Host(`libretranslate.${LOCAL_DOMAIN}`) + traefik.http.routers.libretranslate-local.entrypoints: websecure + traefik.http.routers.libretranslate-local.service: libretranslate + traefik.http.routers.libretranslate-local.tls: true diff --git a/apps/lidarr-deemix/config.json b/apps/lidarr-deemix/config.json index 11b98349..11cda85c 100644 --- a/apps/lidarr-deemix/config.json +++ b/apps/lidarr-deemix/config.json @@ -5,11 +5,9 @@ "available": true, "exposable": true, "id": "lidarr-deemix", - "tipi_version": 2, + "tipi_version": 3, "version": "1.2.8", - "categories": [ - "media" - ], + "categories": ["media"], "description": "Lidarr with some muscles thanks to deemix", "short_desc": "Lidarr with some muscles thanks to deemix", "author": "Youegraillot", diff --git a/apps/lidarr-deemix/docker-compose.yml b/apps/lidarr-deemix/docker-compose.yml index 6ddf7678..b1406e86 100644 --- a/apps/lidarr-deemix/docker-compose.yml +++ b/apps/lidarr-deemix/docker-compose.yml @@ -18,9 +18,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.lidarr-deemix-web-redirect.redirectscheme.scheme: https + traefik.http.services.lidarr-deemix.loadbalancer.server.port: 8686 + # Web + traefik.http.routers.lidarr-deemix-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.lidarr-deemix-insecure.entrypoints: web + traefik.http.routers.lidarr-deemix-insecure.service: lidarr-deemix + traefik.http.routers.lidarr-deemix-insecure.middlewares: lidarr-deemix-web-redirect + # Websecure traefik.http.routers.lidarr-deemix.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.lidarr-deemix.entrypoints: websecure traefik.http.routers.lidarr-deemix.service: lidarr-deemix traefik.http.routers.lidarr-deemix.tls.certresolver: myresolver - traefik.http.services.lidarr-deemix.loadbalancer.server.port: 8686 + # Local domain + traefik.http.routers.lidarr-deemix-local-insecure.rule: Host(`lidarr-deemix.${LOCAL_DOMAIN}`) + traefik.http.routers.lidarr-deemix-local-insecure.entrypoints: web + traefik.http.routers.lidarr-deemix-local-insecure.service: lidarr-deemix + traefik.http.routers.lidarr-deemix-local-insecure.middlewares: lidarr-deemix-web-redirect + # Local domain secure + traefik.http.routers.lidarr-deemix-local.rule: Host(`lidarr-deemix.${LOCAL_DOMAIN}`) + traefik.http.routers.lidarr-deemix-local.entrypoints: websecure + traefik.http.routers.lidarr-deemix-local.service: lidarr-deemix + traefik.http.routers.lidarr-deemix-local.tls: true diff --git a/apps/lidarr/config.json b/apps/lidarr/config.json index 55a694a2..6c0632c1 100644 --- a/apps/lidarr/config.json +++ b/apps/lidarr/config.json @@ -5,12 +5,9 @@ "exposable": true, "port": 8131, "id": "lidarr", - "tipi_version": 2, + "tipi_version": 3, "version": "1.1.4", - "categories": [ - "media", - "music" - ], + "categories": ["media", "music"], "description": "Lidarr is a music collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new tracks from your favorite artists and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.", "short_desc": " Looks and smells like Sonarr but made for music.", "author": "lidarr.audio", diff --git a/apps/lidarr/docker-compose.yml b/apps/lidarr/docker-compose.yml index f361f1a6..9f43dfe3 100644 --- a/apps/lidarr/docker-compose.yml +++ b/apps/lidarr/docker-compose.yml @@ -17,9 +17,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.lidarr-web-redirect.redirectscheme.scheme: https + traefik.http.services.lidarr.loadbalancer.server.port: 8686 + # Web + traefik.http.routers.lidarr-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.lidarr-insecure.entrypoints: web + traefik.http.routers.lidarr-insecure.service: lidarr + traefik.http.routers.lidarr-insecure.middlewares: lidarr-web-redirect + # Websecure traefik.http.routers.lidarr.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.lidarr.entrypoints: websecure traefik.http.routers.lidarr.service: lidarr traefik.http.routers.lidarr.tls.certresolver: myresolver - traefik.http.services.lidarr.loadbalancer.server.port: 8686 + # Local domain + traefik.http.routers.lidarr-local-insecure.rule: Host(`lidarr.${LOCAL_DOMAIN}`) + traefik.http.routers.lidarr-local-insecure.entrypoints: web + traefik.http.routers.lidarr-local-insecure.service: lidarr + traefik.http.routers.lidarr-local-insecure.middlewares: lidarr-web-redirect + # Local domain secure + traefik.http.routers.lidarr-local.rule: Host(`lidarr.${LOCAL_DOMAIN}`) + traefik.http.routers.lidarr-local.entrypoints: websecure + traefik.http.routers.lidarr-local.service: lidarr + traefik.http.routers.lidarr-local.tls: true diff --git a/apps/linkstack/config.json b/apps/linkstack/config.json index d01521a2..07bea432 100644 --- a/apps/linkstack/config.json +++ b/apps/linkstack/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "linkstack", - "tipi_version": 1, + "tipi_version": 2, "version": "latest", "categories": ["media"], "description": "LinkStack is a highly customizable link sharing platform with an intuitive, easy to use user interface", diff --git a/apps/linkstack/docker-compose.yml b/apps/linkstack/docker-compose.yml index 2d103673..6150e6bb 100644 --- a/apps/linkstack/docker-compose.yml +++ b/apps/linkstack/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: linkstack: @@ -21,7 +21,7 @@ services: rm -rf /htdocs/img sed -i 's/FORCE_HTTPS=false/FORCE_HTTPS=true/g' /data/.env - + # uncomment this after first start # to prevent the installing dialog coming up # if the container is recreated @@ -46,22 +46,18 @@ services: - DB_CONNECTION=sqlite - FORCE_HTTPS=true volumes: - - '${APP_DATA_DIR}/data/linkstack:/data' + - "${APP_DATA_DIR}/data/linkstack:/data" ports: - 8184:80 - - '${APP_PORT}:443' + - "${APP_PORT}:443" restart: unless-stopped networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} - traefik.http.routers.linkstack.rule: Host(`${APP_DOMAIN}`) - traefik.http.routers.linkstack.entrypoints: websecure - traefik.http.routers.linkstack.service: linkstack - traefik.http.routers.linkstack.tls.certresolver: myresolver - traefik.http.routers.linkstack.tls: "true" + # Main + traefik.enable: true traefik.http.services.linkstack.loadbalancer.server.port: 80 - traefik.http.routers.linkstack.middlewares: "linkstack-security-headers,linkstack-forwarded-headers" + traefik.http.middlewares.linkstack-web-redirect.redirectscheme.scheme: https traefik.http.middlewares.linkstack-security-headers.headers.contentSecurityPolicy: "upgrade-insecure-requests" traefik.http.middlewares.linkstack-forwarded-headers.headers.customrequestheaders.X-Real-IP: "$remote_addr" traefik.http.middlewares.linkstack-forwarded-headers.headers.customrequestheaders.X-Forwarded-For: "$proxy_add_x_forwarded_for" @@ -70,3 +66,25 @@ services: traefik.http.middlewares.linkstack-forwarded-headers.headers.customrequestheaders.Upgrade: "$http_upgrade" traefik.http.middlewares.linkstack-forwarded-headers.headers.customrequestheaders.Connection: "upgrade" + # Web + traefik.http.routers.linkstack-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.linkstack-insecure.entrypoints: web + traefik.http.routers.linkstack-insecure.service: linkstack + traefik.http.routers.linkstack-insecure.middlewares: linkstack-web-redirect + # Websecure + traefik.http.routers.linkstack.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.linkstack.entrypoints: websecure + traefik.http.routers.linkstack.service: linkstack + traefik.http.routers.linkstack.middlewares: linkstack-security-headers,linkstack-forwarded-headers + traefik.http.routers.linkstack.tls.certresolver: myresolver + # Local domain + traefik.http.routers.linkstack-local-insecure.rule: Host(`linkstack.${LOCAL_DOMAIN}`) + traefik.http.routers.linkstack-local-insecure.entrypoints: web + traefik.http.routers.linkstack-local-insecure.service: linkstack + traefik.http.routers.linkstack-local-insecure.middlewares: linkstack-web-redirect + # Local domain secure + traefik.http.routers.linkstack-local.rule: Host(`linkstack.${LOCAL_DOMAIN}`) + traefik.http.routers.linkstack-local.entrypoints: websecure + traefik.http.routers.linkstack-local.service: linkstack + traefik.http.routers.linkstack-local.middlewares: linkstack-security-headers,linkstack-forwarded-headers + traefik.http.routers.linkstack-local.tls: true diff --git a/apps/lodestone-core/config.json b/apps/lodestone-core/config.json index c1c08560..60385d9c 100644 --- a/apps/lodestone-core/config.json +++ b/apps/lodestone-core/config.json @@ -6,11 +6,9 @@ "no_gui": true, "port": 16662, "id": "lodestone-core", - "tipi_version": 2, + "tipi_version": 3, "version": "0.4.4", - "categories": [ - "gaming" - ], + "categories": ["gaming"], "description": "A free, open source server hosting tool for Minecraft and other multiplayers", "short_desc": "Server hosting tool for Minecraft and other multiplayers", "author": "Lodestone-Team", diff --git a/apps/lodestone-core/docker-compose.yml b/apps/lodestone-core/docker-compose.yml index 150244ac..92cc39f5 100644 --- a/apps/lodestone-core/docker-compose.yml +++ b/apps/lodestone-core/docker-compose.yml @@ -13,9 +13,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.lodestone-core-web-redirect.redirectscheme.scheme: https + traefik.http.services.lodestone-core.loadbalancer.server.port: 16662 + # Web + traefik.http.routers.lodestone-core-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.lodestone-core-insecure.entrypoints: web + traefik.http.routers.lodestone-core-insecure.service: lodestone-core + traefik.http.routers.lodestone-core-insecure.middlewares: lodestone-core-web-redirect + # Websecure traefik.http.routers.lodestone-core.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.lodestone-core.entrypoints: websecure traefik.http.routers.lodestone-core.service: lodestone-core traefik.http.routers.lodestone-core.tls.certresolver: myresolver - traefik.http.services.lodestone-core.loadbalancer.server.port: 16662 \ No newline at end of file + # Local domain + traefik.http.routers.lodestone-core-local-insecure.rule: Host(`lodestone-core.${LOCAL_DOMAIN}`) + traefik.http.routers.lodestone-core-local-insecure.entrypoints: web + traefik.http.routers.lodestone-core-local-insecure.service: lodestone-core + traefik.http.routers.lodestone-core-local-insecure.middlewares: lodestone-core-web-redirect + # Local domain secure + traefik.http.routers.lodestone-core-local.rule: Host(`lodestone-core.${LOCAL_DOMAIN}`) + traefik.http.routers.lodestone-core-local.entrypoints: websecure + traefik.http.routers.lodestone-core-local.service: lodestone-core + traefik.http.routers.lodestone-core-local.tls: true