diff --git a/apps/actual-budget/config.json b/apps/actual-budget/config.json index a18e0fc5..81b79de6 100644 --- a/apps/actual-budget/config.json +++ b/apps/actual-budget/config.json @@ -5,11 +5,9 @@ "exposable": true, "port": 8011, "id": "actual-budget", - "tipi_version": 3, + "tipi_version": 4, "version": "23.6.0", - "categories": [ - "finance" - ], + "categories": ["finance"], "description": "Actual is a local-first personal finance tool. It is 100% free and open-source, written in NodeJS, it has a synchronization element so that all your changes can move between devices without any heavy lifting.", "short_desc": "Local-first OpenSource Budget tool", "author": "Shift Reset LLC", diff --git a/apps/actual-budget/docker-compose.yml b/apps/actual-budget/docker-compose.yml index c5a609c5..66f950bb 100644 --- a/apps/actual-budget/docker-compose.yml +++ b/apps/actual-budget/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.9' +version: "3.9" services: actual-budget: container_name: actual-budget @@ -11,9 +11,27 @@ services: volumes: - ${APP_DATA_DIR}/data:/data labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.actual-budget-web-redirect.redirectscheme.scheme: https + traefik.http.services.actual-budget.loadbalancer.server.port: 5006 + # Web + traefik.http.routers.actual-budget-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.actual-budget-insecure.entrypoints: web + traefik.http.routers.actual-budget-insecure.service: actual-budget + traefik.http.routers.actual-budget-insecure.middlewares: actual-budget-web-redirect + # Websecure traefik.http.routers.actual-budget.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.actual-budget.entrypoints: websecure traefik.http.routers.actual-budget.service: actual-budget traefik.http.routers.actual-budget.tls.certresolver: myresolver - traefik.http.services.actual-budget.loadbalancer.server.port: 5006 + # Local domain + traefik.http.routers.actual-budget-local-insecure.rule: Host(`actual-budget.${LOCAL_DOMAIN}`) + traefik.http.routers.actual-budget-local-insecure.entrypoints: web + traefik.http.routers.actual-budget-local-insecure.service: actual-budget + traefik.http.routers.actual-budget-local-insecure.middlewares: actual-budget-web-redirect + # Local domain secure + traefik.http.routers.actual-budget-local.rule: Host(`actual-budget.${LOCAL_DOMAIN}`) + traefik.http.routers.actual-budget-local.entrypoints: websecure + traefik.http.routers.actual-budget-local.service: actual-budget + traefik.http.routers.actual-budget-local.tls: true diff --git a/apps/adguard/config.json b/apps/adguard/config.json index b73b1018..eeb79789 100644 --- a/apps/adguard/config.json +++ b/apps/adguard/config.json @@ -3,22 +3,17 @@ "name": "Adguard", "available": true, "exposable": true, - "tipi_version": 9, + "tipi_version": 10, "version": "0.107.31", "port": 8104, "id": "adguard", - "categories": [ - "network", - "security" - ], + "categories": ["network", "security"], "description": "Adguard is the best way to get rid of annoying ads and online tracking and protect your computer from malware. Make your web surfing fast, safe and ad-free.", "short_desc": "World's most advanced adblocker!", "author": "AdguardTeam", "source": "https://github.com/AdguardTeam", "requirements": { - "ports": [ - 53 - ] + "ports": [53] }, "form_fields": [ { diff --git a/apps/adguard/docker-compose.yml b/apps/adguard/docker-compose.yml index c67bb189..89ac66a2 100644 --- a/apps/adguard/docker-compose.yml +++ b/apps/adguard/docker-compose.yml @@ -1,4 +1,3 @@ - version: "3.7" services: adguard: @@ -15,9 +14,27 @@ services: - ${NETWORK_INTERFACE:-0.0.0.0}:53:53/udp - ${APP_PORT}:80 labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.adguard-web-redirect.redirectscheme.scheme: https + traefik.http.services.adguard.loadbalancer.server.port: 80 + # Web + traefik.http.routers.adguard-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.adguard-insecure.entrypoints: web + traefik.http.routers.adguard-insecure.service: adguard + traefik.http.routers.adguard-insecure.middlewares: adguard-web-redirect + # Websecure traefik.http.routers.adguard.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.adguard.entrypoints: websecure traefik.http.routers.adguard.service: adguard traefik.http.routers.adguard.tls.certresolver: myresolver - traefik.http.services.adguard.loadbalancer.server.port: 80 + # Local domain + traefik.http.routers.adguard-local-insecure.rule: Host(`adguard.${LOCAL_DOMAIN}`) + traefik.http.routers.adguard-local-insecure.entrypoints: web + traefik.http.routers.adguard-local-insecure.service: adguard + traefik.http.routers.adguard-local-insecure.middlewares: adguard-web-redirect + # Local domain secure + traefik.http.routers.adguard-local.rule: Host(`adguard.${LOCAL_DOMAIN}`) + traefik.http.routers.adguard-local.entrypoints: websecure + traefik.http.routers.adguard-local.service: adguard + traefik.http.routers.adguard-local.tls: true diff --git a/apps/autobrr/config.json b/apps/autobrr/config.json index 3ffcd60d..5f752277 100644 --- a/apps/autobrr/config.json +++ b/apps/autobrr/config.json @@ -5,11 +5,9 @@ "available": true, "exposable": true, "id": "autobrr", - "tipi_version": 5, + "tipi_version": 6, "version": "1.26.1", - "categories": [ - "media" - ], + "categories": ["media"], "description": "autobrr is the modern download automation tool for torrents. With inspiration and ideas from tools like trackarr, autodl-irssi and flexget we built one tool that can do it all, and then some.", "short_desc": "Automation for downloads.", "author": "autobrr", diff --git a/apps/autobrr/docker-compose.yml b/apps/autobrr/docker-compose.yml index ff0b955e..f73ce6d8 100644 --- a/apps/autobrr/docker-compose.yml +++ b/apps/autobrr/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3' +version: "3" services: autobrr: @@ -9,15 +9,33 @@ services: - ${APP_PORT}:7474 volumes: - ${APP_DATA_DIR}/data/autobrr:/config - user: '1000:1000' + user: "1000:1000" environment: - TZ=${TZ} networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.autobrr-web-redirect.redirectscheme.scheme: https + traefik.http.services.autobrr.loadbalancer.server.port: 7474 + # Web + traefik.http.routers.autobrr-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.autobrr-insecure.entrypoints: web + traefik.http.routers.autobrr-insecure.service: autobrr + traefik.http.routers.autobrr-insecure.middlewares: autobrr-web-redirect + # Websecure traefik.http.routers.autobrr.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.autobrr.entrypoints: websecure traefik.http.routers.autobrr.service: autobrr traefik.http.routers.autobrr.tls.certresolver: myresolver - traefik.http.services.autobrr.loadbalancer.server.port: 7474 + # Local domain + traefik.http.routers.autobrr-local-insecure.rule: Host(`autobrr.${LOCAL_DOMAIN}`) + traefik.http.routers.autobrr-local-insecure.entrypoints: web + traefik.http.routers.autobrr-local-insecure.service: autobrr + traefik.http.routers.autobrr-local-insecure.middlewares: autobrr-web-redirect + # Local domain secure + traefik.http.routers.autobrr-local.rule: Host(`autobrr.${LOCAL_DOMAIN}`) + traefik.http.routers.autobrr-local.entrypoints: websecure + traefik.http.routers.autobrr-local.service: autobrr + traefik.http.routers.autobrr-local.tls: true diff --git a/apps/barrage/config.json b/apps/barrage/config.json index 2057980a..fe12e000 100644 --- a/apps/barrage/config.json +++ b/apps/barrage/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "barrage", - "tipi_version": 2, + "tipi_version": 3, "version": "0.3.0", "categories": ["utilities"], "description": "Minimal Deluge WebUI with full mobile support", diff --git a/apps/barrage/docker-compose.yml b/apps/barrage/docker-compose.yml index a3a11d91..b237c568 100644 --- a/apps/barrage/docker-compose.yml +++ b/apps/barrage/docker-compose.yml @@ -15,9 +15,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.barrage-web-redirect.redirectscheme.scheme: https + traefik.http.services.barrage.loadbalancer.server.port: 3000 + # Web + traefik.http.routers.barrage-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.barrage-insecure.entrypoints: web + traefik.http.routers.barrage-insecure.service: barrage + traefik.http.routers.barrage-insecure.middlewares: barrage-web-redirect + # Websecure traefik.http.routers.barrage.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.barrage.entrypoints: websecure traefik.http.routers.barrage.service: barrage traefik.http.routers.barrage.tls.certresolver: myresolver - traefik.http.services.barrage.loadbalancer.server.port: 3000 + # Local domain + traefik.http.routers.barrage-local-insecure.rule: Host(`barrage.${LOCAL_DOMAIN}`) + traefik.http.routers.barrage-local-insecure.entrypoints: web + traefik.http.routers.barrage-local-insecure.service: barrage + traefik.http.routers.barrage-local-insecure.middlewares: barrage-web-redirect + # Local domain secure + traefik.http.routers.barrage-local.rule: Host(`barrage.${LOCAL_DOMAIN}`) + traefik.http.routers.barrage-local.entrypoints: websecure + traefik.http.routers.barrage-local.service: barrage + traefik.http.routers.barrage-local.tls: true diff --git a/apps/bazarr/config.json b/apps/bazarr/config.json index 1ee2810e..fd9436ae 100644 --- a/apps/bazarr/config.json +++ b/apps/bazarr/config.json @@ -5,12 +5,9 @@ "exposable": true, "port": 6767, "id": "bazarr", - "tipi_version": 5, + "tipi_version": 6, "version": "1.2.1", - "categories": [ - "media", - "utilities" - ], + "categories": ["media", "utilities"], "description": "Bazarr is a companion application to Sonarr and Radarr that manages and downloads subtitles based on your requirements.", "short_desc": "A companion application to Sonarr and Radarr that manages and downloads subtitles", "author": "morpheus65535", diff --git a/apps/bazarr/docker-compose.yml b/apps/bazarr/docker-compose.yml index 8998d3a5..f4579b2a 100644 --- a/apps/bazarr/docker-compose.yml +++ b/apps/bazarr/docker-compose.yml @@ -19,9 +19,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.bazarr-web-redirect.redirectscheme.scheme: https + traefik.http.services.bazarr.loadbalancer.server.port: 6767 + # Web + traefik.http.routers.bazarr-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.bazarr-insecure.entrypoints: web + traefik.http.routers.bazarr-insecure.service: bazarr + traefik.http.routers.bazarr-insecure.middlewares: bazarr-web-redirect + # Websecure traefik.http.routers.bazarr.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.bazarr.entrypoints: websecure traefik.http.routers.bazarr.service: bazarr traefik.http.routers.bazarr.tls.certresolver: myresolver - traefik.http.services.bazarr.loadbalancer.server.port: 6767 + # Local domain + traefik.http.routers.bazarr-local-insecure.rule: Host(`bazarr.${LOCAL_DOMAIN}`) + traefik.http.routers.bazarr-local-insecure.entrypoints: web + traefik.http.routers.bazarr-local-insecure.service: bazarr + traefik.http.routers.bazarr-local-insecure.middlewares: bazarr-web-redirect + # Local domain secure + traefik.http.routers.bazarr-local.rule: Host(`bazarr.${LOCAL_DOMAIN}`) + traefik.http.routers.bazarr-local.entrypoints: websecure + traefik.http.routers.bazarr-local.service: bazarr + traefik.http.routers.bazarr-local.tls: true diff --git a/apps/booksonic/config.json b/apps/booksonic/config.json index edf5b386..506df9d6 100644 --- a/apps/booksonic/config.json +++ b/apps/booksonic/config.json @@ -4,7 +4,7 @@ "available": true, "exposable": true, "port": 8040, - "tipi_version": 4, + "tipi_version": 5, "version": "2201.1.0", "id": "booksonic", "categories": ["books", "media"], diff --git a/apps/booksonic/docker-compose.yml b/apps/booksonic/docker-compose.yml index 4d3eb37c..62bdaa15 100644 --- a/apps/booksonic/docker-compose.yml +++ b/apps/booksonic/docker-compose.yml @@ -18,10 +18,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.booksonic-web-redirect.redirectscheme.scheme: https + traefik.http.services.booksonic.loadbalancer.server.port: 4040 + # Web + traefik.http.routers.booksonic-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.booksonic-insecure.entrypoints: web + traefik.http.routers.booksonic-insecure.service: booksonic + traefik.http.routers.booksonic-insecure.middlewares: booksonic-web-redirect + # Websecure traefik.http.routers.booksonic.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.booksonic.entrypoints: websecure traefik.http.routers.booksonic.service: booksonic traefik.http.routers.booksonic.tls.certresolver: myresolver - traefik.http.services.booksonic.loadbalancer.server.port: 4040 - \ No newline at end of file + # Local domain + traefik.http.routers.booksonic-local-insecure.rule: Host(`booksonic.${LOCAL_DOMAIN}`) + traefik.http.routers.booksonic-local-insecure.entrypoints: web + traefik.http.routers.booksonic-local-insecure.service: booksonic + traefik.http.routers.booksonic-local-insecure.middlewares: booksonic-web-redirect + # Local domain secure + traefik.http.routers.booksonic-local.rule: Host(`booksonic.${LOCAL_DOMAIN}`) + traefik.http.routers.booksonic-local.entrypoints: websecure + traefik.http.routers.booksonic-local.service: booksonic + traefik.http.routers.booksonic-local.tls: true diff --git a/apps/bookstack/config.json b/apps/bookstack/config.json index b47e7cb3..c3c80671 100644 --- a/apps/bookstack/config.json +++ b/apps/bookstack/config.json @@ -5,7 +5,7 @@ "exposable": true, "port": 8119, "id": "bookstack", - "tipi_version": 8, + "tipi_version": 9, "version": "23.05.20230503", "description": "BookStack is a simple, self-hosted, easy-to-use platform for organising and storing information. Default login: admin@admin.com password: password", "short_desc": "BookStack is a self-hosted platform for organising and storing information.", diff --git a/apps/bookstack/docker-compose.yml b/apps/bookstack/docker-compose.yml index bd952074..29bd6b99 100644 --- a/apps/bookstack/docker-compose.yml +++ b/apps/bookstack/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: bookstack: image: lscr.io/linuxserver/bookstack:23.05.20230503 @@ -21,12 +21,30 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.bookstack-web-redirect.redirectscheme.scheme: https + traefik.http.services.bookstack.loadbalancer.server.port: 80 + # Web + traefik.http.routers.bookstack-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.bookstack-insecure.entrypoints: web + traefik.http.routers.bookstack-insecure.service: bookstack + traefik.http.routers.bookstack-insecure.middlewares: bookstack-web-redirect + # Websecure traefik.http.routers.bookstack.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.bookstack.entrypoints: websecure traefik.http.routers.bookstack.service: bookstack traefik.http.routers.bookstack.tls.certresolver: myresolver - traefik.http.services.bookstack.loadbalancer.server.port: 80 + # Local domain + traefik.http.routers.bookstack-local-insecure.rule: Host(`bookstack.${LOCAL_DOMAIN}`) + traefik.http.routers.bookstack-local-insecure.entrypoints: web + traefik.http.routers.bookstack-local-insecure.service: bookstack + traefik.http.routers.bookstack-local-insecure.middlewares: bookstack-web-redirect + # Local domain secure + traefik.http.routers.bookstack-local.rule: Host(`bookstack.${LOCAL_DOMAIN}`) + traefik.http.routers.bookstack-local.entrypoints: websecure + traefik.http.routers.bookstack-local.service: bookstack + traefik.http.routers.bookstack-local.tls: true bookstack-db: image: lscr.io/linuxserver/mariadb diff --git a/apps/calibre-web/config.json b/apps/calibre-web/config.json index 94c9e18d..666f7097 100644 --- a/apps/calibre-web/config.json +++ b/apps/calibre-web/config.json @@ -4,12 +4,10 @@ "available": true, "exposable": true, "port": 8100, - "tipi_version": 5, + "tipi_version": 6, "version": "0.6.20", "id": "calibre-web", - "categories": [ - "books" - ], + "categories": ["books"], "description": "On the initial setup screen, enter /books as your calibre library location. \n Default admin login: Username: admin Password: admin123", "short_desc": "Calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database.", "author": "https://github.com/janeczku/", diff --git a/apps/calibre-web/docker-compose.yml b/apps/calibre-web/docker-compose.yml index 85cd46b4..6dfcd801 100644 --- a/apps/calibre-web/docker-compose.yml +++ b/apps/calibre-web/docker-compose.yml @@ -16,9 +16,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.calibre-web-web-redirect.redirectscheme.scheme: https + traefik.http.services.calibre-web.loadbalancer.server.port: 8083 + # Web + traefik.http.routers.calibre-web-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.calibre-web-insecure.entrypoints: web + traefik.http.routers.calibre-web-insecure.service: calibre-web + traefik.http.routers.calibre-web-insecure.middlewares: calibre-web-web-redirect + # Websecure traefik.http.routers.calibre-web.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.calibre-web.entrypoints: websecure traefik.http.routers.calibre-web.service: calibre-web traefik.http.routers.calibre-web.tls.certresolver: myresolver - traefik.http.services.calibre-web.loadbalancer.server.port: 8083 + # Local domain + traefik.http.routers.calibre-web-local-insecure.rule: Host(`calibre-web.${LOCAL_DOMAIN}`) + traefik.http.routers.calibre-web-local-insecure.entrypoints: web + traefik.http.routers.calibre-web-local-insecure.service: calibre-web + traefik.http.routers.calibre-web-local-insecure.middlewares: calibre-web-web-redirect + # Local domain secure + traefik.http.routers.calibre-web-local.rule: Host(`calibre-web.${LOCAL_DOMAIN}`) + traefik.http.routers.calibre-web-local.entrypoints: websecure + traefik.http.routers.calibre-web-local.service: calibre-web + traefik.http.routers.calibre-web-local.tls: true diff --git a/apps/chatgpt-ui/config.json b/apps/chatgpt-ui/config.json index eeb82740..8108b669 100644 --- a/apps/chatgpt-ui/config.json +++ b/apps/chatgpt-ui/config.json @@ -5,18 +5,14 @@ "available": true, "exposable": true, "id": "chatgpt-ui", - "tipi_version": 8, + "tipi_version": 9, "version": "2.5.5", - "categories": [ - "ai" - ], + "categories": ["ai"], "description": "A ChatGPT web client that supports multiple users, multiple languages, and multiple database connections for persistent data storage", "short_desc": "A ChatGPT web client that supports multiple users, multiple languages, and multiple database connections for persistent data storage", "author": "https://github.com/WongSaang", "source": "https://github.com/WongSaang/chatgpt-ui", - "supported_architectures": [ - "amd64" - ], + "supported_architectures": ["amd64"], "form_fields": [ { "type": "random", diff --git a/apps/chatgpt-ui/docker-compose.yml b/apps/chatgpt-ui/docker-compose.yml index 730b3ab8..95a90542 100644 --- a/apps/chatgpt-ui/docker-compose.yml +++ b/apps/chatgpt-ui/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3' +version: "3" services: chatgpt-ui: image: wongsaang/chatgpt-ui-client:v2.5.5 @@ -12,24 +12,42 @@ services: depends_on: - chatgpt-ui-web-server ports: - - '8200:80' + - "8200:80" restart: always networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.chatgpt-ui-web-redirect.redirectscheme.scheme: https + traefik.http.services.chatgpt-ui.loadbalancer.server.port: 80 + # Web + traefik.http.routers.chatgpt-ui-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.chatgpt-ui-insecure.entrypoints: web + traefik.http.routers.chatgpt-ui-insecure.service: chatgpt-ui + traefik.http.routers.chatgpt-ui-insecure.middlewares: chatgpt-ui-web-redirect + # Websecure traefik.http.routers.chatgpt-ui.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.chatgpt-ui.entrypoints: websecure traefik.http.routers.chatgpt-ui.service: chatgpt-ui traefik.http.routers.chatgpt-ui.tls.certresolver: myresolver - traefik.http.services.chatgpt-ui.loadbalancer.server.port: 80 - + # Local domain + traefik.http.routers.chatgpt-ui-local-insecure.rule: Host(`chatgpt-ui.${LOCAL_DOMAIN}`) + traefik.http.routers.chatgpt-ui-local-insecure.entrypoints: web + traefik.http.routers.chatgpt-ui-local-insecure.service: chatgpt-ui + traefik.http.routers.chatgpt-ui-local-insecure.middlewares: chatgpt-ui-web-redirect + # Local domain secure + traefik.http.routers.chatgpt-ui-local.rule: Host(`chatgpt-ui.${LOCAL_DOMAIN}`) + traefik.http.routers.chatgpt-ui-local.entrypoints: websecure + traefik.http.routers.chatgpt-ui-local.service: chatgpt-ui + traefik.http.routers.chatgpt-ui-local.tls: true + chatgpt-ui-wsgi-server: image: wongsaang/chatgpt-ui-wsgi-server:v2.5.1 container_name: chatgpt-ui-wsgi-server environment: - APP_DOMAIN=${INTERNAL_IP}:8201 - - SERVER_WORKERS=3 + - SERVER_WORKERS=3 - WORKER_TIMEOUT=180 - DB_URL=mysql://tipi:${CHATGPT_UI_DB_PASSWORD}@chatgpt-ui-db:3306/chatgptdb - DJANGO_SUPERUSER_USERNAME=${CHATGPT_UI_SUPERUSER_USERNAME} # default superuser name @@ -47,14 +65,14 @@ services: depends_on: - chatgpt-ui-db restart: always - + chatgpt-ui-web-server: image: wongsaang/chatgpt-ui-web-server:v2.5.1 container_name: chatgpt-ui-web-server environment: - BACKEND_URL=http://chatgpt-ui-wsgi-server:8000 ports: - - '8201:80' + - "8201:80" depends_on: - chatgpt-ui-wsgi-server - chatgpt-ui-db diff --git a/apps/chatpad/config.json b/apps/chatpad/config.json index 1f46fbdb..51056f97 100644 --- a/apps/chatpad/config.json +++ b/apps/chatpad/config.json @@ -5,11 +5,9 @@ "exposable": true, "port": 8179, "id": "chatpad", - "tipi_version": 2, + "tipi_version": 3, "version": "latest", - "categories": [ - "ai" - ], + "categories": ["ai"], "description": "Not just another ChatGPT user-interface!", "short_desc": "Not just another ChatGPT user-interface!", "author": "Andrei Canta", diff --git a/apps/chatpad/docker-compose.yml b/apps/chatpad/docker-compose.yml index e991d755..75653251 100644 --- a/apps/chatpad/docker-compose.yml +++ b/apps/chatpad/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: chatpad: image: ghcr.io/deiucanta/chatpad:latest @@ -9,9 +9,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.chatpad-web-redirect.redirectscheme.scheme: https + traefik.http.services.chatpad.loadbalancer.server.port: 80 + # Web + traefik.http.routers.chatpad-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.chatpad-insecure.entrypoints: web + traefik.http.routers.chatpad-insecure.service: chatpad + traefik.http.routers.chatpad-insecure.middlewares: chatpad-web-redirect + # Websecure traefik.http.routers.chatpad.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.chatpad.entrypoints: websecure traefik.http.routers.chatpad.service: chatpad traefik.http.routers.chatpad.tls.certresolver: myresolver - traefik.http.services.chatpad.loadbalancer.server.port: 80 + # Local domain + traefik.http.routers.chatpad-local-insecure.rule: Host(`chatpad.${LOCAL_DOMAIN}`) + traefik.http.routers.chatpad-local-insecure.entrypoints: web + traefik.http.routers.chatpad-local-insecure.service: chatpad + traefik.http.routers.chatpad-local-insecure.middlewares: chatpad-web-redirect + # Local domain secure + traefik.http.routers.chatpad-local.rule: Host(`chatpad.${LOCAL_DOMAIN}`) + traefik.http.routers.chatpad-local.entrypoints: websecure + traefik.http.routers.chatpad-local.service: chatpad + traefik.http.routers.chatpad-local.tls: true diff --git a/apps/code-server/config.json b/apps/code-server/config.json index f6423e0a..1bfc7a97 100644 --- a/apps/code-server/config.json +++ b/apps/code-server/config.json @@ -5,11 +5,9 @@ "exposable": true, "port": 8138, "id": "code-server", - "tipi_version": 8, + "tipi_version": 9, "version": "4.13.0", - "categories": [ - "development" - ], + "categories": ["development"], "description": "", "short_desc": "Code-server is VS Code running on a remote server, accessible through the browser.", "author": "https://github.com/coder", diff --git a/apps/code-server/docker-compose.yml b/apps/code-server/docker-compose.yml index 53f9f024..4df51932 100644 --- a/apps/code-server/docker-compose.yml +++ b/apps/code-server/docker-compose.yml @@ -18,9 +18,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.code-server-web-redirect.redirectscheme.scheme: https + traefik.http.services.code-server.loadbalancer.server.port: 8443 + # Web + traefik.http.routers.code-server-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.code-server-insecure.entrypoints: web + traefik.http.routers.code-server-insecure.service: code-server + traefik.http.routers.code-server-insecure.middlewares: code-server-web-redirect + # Websecure traefik.http.routers.code-server.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.code-server.entrypoints: websecure traefik.http.routers.code-server.service: code-server traefik.http.routers.code-server.tls.certresolver: myresolver - traefik.http.services.code-server.loadbalancer.server.port: 8443 + # Local domain + traefik.http.routers.code-server-local-insecure.rule: Host(`code-server.${LOCAL_DOMAIN}`) + traefik.http.routers.code-server-local-insecure.entrypoints: web + traefik.http.routers.code-server-local-insecure.service: code-server + traefik.http.routers.code-server-local-insecure.middlewares: code-server-web-redirect + # Local domain secure + traefik.http.routers.code-server-local.rule: Host(`code-server.${LOCAL_DOMAIN}`) + traefik.http.routers.code-server-local.entrypoints: websecure + traefik.http.routers.code-server-local.service: code-server + traefik.http.routers.code-server-local.tls: true diff --git a/apps/codex-docs/config.json b/apps/codex-docs/config.json index f67d1747..1d526d03 100644 --- a/apps/codex-docs/config.json +++ b/apps/codex-docs/config.json @@ -5,7 +5,7 @@ "exposable": true, "port": 8101, "id": "codex-docs", - "tipi_version": 1, + "tipi_version": 2, "version": "v2.1", "categories": ["media"], "description": "CodeX Docs is a free docs application. It's based on Editor.js ecosystem which gives all modern opportunities for working with content. You can use it for product documentation, for internal team docs, for personal notes or any other need. ", diff --git a/apps/codex-docs/docker-compose.yml b/apps/codex-docs/docker-compose.yml index a9743496..46fc164d 100644 --- a/apps/codex-docs/docker-compose.yml +++ b/apps/codex-docs/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.2' +version: "3.2" services: codex-docs: @@ -19,12 +19,30 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.codex-docs-web-redirect.redirectscheme.scheme: https + traefik.http.services.codex-docs.loadbalancer.server.port: 3000 + # Web + traefik.http.routers.codex-docs-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.codex-docs-insecure.entrypoints: web + traefik.http.routers.codex-docs-insecure.service: codex-docs + traefik.http.routers.codex-docs-insecure.middlewares: codex-docs-web-redirect + # Websecure traefik.http.routers.codex-docs.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.codex-docs.entrypoints: websecure traefik.http.routers.codex-docs.service: codex-docs traefik.http.routers.codex-docs.tls.certresolver: myresolver - traefik.http.services.codex-docs.loadbalancer.server.port: 3000 + # Local domain + traefik.http.routers.codex-docs-local-insecure.rule: Host(`codex-docs.${LOCAL_DOMAIN}`) + traefik.http.routers.codex-docs-local-insecure.entrypoints: web + traefik.http.routers.codex-docs-local-insecure.service: codex-docs + traefik.http.routers.codex-docs-local-insecure.middlewares: codex-docs-web-redirect + # Local domain secure + traefik.http.routers.codex-docs-local.rule: Host(`codex-docs.${LOCAL_DOMAIN}`) + traefik.http.routers.codex-docs-local.entrypoints: websecure + traefik.http.routers.codex-docs-local.service: codex-docs + traefik.http.routers.codex-docs-local.tls: true codex-db: container_name: codex-db diff --git a/apps/dailytxt/config.json b/apps/dailytxt/config.json index 419cac28..53fbf28e 100644 --- a/apps/dailytxt/config.json +++ b/apps/dailytxt/config.json @@ -5,11 +5,9 @@ "available": true, "exposable": true, "id": "dailytxt", - "tipi_version": 3, + "tipi_version": 4, "version": "1.0.12", - "categories": [ - "utilities" - ], + "categories": ["utilities"], "description": "DailyTxT is an encrypted Diary Web-App to write down your stories of the day and to find them again easily.", "short_desc": "Encrypted Diary Web-App", "author": "PhiTux", diff --git a/apps/dailytxt/docker-compose.yml b/apps/dailytxt/docker-compose.yml index 04036b7b..ee946f77 100644 --- a/apps/dailytxt/docker-compose.yml +++ b/apps/dailytxt/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: dailytxt: @@ -15,13 +15,31 @@ services: ports: - ${APP_PORT}:8765 volumes: - - '${APP_DATA_DIR}/data/dailytxt:/app/data/' + - "${APP_DATA_DIR}/data/dailytxt:/app/data/" networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.dailytxt-web-redirect.redirectscheme.scheme: https + traefik.http.services.dailytxt.loadbalancer.server.port: 8765 + # Web + traefik.http.routers.dailytxt-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.dailytxt-insecure.entrypoints: web + traefik.http.routers.dailytxt-insecure.service: dailytxt + traefik.http.routers.dailytxt-insecure.middlewares: dailytxt-web-redirect + # Websecure traefik.http.routers.dailytxt.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.dailytxt.entrypoints: websecure traefik.http.routers.dailytxt.service: dailytxt traefik.http.routers.dailytxt.tls.certresolver: myresolver - traefik.http.services.dailytxt.loadbalancer.server.port: 8765 + # Local domain + traefik.http.routers.dailytxt-local-insecure.rule: Host(`dailytxt.${LOCAL_DOMAIN}`) + traefik.http.routers.dailytxt-local-insecure.entrypoints: web + traefik.http.routers.dailytxt-local-insecure.service: dailytxt + traefik.http.routers.dailytxt-local-insecure.middlewares: dailytxt-web-redirect + # Local domain secure + traefik.http.routers.dailytxt-local.rule: Host(`dailytxt.${LOCAL_DOMAIN}`) + traefik.http.routers.dailytxt-local.entrypoints: websecure + traefik.http.routers.dailytxt-local.service: dailytxt + traefik.http.routers.dailytxt-local.tls: true diff --git a/apps/dashdot/config.json b/apps/dashdot/config.json index be17e054..4e761a6a 100644 --- a/apps/dashdot/config.json +++ b/apps/dashdot/config.json @@ -5,11 +5,9 @@ "available": true, "exposable": true, "id": "dashdot", - "tipi_version": 3, + "tipi_version": 4, "version": "5.2.1", - "categories": [ - "utilities" - ], + "categories": ["utilities"], "description": "dash. (or dashdot) is a modern server dashboard, running on the latest tech, designed with glassmorphism in mind. It is intended to be used for smaller VPS and private servers.", "short_desc": "A simple, modern server dashboard, primarily used by smaller private server", "author": "MauriceNino", diff --git a/apps/dashdot/docker-compose.yml b/apps/dashdot/docker-compose.yml index 1d01bf0f..0560ea3f 100644 --- a/apps/dashdot/docker-compose.yml +++ b/apps/dashdot/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.5' +version: "3.5" services: dashdot: image: mauricenino/dashdot:5.2.1 @@ -20,9 +20,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.dashdot-web-redirect.redirectscheme.scheme: https + traefik.http.services.dashdot.loadbalancer.server.port: 3001 + # Web + traefik.http.routers.dashdot-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.dashdot-insecure.entrypoints: web + traefik.http.routers.dashdot-insecure.service: dashdot + traefik.http.routers.dashdot-insecure.middlewares: dashdot-web-redirect + # Websecure traefik.http.routers.dashdot.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.dashdot.entrypoints: websecure traefik.http.routers.dashdot.service: dashdot traefik.http.routers.dashdot.tls.certresolver: myresolver - traefik.http.services.dashdot.loadbalancer.server.port: 3001 + # Local domain + traefik.http.routers.dashdot-local-insecure.rule: Host(`dashdot.${LOCAL_DOMAIN}`) + traefik.http.routers.dashdot-local-insecure.entrypoints: web + traefik.http.routers.dashdot-local-insecure.service: dashdot + traefik.http.routers.dashdot-local-insecure.middlewares: dashdot-web-redirect + # Local domain secure + traefik.http.routers.dashdot-local.rule: Host(`dashdot.${LOCAL_DOMAIN}`) + traefik.http.routers.dashdot-local.entrypoints: websecure + traefik.http.routers.dashdot-local.service: dashdot + traefik.http.routers.dashdot-local.tls: true diff --git a/apps/deemix/config.json b/apps/deemix/config.json index 116bdeae..d41b4abd 100644 --- a/apps/deemix/config.json +++ b/apps/deemix/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "deemix", - "tipi_version": 1, + "tipi_version": 2, "version": "latest", "categories": ["media", "music"], "description": "deemix is a barebone deezer downloader library built from the ashes of Deezloader Remix.", diff --git a/apps/deemix/docker-compose.yml b/apps/deemix/docker-compose.yml index 8224e785..7dee8960 100644 --- a/apps/deemix/docker-compose.yml +++ b/apps/deemix/docker-compose.yml @@ -19,9 +19,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.deemix-web-redirect.redirectscheme.scheme: https + traefik.http.services.deemix.loadbalancer.server.port: 6595 + # Web + traefik.http.routers.deemix-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.deemix-insecure.entrypoints: web + traefik.http.routers.deemix-insecure.service: deemix + traefik.http.routers.deemix-insecure.middlewares: deemix-web-redirect + # Websecure traefik.http.routers.deemix.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.deemix.entrypoints: websecure traefik.http.routers.deemix.service: deemix traefik.http.routers.deemix.tls.certresolver: myresolver - traefik.http.services.deemix.loadbalancer.server.port: 6595 \ No newline at end of file + # Local domain + traefik.http.routers.deemix-local-insecure.rule: Host(`deemix.${LOCAL_DOMAIN}`) + traefik.http.routers.deemix-local-insecure.entrypoints: web + traefik.http.routers.deemix-local-insecure.service: deemix + traefik.http.routers.deemix-local-insecure.middlewares: deemix-web-redirect + # Local domain secure + traefik.http.routers.deemix-local.rule: Host(`deemix.${LOCAL_DOMAIN}`) + traefik.http.routers.deemix-local.entrypoints: websecure + traefik.http.routers.deemix-local.service: deemix + traefik.http.routers.deemix-local.tls: true diff --git a/apps/deluge/config.json b/apps/deluge/config.json index 7d32f6cb..f713415a 100644 --- a/apps/deluge/config.json +++ b/apps/deluge/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "deluge", - "tipi_version": 2, + "tipi_version": 3, "version": "2.1.1", "categories": ["utilities"], "description": "Deluge is a lightweight, Free Software, cross-platform BitTorrent client.", diff --git a/apps/deluge/docker-compose.yml b/apps/deluge/docker-compose.yml index 0c9bef55..ef078bd0 100644 --- a/apps/deluge/docker-compose.yml +++ b/apps/deluge/docker-compose.yml @@ -1,4 +1,4 @@ -version: '2.1' +version: "2.1" services: deluge: image: lscr.io/linuxserver/deluge:2.1.1 @@ -19,9 +19,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.deluge-web-redirect.redirectscheme.scheme: https + traefik.http.services.deluge.loadbalancer.server.port: 8112 + # Web + traefik.http.routers.deluge-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.deluge-insecure.entrypoints: web + traefik.http.routers.deluge-insecure.service: deluge + traefik.http.routers.deluge-insecure.middlewares: deluge-web-redirect + # Websecure traefik.http.routers.deluge.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.deluge.entrypoints: websecure traefik.http.routers.deluge.service: deluge traefik.http.routers.deluge.tls.certresolver: myresolver - traefik.http.services.deluge.loadbalancer.server.port: 8112 + # Local domain + traefik.http.routers.deluge-local-insecure.rule: Host(`deluge.${LOCAL_DOMAIN}`) + traefik.http.routers.deluge-local-insecure.entrypoints: web + traefik.http.routers.deluge-local-insecure.service: deluge + traefik.http.routers.deluge-local-insecure.middlewares: deluge-web-redirect + # Local domain secure + traefik.http.routers.deluge-local.rule: Host(`deluge.${LOCAL_DOMAIN}`) + traefik.http.routers.deluge-local.entrypoints: websecure + traefik.http.routers.deluge-local.service: deluge + traefik.http.routers.deluge-local.tls: true diff --git a/apps/dokuwiki/config.json b/apps/dokuwiki/config.json index 9129efe6..b7e0e78c 100644 --- a/apps/dokuwiki/config.json +++ b/apps/dokuwiki/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "dokuwiki", - "tipi_version": 1, + "tipi_version": 2, "version": "2022-07-31a-ls158", "categories": ["media"], "description": "DokuWiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database. It is loved by users for its clean and readable syntax. The ease of maintenance, backup and integration makes it an administrator's favorite. Built in access controls and authentication connectors make DokuWiki especially useful in the enterprise context and the large number of plugins contributed by its vibrant community allow for a broad range of use cases beyond a traditional wiki.", diff --git a/apps/dokuwiki/docker-compose.yml b/apps/dokuwiki/docker-compose.yml index c16a97c1..0b908dc5 100644 --- a/apps/dokuwiki/docker-compose.yml +++ b/apps/dokuwiki/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3' +version: "3" services: dokuwiki: @@ -13,9 +13,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.dokuwiki-web-redirect.redirectscheme.scheme: https + traefik.http.services.dokuwiki.loadbalancer.server.port: 80 + # Web + traefik.http.routers.dokuwiki-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.dokuwiki-insecure.entrypoints: web + traefik.http.routers.dokuwiki-insecure.service: dokuwiki + traefik.http.routers.dokuwiki-insecure.middlewares: dokuwiki-web-redirect + # Websecure traefik.http.routers.dokuwiki.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.dokuwiki.entrypoints: websecure traefik.http.routers.dokuwiki.service: dokuwiki traefik.http.routers.dokuwiki.tls.certresolver: myresolver - traefik.http.services.dokuwiki.loadbalancer.server.port: 80 + # Local domain + traefik.http.routers.dokuwiki-local-insecure.rule: Host(`dokuwiki.${LOCAL_DOMAIN}`) + traefik.http.routers.dokuwiki-local-insecure.entrypoints: web + traefik.http.routers.dokuwiki-local-insecure.service: dokuwiki + traefik.http.routers.dokuwiki-local-insecure.middlewares: dokuwiki-web-redirect + # Local domain secure + traefik.http.routers.dokuwiki-local.rule: Host(`dokuwiki.${LOCAL_DOMAIN}`) + traefik.http.routers.dokuwiki-local.entrypoints: websecure + traefik.http.routers.dokuwiki-local.service: dokuwiki + traefik.http.routers.dokuwiki-local.tls: true diff --git a/apps/dozzle/config.json b/apps/dozzle/config.json index 19a32c8c..bb15b97e 100644 --- a/apps/dozzle/config.json +++ b/apps/dozzle/config.json @@ -5,7 +5,7 @@ "exposable": true, "port": 8013, "id": "dozzle", - "tipi_version": 1, + "tipi_version": 2, "version": "latest", "categories": ["development"], "description": "Dozzle is a small web based app to monitor Docker logs.", diff --git a/apps/dozzle/docker-compose.yml b/apps/dozzle/docker-compose.yml index 5f260c3b..9515d706 100644 --- a/apps/dozzle/docker-compose.yml +++ b/apps/dozzle/docker-compose.yml @@ -15,10 +15,27 @@ services: - DOZZLE_USERNAME=${DOZZLE_USERNAME} - DOZZLE_PASSWORD=${DOZZLE_PASSWORD} labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.dozzle-web-redirect.redirectscheme.scheme: https + traefik.http.services.dozzle.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.dozzle-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.dozzle-insecure.entrypoints: web + traefik.http.routers.dozzle-insecure.service: dozzle + traefik.http.routers.dozzle-insecure.middlewares: dozzle-web-redirect + # Websecure traefik.http.routers.dozzle.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.dozzle.entrypoints: websecure traefik.http.routers.dozzle.service: dozzle traefik.http.routers.dozzle.tls.certresolver: myresolver - traefik.http.services.dozzle.loadbalancer.server.port: 8080 - + # Local domain + traefik.http.routers.dozzle-local-insecure.rule: Host(`dozzle.${LOCAL_DOMAIN}`) + traefik.http.routers.dozzle-local-insecure.entrypoints: web + traefik.http.routers.dozzle-local-insecure.service: dozzle + traefik.http.routers.dozzle-local-insecure.middlewares: dozzle-web-redirect + # Local domain secure + traefik.http.routers.dozzle-local.rule: Host(`dozzle.${LOCAL_DOMAIN}`) + traefik.http.routers.dozzle-local.entrypoints: websecure + traefik.http.routers.dozzle-local.service: dozzle + traefik.http.routers.dozzle-local.tls: true diff --git a/apps/duplicati/config.json b/apps/duplicati/config.json index 522af331..50c80860 100644 --- a/apps/duplicati/config.json +++ b/apps/duplicati/config.json @@ -5,11 +5,9 @@ "available": true, "exposable": true, "id": "duplicati", - "tipi_version": 2, + "tipi_version": 3, "version": "2.0.7", - "categories": [ - "data" - ], + "categories": ["data"], "description": "Duplicati is a free, open source, backup client that securely stores encrypted, incremental, compressed backups on cloud storage services and remote file servers.", "short_desc": "Store securely encrypted backups in the cloud!", "author": "https://github.com/duplicati", diff --git a/apps/duplicati/docker-compose.yml b/apps/duplicati/docker-compose.yml index 9717b443..f65f6eaa 100644 --- a/apps/duplicati/docker-compose.yml +++ b/apps/duplicati/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: duplicati: @@ -17,9 +17,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.duplicati-web-redirect.redirectscheme.scheme: https + traefik.http.services.duplicati.loadbalancer.server.port: 8200 + # Web + traefik.http.routers.duplicati-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.duplicati-insecure.entrypoints: web + traefik.http.routers.duplicati-insecure.service: duplicati + traefik.http.routers.duplicati-insecure.middlewares: duplicati-web-redirect + # Websecure traefik.http.routers.duplicati.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.duplicati.entrypoints: websecure traefik.http.routers.duplicati.service: duplicati traefik.http.routers.duplicati.tls.certresolver: myresolver - traefik.http.services.duplicati.loadbalancer.server.port: 8200 + # Local domain + traefik.http.routers.duplicati-local-insecure.rule: Host(`duplicati.${LOCAL_DOMAIN}`) + traefik.http.routers.duplicati-local-insecure.entrypoints: web + traefik.http.routers.duplicati-local-insecure.service: duplicati + traefik.http.routers.duplicati-local-insecure.middlewares: duplicati-web-redirect + # Local domain secure + traefik.http.routers.duplicati-local.rule: Host(`duplicati.${LOCAL_DOMAIN}`) + traefik.http.routers.duplicati-local.entrypoints: websecure + traefik.http.routers.duplicati-local.service: duplicati + traefik.http.routers.duplicati-local.tls: true diff --git a/apps/emulatorjs/config.json b/apps/emulatorjs/config.json index 0b49d45f..914f2754 100644 --- a/apps/emulatorjs/config.json +++ b/apps/emulatorjs/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "emulatorjs", - "tipi_version": 1, + "tipi_version": 2, "version": "1.7.2", "categories": ["gaming"], "description": "Self-hosted Javascript emulation for various system.", diff --git a/apps/emulatorjs/docker-compose.yml b/apps/emulatorjs/docker-compose.yml index 28634532..00be35a7 100644 --- a/apps/emulatorjs/docker-compose.yml +++ b/apps/emulatorjs/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: emulatorjs: @@ -16,9 +16,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.emulatorjs-web-redirect.redirectscheme.scheme: https + traefik.http.services.emulatorjs.loadbalancer.server.port: 80 + # Web + traefik.http.routers.emulatorjs-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.emulatorjs-insecure.entrypoints: web + traefik.http.routers.emulatorjs-insecure.service: emulatorjs + traefik.http.routers.emulatorjs-insecure.middlewares: emulatorjs-web-redirect + # Websecure traefik.http.routers.emulatorjs.rule: Host(`${APP_DOMAIN}`) - traefik.http.routers.appname.entrypoints: websecure + traefik.http.routers.emulatorjs.entrypoints: websecure traefik.http.routers.emulatorjs.service: emulatorjs traefik.http.routers.emulatorjs.tls.certresolver: myresolver - traefik.http.services.emulatorjs.loadbalancer.server.port: 80 + # Local domain + traefik.http.routers.emulatorjs-local-insecure.rule: Host(`emulatorjs.${LOCAL_DOMAIN}`) + traefik.http.routers.emulatorjs-local-insecure.entrypoints: web + traefik.http.routers.emulatorjs-local-insecure.service: emulatorjs + traefik.http.routers.emulatorjs-local-insecure.middlewares: emulatorjs-web-redirect + # Local domain secure + traefik.http.routers.emulatorjs-local.rule: Host(`emulatorjs.${LOCAL_DOMAIN}`) + traefik.http.routers.emulatorjs-local.entrypoints: websecure + traefik.http.routers.emulatorjs-local.service: emulatorjs + traefik.http.routers.emulatorjs-local.tls: true diff --git a/apps/excalidraw/config.json b/apps/excalidraw/config.json index 1ad319dd..f1f77eb1 100644 --- a/apps/excalidraw/config.json +++ b/apps/excalidraw/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "excalidraw", - "tipi_version": 1, + "tipi_version": 2, "version": "latest", "categories": ["utilities"], "description": "Virtual whiteboard for sketching hand-drawn like diagrams", diff --git a/apps/excalidraw/docker-compose.yml b/apps/excalidraw/docker-compose.yml index f61a13f4..8ee7b612 100644 --- a/apps/excalidraw/docker-compose.yml +++ b/apps/excalidraw/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: excalidraw: @@ -10,9 +10,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.excalidraw-web-redirect.redirectscheme.scheme: https + traefik.http.services.excalidraw.loadbalancer.server.port: 80 + # Web + traefik.http.routers.excalidraw-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.excalidraw-insecure.entrypoints: web + traefik.http.routers.excalidraw-insecure.service: excalidraw + traefik.http.routers.excalidraw-insecure.middlewares: excalidraw-web-redirect + # Websecure traefik.http.routers.excalidraw.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.excalidraw.entrypoints: websecure traefik.http.routers.excalidraw.service: excalidraw traefik.http.routers.excalidraw.tls.certresolver: myresolver - traefik.http.services.excalidraw.loadbalancer.server.port: 80 + # Local domain + traefik.http.routers.excalidraw-local-insecure.rule: Host(`excalidraw.${LOCAL_DOMAIN}`) + traefik.http.routers.excalidraw-local-insecure.entrypoints: web + traefik.http.routers.excalidraw-local-insecure.service: excalidraw + traefik.http.routers.excalidraw-local-insecure.middlewares: excalidraw-web-redirect + # Local domain secure + traefik.http.routers.excalidraw-local.rule: Host(`excalidraw.${LOCAL_DOMAIN}`) + traefik.http.routers.excalidraw-local.entrypoints: websecure + traefik.http.routers.excalidraw-local.service: excalidraw + traefik.http.routers.excalidraw-local.tls: true diff --git a/apps/filebrowser/config.json b/apps/filebrowser/config.json index 1e7bab8e..8636cdff 100644 --- a/apps/filebrowser/config.json +++ b/apps/filebrowser/config.json @@ -5,7 +5,7 @@ "exposable": true, "port": 8096, "id": "filebrowser", - "tipi_version": 2, + "tipi_version": 3, "version": "s6", "categories": ["utilities"], "description": "Reliable and Performant File Management Desktop Sync and File Sharing\n Default credentials: admin / admin", diff --git a/apps/filebrowser/docker-compose.yml b/apps/filebrowser/docker-compose.yml index b9c58ec7..00cc0598 100644 --- a/apps/filebrowser/docker-compose.yml +++ b/apps/filebrowser/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: filebrowser: container_name: filebrowser @@ -16,9 +16,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.filebrowser-web-redirect.redirectscheme.scheme: https + traefik.http.services.filebrowser.loadbalancer.server.port: 80 + # Web + traefik.http.routers.filebrowser-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.filebrowser-insecure.entrypoints: web + traefik.http.routers.filebrowser-insecure.service: filebrowser + traefik.http.routers.filebrowser-insecure.middlewares: filebrowser-web-redirect + # Websecure traefik.http.routers.filebrowser.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.filebrowser.entrypoints: websecure traefik.http.routers.filebrowser.service: filebrowser traefik.http.routers.filebrowser.tls.certresolver: myresolver - traefik.http.services.filebrowser.loadbalancer.server.port: 80 + # Local domain + traefik.http.routers.filebrowser-local-insecure.rule: Host(`filebrowser.${LOCAL_DOMAIN}`) + traefik.http.routers.filebrowser-local-insecure.entrypoints: web + traefik.http.routers.filebrowser-local-insecure.service: filebrowser + traefik.http.routers.filebrowser-local-insecure.middlewares: filebrowser-web-redirect + # Local domain secure + traefik.http.routers.filebrowser-local.rule: Host(`filebrowser.${LOCAL_DOMAIN}`) + traefik.http.routers.filebrowser-local.entrypoints: websecure + traefik.http.routers.filebrowser-local.service: filebrowser + traefik.http.routers.filebrowser-local.tls: true diff --git a/apps/filestash/config.json b/apps/filestash/config.json index 4a77cc34..4573fd59 100644 --- a/apps/filestash/config.json +++ b/apps/filestash/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "filestash", - "tipi_version": 1, + "tipi_version": 2, "version": "397fd8b", "categories": ["utilities"], "description": "A modern web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze", @@ -18,7 +18,7 @@ "label": "(Optional) Google Drive Client ID", "required": false, "env_variable": "FILESTASH_GDRIVE_CLIENT_ID" - }, + }, { "type": "text", "label": "(Optional) Google Drive Client Secret", diff --git a/apps/filestash/docker-compose.yml b/apps/filestash/docker-compose.yml index 250bbdff..6f53490e 100644 --- a/apps/filestash/docker-compose.yml +++ b/apps/filestash/docker-compose.yml @@ -1,28 +1,46 @@ -version: '2' +version: "2" services: filestash: container_name: filestash image: machines/filestash:397fd8b restart: unless-stopped environment: - - APPLICATION_URL=${APP_DOMAIN} - - GDRIVE_CLIENT_ID=${FILESTASH_GDRIVE_CLIENT_ID} - - GDRIVE_CLIENT_SECRET=${FILESTASH_GDRIVE_CLIENT_SECRET} - - DROPBOX_CLIENT_ID=${FILESTASH_DROPBOX_CLIENT_ID} - - ONLYOFFICE_URL=http://filestash-onlyoffice + - APPLICATION_URL=${APP_DOMAIN} + - GDRIVE_CLIENT_ID=${FILESTASH_GDRIVE_CLIENT_ID} + - GDRIVE_CLIENT_SECRET=${FILESTASH_GDRIVE_CLIENT_SECRET} + - DROPBOX_CLIENT_ID=${FILESTASH_DROPBOX_CLIENT_ID} + - ONLYOFFICE_URL=http://filestash-onlyoffice ports: - - ${APP_PORT}:8334 + - ${APP_PORT}:8334 depends_on: - filestash-onlyoffice networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.filestash-web-redirect.redirectscheme.scheme: https + traefik.http.services.filestash.loadbalancer.server.port: 8334 + # Web + traefik.http.routers.filestash-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.filestash-insecure.entrypoints: web + traefik.http.routers.filestash-insecure.service: filestash + traefik.http.routers.filestash-insecure.middlewares: filestash-web-redirect + # Websecure traefik.http.routers.filestash.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.filestash.entrypoints: websecure traefik.http.routers.filestash.service: filestash traefik.http.routers.filestash.tls.certresolver: myresolver - traefik.http.services.filestash.loadbalancer.server.port: 8334 + # Local domain + traefik.http.routers.filestash-local-insecure.rule: Host(`filestash.${LOCAL_DOMAIN}`) + traefik.http.routers.filestash-local-insecure.entrypoints: web + traefik.http.routers.filestash-local-insecure.service: filestash + traefik.http.routers.filestash-local-insecure.middlewares: filestash-web-redirect + # Local domain secure + traefik.http.routers.filestash-local.rule: Host(`filestash.${LOCAL_DOMAIN}`) + traefik.http.routers.filestash-local.entrypoints: websecure + traefik.http.routers.filestash-local.service: filestash + traefik.http.routers.filestash-local.tls: true filestash-onlyoffice: container_name: filestash_oods @@ -32,4 +50,3 @@ services: - seccomp:unconfined networks: - tipi_main_network - diff --git a/apps/firefly-iii/config.json b/apps/firefly-iii/config.json index 89c6e157..df24cc98 100644 --- a/apps/firefly-iii/config.json +++ b/apps/firefly-iii/config.json @@ -4,7 +4,7 @@ "available": true, "exposable": true, "port": 8115, - "tipi_version": 3, + "tipi_version": 4, "version": "version-5.7.11", "id": "firefly-iii", "categories": ["finance"], diff --git a/apps/firefly-iii/docker-compose.yml b/apps/firefly-iii/docker-compose.yml index 44369aa8..3c6bccf7 100644 --- a/apps/firefly-iii/docker-compose.yml +++ b/apps/firefly-iii/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.9' +version: "3.9" services: firefly-iii: @@ -43,16 +43,34 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.firefly-iii-web-redirect.redirectscheme.scheme: https + traefik.http.services.firefly-iii.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.firefly-iii-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.firefly-iii-insecure.entrypoints: web + traefik.http.routers.firefly-iii-insecure.service: firefly-iii + traefik.http.routers.firefly-iii-insecure.middlewares: firefly-iii-web-redirect + # Websecure traefik.http.routers.firefly-iii.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.firefly-iii.entrypoints: websecure traefik.http.routers.firefly-iii.service: firefly-iii traefik.http.routers.firefly-iii.tls.certresolver: myresolver - traefik.http.services.firefly-iii.loadbalancer.server.port: 8080 - + # Local domain + traefik.http.routers.firefly-iii-local-insecure.rule: Host(`firefly-iii.${LOCAL_DOMAIN}`) + traefik.http.routers.firefly-iii-local-insecure.entrypoints: web + traefik.http.routers.firefly-iii-local-insecure.service: firefly-iii + traefik.http.routers.firefly-iii-local-insecure.middlewares: firefly-iii-web-redirect + # Local domain secure + traefik.http.routers.firefly-iii-local.rule: Host(`firefly-iii.${LOCAL_DOMAIN}`) + traefik.http.routers.firefly-iii-local.entrypoints: websecure + traefik.http.routers.firefly-iii-local.service: firefly-iii + traefik.http.routers.firefly-iii-local.tls: true + firefly-iii-db: container_name: firefly-iii-db - image: mariadb + image: mariadb hostname: fireflyiii-db restart: unless-stopped environment: diff --git a/apps/fireshare/config.json b/apps/fireshare/config.json index c7932de9..5388f3b5 100644 --- a/apps/fireshare/config.json +++ b/apps/fireshare/config.json @@ -5,11 +5,9 @@ "available": true, "exposable": true, "id": "fireshare", - "tipi_version": 2, + "tipi_version": 3, "version": "1.2.9", - "categories": [ - "development" - ], + "categories": ["development"], "description": "Self host your media and share with unique links. Share your game clips, videos, or other media via unique links.", "short_desc": "Self host your media and share with unique links", "author": "https://github.com/ShaneIsrael", diff --git a/apps/fireshare/docker-compose.yml b/apps/fireshare/docker-compose.yml index 798de21c..61dd9010 100644 --- a/apps/fireshare/docker-compose.yml +++ b/apps/fireshare/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3' +version: "3" services: fireshare: @@ -20,9 +20,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.fireshare-web-redirect.redirectscheme.scheme: https + traefik.http.services.fireshare.loadbalancer.server.port: 80 + # Web + traefik.http.routers.fireshare-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.fireshare-insecure.entrypoints: web + traefik.http.routers.fireshare-insecure.service: fireshare + traefik.http.routers.fireshare-insecure.middlewares: fireshare-web-redirect + # Websecure traefik.http.routers.fireshare.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.fireshare.entrypoints: websecure traefik.http.routers.fireshare.service: fireshare traefik.http.routers.fireshare.tls.certresolver: myresolver - traefik.http.services.fireshare.loadbalancer.server.port: 80 + # Local domain + traefik.http.routers.fireshare-local-insecure.rule: Host(`fireshare.${LOCAL_DOMAIN}`) + traefik.http.routers.fireshare-local-insecure.entrypoints: web + traefik.http.routers.fireshare-local-insecure.service: fireshare + traefik.http.routers.fireshare-local-insecure.middlewares: fireshare-web-redirect + # Local domain secure + traefik.http.routers.fireshare-local.rule: Host(`fireshare.${LOCAL_DOMAIN}`) + traefik.http.routers.fireshare-local.entrypoints: websecure + traefik.http.routers.fireshare-local.service: fireshare + traefik.http.routers.fireshare-local.tls: true diff --git a/apps/flatnotes/config.json b/apps/flatnotes/config.json index 07115061..05c84093 100644 --- a/apps/flatnotes/config.json +++ b/apps/flatnotes/config.json @@ -5,11 +5,9 @@ "exposable": true, "id": "flatnotes", "port": 8137, - "tipi_version": 6, + "tipi_version": 7, "version": "3.1.0", - "categories": [ - "utilities" - ], + "categories": ["utilities"], "description": "A self-hosted, database-less note taking web app that utilises a flat folder of markdown files for storage.", "short_desc": "A self-hosted, database-less note taking web app", "author": "Dullage", diff --git a/apps/flatnotes/docker-compose.yml b/apps/flatnotes/docker-compose.yml index 43565798..7850604f 100644 --- a/apps/flatnotes/docker-compose.yml +++ b/apps/flatnotes/docker-compose.yml @@ -13,16 +13,34 @@ services: volumes: - "${APP_DATA_DIR}/data:/data" # - "./index:/app/data/.flatnotes" - # Optional. Allows you to save the search index in a different location. + # Optional. Allows you to save the search index in a different location. ports: - ${APP_PORT}:8080 restart: unless-stopped networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.flatnotes-web-redirect.redirectscheme.scheme: https + traefik.http.services.flatnotes.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.flatnotes-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.flatnotes-insecure.entrypoints: web + traefik.http.routers.flatnotes-insecure.service: flatnotes + traefik.http.routers.flatnotes-insecure.middlewares: flatnotes-web-redirect + # Websecure traefik.http.routers.flatnotes.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.flatnotes.entrypoints: websecure traefik.http.routers.flatnotes.service: flatnotes traefik.http.routers.flatnotes.tls.certresolver: myresolver - traefik.http.services.flatnotes.loadbalancer.server.port: 8080 \ No newline at end of file + # Local domain + traefik.http.routers.flatnotes-local-insecure.rule: Host(`flatnotes.${LOCAL_DOMAIN}`) + traefik.http.routers.flatnotes-local-insecure.entrypoints: web + traefik.http.routers.flatnotes-local-insecure.service: flatnotes + traefik.http.routers.flatnotes-local-insecure.middlewares: flatnotes-web-redirect + # Local domain secure + traefik.http.routers.flatnotes-local.rule: Host(`flatnotes.${LOCAL_DOMAIN}`) + traefik.http.routers.flatnotes-local.entrypoints: websecure + traefik.http.routers.flatnotes-local.service: flatnotes + traefik.http.routers.flatnotes-local.tls: true diff --git a/apps/freshrss/config.json b/apps/freshrss/config.json index 4bbdfe33..a9199562 100644 --- a/apps/freshrss/config.json +++ b/apps/freshrss/config.json @@ -5,11 +5,9 @@ "exposable": true, "port": 8086, "id": "freshrss", - "tipi_version": 4, + "tipi_version": 5, "version": "1.21.0", - "categories": [ - "utilities" - ], + "categories": ["utilities"], "description": "FreshRSS is a self-hosted RSS feed aggregator like Leed or Kriss Feed.\nIt is lightweight, easy to work with, powerful, and customizable.\n\nIt is a multi-user application with an anonymous reading mode. It supports custom tags. There is an API for (mobile) clients, and a Command-Line Interface.\n\nThanks to the WebSub standard (formerly PubSubHubbub), FreshRSS is able to receive instant push notifications from compatible sources, such as Mastodon, Friendica, WordPress, Blogger, FeedBurner, etc.\n\nFreshRSS natively supports basic Web scraping, based on XPath, for Web sites not providing any RSS / Atom feed.\n\nFinally, it supports extensions for further tuning.", "short_desc": "A free, self-hostable aggregator… ", "author": "https://freshrss.org/", diff --git a/apps/freshrss/docker-compose.yml b/apps/freshrss/docker-compose.yml index 88924f13..384b5446 100644 --- a/apps/freshrss/docker-compose.yml +++ b/apps/freshrss/docker-compose.yml @@ -16,9 +16,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.freshrss-web-redirect.redirectscheme.scheme: https + traefik.http.services.freshrss.loadbalancer.server.port: 80 + # Web + traefik.http.routers.freshrss-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.freshrss-insecure.entrypoints: web + traefik.http.routers.freshrss-insecure.service: freshrss + traefik.http.routers.freshrss-insecure.middlewares: freshrss-web-redirect + # Websecure traefik.http.routers.freshrss.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.freshrss.entrypoints: websecure traefik.http.routers.freshrss.service: freshrss traefik.http.routers.freshrss.tls.certresolver: myresolver - traefik.http.services.freshrss.loadbalancer.server.port: 80 \ No newline at end of file + # Local domain + traefik.http.routers.freshrss-local-insecure.rule: Host(`freshrss.${LOCAL_DOMAIN}`) + traefik.http.routers.freshrss-local-insecure.entrypoints: web + traefik.http.routers.freshrss-local-insecure.service: freshrss + traefik.http.routers.freshrss-local-insecure.middlewares: freshrss-web-redirect + # Local domain secure + traefik.http.routers.freshrss-local.rule: Host(`freshrss.${LOCAL_DOMAIN}`) + traefik.http.routers.freshrss-local.entrypoints: websecure + traefik.http.routers.freshrss-local.service: freshrss + traefik.http.routers.freshrss-local.tls: true diff --git a/apps/ghost/config.json b/apps/ghost/config.json index e4d9f46a..79f3d62f 100644 --- a/apps/ghost/config.json +++ b/apps/ghost/config.json @@ -5,12 +5,9 @@ "available": true, "exposable": true, "id": "ghost", - "tipi_version": 21, + "tipi_version": 22, "version": "5.49.3", - "categories": [ - "social", - "media" - ], + "categories": ["social", "media"], "description": "Ghost is a powerful app for new-media creators to publish, share, and grow a business around their content. It comes with modern tools to build a website, publish content, send newsletters & offer paid subscriptions to members.", "short_desc": "Ghost - Turn your audience into a business.", "author": "TryGhost", diff --git a/apps/ghost/docker-compose.yml b/apps/ghost/docker-compose.yml index 7915cca3..003983cf 100644 --- a/apps/ghost/docker-compose.yml +++ b/apps/ghost/docker-compose.yml @@ -1,12 +1,11 @@ -version: '3.9' +version: "3.9" services: - ghost: image: ghost:5.49.3 container_name: ghost depends_on: - - ghostdb + - ghostdb restart: unless-stopped ports: - ${APP_PORT}:2368 @@ -23,12 +22,30 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.ghost-web-redirect.redirectscheme.scheme: https + traefik.http.services.ghost.loadbalancer.server.port: 2368 + # Web + traefik.http.routers.ghost-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.ghost-insecure.entrypoints: web + traefik.http.routers.ghost-insecure.service: ghost + traefik.http.routers.ghost-insecure.middlewares: ghost-web-redirect + # Websecure traefik.http.routers.ghost.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.ghost.entrypoints: websecure traefik.http.routers.ghost.service: ghost traefik.http.routers.ghost.tls.certresolver: myresolver - traefik.http.services.ghost.loadbalancer.server.port: 2368 + # Local domain + traefik.http.routers.ghost-local-insecure.rule: Host(`ghost.${LOCAL_DOMAIN}`) + traefik.http.routers.ghost-local-insecure.entrypoints: web + traefik.http.routers.ghost-local-insecure.service: ghost + traefik.http.routers.ghost-local-insecure.middlewares: ghost-web-redirect + # Local domain secure + traefik.http.routers.ghost-local.rule: Host(`ghost.${LOCAL_DOMAIN}`) + traefik.http.routers.ghost-local.entrypoints: websecure + traefik.http.routers.ghost-local.service: ghost + traefik.http.routers.ghost-local.tls: true ghostdb: container_name: ghostdb @@ -41,4 +58,4 @@ services: volumes: - ${APP_DATA_DIR}/data/db:/var/lib/mysql networks: - - tipi_main_network \ No newline at end of file + - tipi_main_network diff --git a/apps/gitea/config.json b/apps/gitea/config.json index 48c1884b..623534b0 100644 --- a/apps/gitea/config.json +++ b/apps/gitea/config.json @@ -5,11 +5,9 @@ "available": true, "exposable": true, "id": "gitea", - "tipi_version": 7, + "tipi_version": 8, "version": "1.19.3", - "categories": [ - "development" - ], + "categories": ["development"], "description": "Gitea is a painless self-hosted Git service. It is similar to GitHub, Bitbucket, and GitLab. Gitea is a fork of Gogs. See the Gitea Announcement blog post to read about the justification for a fork.", "short_desc": "Gitea - Git with a cup of tea · A painless self-hosted Git service. · Cross-platform · Easy to install · Lightweight · Open Source.", "author": "go-gitea", diff --git a/apps/gitea/docker-compose.yml b/apps/gitea/docker-compose.yml index 56e5d17b..51bb6b01 100644 --- a/apps/gitea/docker-compose.yml +++ b/apps/gitea/docker-compose.yml @@ -23,12 +23,30 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.gitea-web-redirect.redirectscheme.scheme: https + traefik.http.services.gitea.loadbalancer.server.port: 3000 + # Web + traefik.http.routers.gitea-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.gitea-insecure.entrypoints: web + traefik.http.routers.gitea-insecure.service: gitea + traefik.http.routers.gitea-insecure.middlewares: gitea-web-redirect + # Websecure traefik.http.routers.gitea.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.gitea.entrypoints: websecure traefik.http.routers.gitea.service: gitea traefik.http.routers.gitea.tls.certresolver: myresolver - traefik.http.services.gitea.loadbalancer.server.port: 3000 + # Local domain + traefik.http.routers.gitea-local-insecure.rule: Host(`gitea.${LOCAL_DOMAIN}`) + traefik.http.routers.gitea-local-insecure.entrypoints: web + traefik.http.routers.gitea-local-insecure.service: gitea + traefik.http.routers.gitea-local-insecure.middlewares: gitea-web-redirect + # Local domain secure + traefik.http.routers.gitea-local.rule: Host(`gitea.${LOCAL_DOMAIN}`) + traefik.http.routers.gitea-local.entrypoints: websecure + traefik.http.routers.gitea-local.service: gitea + traefik.http.routers.gitea-local.tls: true gitea-db: container_name: gitea-db diff --git a/apps/gotify/config.json b/apps/gotify/config.json index 64db6f98..eb092e69 100644 --- a/apps/gotify/config.json +++ b/apps/gotify/config.json @@ -5,7 +5,7 @@ "port": 8129, "id": "gotify", "exposable": true, - "tipi_version": 2, + "tipi_version": 3, "version": "2.2.4", "categories": ["utilities"], "description": "Simple server for sending and receiving notification messages.", diff --git a/apps/gotify/docker-compose.arm.yml b/apps/gotify/docker-compose.arm.yml index d361c39c..9d17f001 100644 --- a/apps/gotify/docker-compose.arm.yml +++ b/apps/gotify/docker-compose.arm.yml @@ -14,17 +14,31 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} - # Traefik Redirect to HTTPS - traefik.http.middlewares.redirect-https.redirectScheme.scheme: https - traefik.http.middlewares.redirect-https.redirectScheme.permanent: true - # Traefik Router + Service Configuration + # Main + traefik.enable: true + traefik.http.middlewares.gotify-web-redirect.redirectscheme.scheme: https + traefik.http.middlewares.gotify-web-redirect.redirectscheme.permanent: true + traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto: http + traefik.http.services.gotify.loadbalancer.server.port: 80 + traefik.http.services.gotify.loadbalancer.passhostheader: true + traefik.http.services.gotify.loadbalancer.sticky: true + # Web + traefik.http.routers.gotify-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.gotify-insecure.entrypoints: web + traefik.http.routers.gotify-insecure.service: gotify + traefik.http.routers.gotify-insecure.middlewares: gotify-web-redirect + # Websecure traefik.http.routers.gotify.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.gotify.entrypoints: websecure - traefik.http.routers.gotify.tls.certresolver: myresolver - traefik.http.routers.gotify.middlewares: redirect-https traefik.http.routers.gotify.service: gotify - traefik.http.services.gotify.loadbalancer.passhostheader: true - traefik.http.services.gotify.loadbalancer.server.port: 80 - traefik.http.services.gotify.loadbalancer.sticky: true - traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto: http + traefik.http.routers.gotify.tls.certresolver: myresolver + # Local domain + traefik.http.routers.gotify-local-insecure.rule: Host(`gotify.${LOCAL_DOMAIN}`) + traefik.http.routers.gotify-local-insecure.entrypoints: web + traefik.http.routers.gotify-local-insecure.service: gotify + traefik.http.routers.gotify-local-insecure.middlewares: gotify-web-redirect + # Local domain secure + traefik.http.routers.gotify-local.rule: Host(`gotify.${LOCAL_DOMAIN}`) + traefik.http.routers.gotify-local.entrypoints: websecure + traefik.http.routers.gotify-local.service: gotify + traefik.http.routers.gotify-local.tls: true diff --git a/apps/gotify/docker-compose.arm64.yml b/apps/gotify/docker-compose.arm64.yml index 02d73011..b0a52087 100644 --- a/apps/gotify/docker-compose.arm64.yml +++ b/apps/gotify/docker-compose.arm64.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: gotify: @@ -6,7 +6,7 @@ services: container_name: gotify restart: unless-stopped volumes: - - '${APP_DATA_DIR}/data:/app/data' + - "${APP_DATA_DIR}/data:/app/data" environment: - GOTIFY_DEFAULTUSER_PASS=${GOTIFY_DEFAULTUSER_PASS} ports: @@ -14,17 +14,31 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} - # Traefik Redirect to HTTPS - traefik.http.middlewares.redirect-https.redirectScheme.scheme: https - traefik.http.middlewares.redirect-https.redirectScheme.permanent: true - # Traefik Router + Service Configuration + # Main + traefik.enable: true + traefik.http.middlewares.gotify-web-redirect.redirectscheme.scheme: https + traefik.http.middlewares.gotify-web-redirect.redirectscheme.permanent: true + traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto: http + traefik.http.services.gotify.loadbalancer.server.port: 80 + traefik.http.services.gotify.loadbalancer.passhostheader: true + traefik.http.services.gotify.loadbalancer.sticky: true + # Web + traefik.http.routers.gotify-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.gotify-insecure.entrypoints: web + traefik.http.routers.gotify-insecure.service: gotify + traefik.http.routers.gotify-insecure.middlewares: gotify-web-redirect + # Websecure traefik.http.routers.gotify.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.gotify.entrypoints: websecure - traefik.http.routers.gotify.tls.certresolver: myresolver - traefik.http.routers.gotify.middlewares: redirect-https traefik.http.routers.gotify.service: gotify - traefik.http.services.gotify.loadbalancer.passhostheader: true - traefik.http.services.gotify.loadbalancer.server.port: 80 - traefik.http.services.gotify.loadbalancer.sticky: true - traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto: http + traefik.http.routers.gotify.tls.certresolver: myresolver + # Local domain + traefik.http.routers.gotify-local-insecure.rule: Host(`gotify.${LOCAL_DOMAIN}`) + traefik.http.routers.gotify-local-insecure.entrypoints: web + traefik.http.routers.gotify-local-insecure.service: gotify + traefik.http.routers.gotify-local-insecure.middlewares: gotify-web-redirect + # Local domain secure + traefik.http.routers.gotify-local.rule: Host(`gotify.${LOCAL_DOMAIN}`) + traefik.http.routers.gotify-local.entrypoints: websecure + traefik.http.routers.gotify-local.service: gotify + traefik.http.routers.gotify-local.tls: true diff --git a/apps/gotify/docker-compose.yml b/apps/gotify/docker-compose.yml index 6da3d15a..bf2173f9 100644 --- a/apps/gotify/docker-compose.yml +++ b/apps/gotify/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.7' +version: "3.7" services: gotify: @@ -6,7 +6,7 @@ services: container_name: gotify restart: unless-stopped volumes: - - '${APP_DATA_DIR}/data:/app/data' + - "${APP_DATA_DIR}/data:/app/data" environment: - GOTIFY_DEFAULTUSER_NAME=${GOTIFY_DEFAULTUSER_NAME} - GOTIFY_DEFAULTUSER_PASS=${GOTIFY_DEFAULTUSER_PASS} @@ -15,17 +15,31 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} - # Traefik Redirect to HTTPS - traefik.http.middlewares.redirect-https.redirectScheme.scheme: https - traefik.http.middlewares.redirect-https.redirectScheme.permanent: true - # Traefik Router + Service Configuration + # Main + traefik.enable: true + traefik.http.middlewares.gotify-web-redirect.redirectscheme.scheme: https + traefik.http.middlewares.gotify-web-redirect.redirectscheme.permanent: true + traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto: http + traefik.http.services.gotify.loadbalancer.server.port: 80 + traefik.http.services.gotify.loadbalancer.passhostheader: true + traefik.http.services.gotify.loadbalancer.sticky: true + # Web + traefik.http.routers.gotify-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.gotify-insecure.entrypoints: web + traefik.http.routers.gotify-insecure.service: gotify + traefik.http.routers.gotify-insecure.middlewares: gotify-web-redirect + # Websecure traefik.http.routers.gotify.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.gotify.entrypoints: websecure - traefik.http.routers.gotify.tls.certresolver: myresolver - traefik.http.routers.gotify.middlewares: redirect-https traefik.http.routers.gotify.service: gotify - traefik.http.services.gotify.loadbalancer.passhostheader: true - traefik.http.services.gotify.loadbalancer.server.port: 80 - traefik.http.services.gotify.loadbalancer.sticky: true - traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto: http + traefik.http.routers.gotify.tls.certresolver: myresolver + # Local domain + traefik.http.routers.gotify-local-insecure.rule: Host(`gotify.${LOCAL_DOMAIN}`) + traefik.http.routers.gotify-local-insecure.entrypoints: web + traefik.http.routers.gotify-local-insecure.service: gotify + traefik.http.routers.gotify-local-insecure.middlewares: gotify-web-redirect + # Local domain secure + traefik.http.routers.gotify-local.rule: Host(`gotify.${LOCAL_DOMAIN}`) + traefik.http.routers.gotify-local.entrypoints: websecure + traefik.http.routers.gotify-local.service: gotify + traefik.http.routers.gotify-local.tls: true diff --git a/apps/gotosocial/config.json b/apps/gotosocial/config.json index 77075372..33bf0ca5 100644 --- a/apps/gotosocial/config.json +++ b/apps/gotosocial/config.json @@ -6,13 +6,11 @@ "exposable": true, "force_expose": true, "id": "gotosocial", - "tipi_version": 4, + "tipi_version": 5, "uid": 1000, "gid": 1000, "version": "0.9.0", - "categories": [ - "social" - ], + "categories": ["social"], "description": "Fast, fun, ActivityPub server, powered by Go.", "short_desc": "Fast, fun, ActivityPub server, powered by Go.", "author": "superseriousbusiness", diff --git a/apps/gotosocial/docker-compose.yml b/apps/gotosocial/docker-compose.yml index 09f177bf..7059254e 100644 --- a/apps/gotosocial/docker-compose.yml +++ b/apps/gotosocial/docker-compose.yml @@ -30,13 +30,31 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.gotosocial-web-redirect.redirectscheme.scheme: https + traefik.http.services.gotosocial.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.gotosocial-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.gotosocial-insecure.entrypoints: web + traefik.http.routers.gotosocial-insecure.service: gotosocial + traefik.http.routers.gotosocial-insecure.middlewares: gotosocial-web-redirect + # Websecure traefik.http.routers.gotosocial.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.gotosocial.entrypoints: websecure traefik.http.routers.gotosocial.service: gotosocial traefik.http.routers.gotosocial.tls.certresolver: myresolver - traefik.http.services.gotosocial.loadbalancer.server.port: 8080 - + # Local domain + traefik.http.routers.gotosocial-local-insecure.rule: Host(`gotosocial.${LOCAL_DOMAIN}`) + traefik.http.routers.gotosocial-local-insecure.entrypoints: web + traefik.http.routers.gotosocial-local-insecure.service: gotosocial + traefik.http.routers.gotosocial-local-insecure.middlewares: gotosocial-web-redirect + # Local domain secure + traefik.http.routers.gotosocial-local.rule: Host(`gotosocial.${LOCAL_DOMAIN}`) + traefik.http.routers.gotosocial-local.entrypoints: websecure + traefik.http.routers.gotosocial-local.service: gotosocial + traefik.http.routers.gotosocial-local.tls: true + gotosocial-db: container_name: gotosocial-db image: postgres:14 @@ -49,4 +67,4 @@ services: - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data restart: unless-stopped networks: - - tipi_main_network \ No newline at end of file + - tipi_main_network diff --git a/apps/grafana/config.json b/apps/grafana/config.json index 45dcd750..2f6fb6e9 100644 --- a/apps/grafana/config.json +++ b/apps/grafana/config.json @@ -5,11 +5,9 @@ "available": true, "exposable": true, "id": "grafana", - "tipi_version": 6, + "tipi_version": 7, "version": "9.5.3", - "categories": [ - "data" - ], + "categories": ["data"], "description": "The open and composable observability and data visualization platform", "short_desc": "The open and composable observability and data visualization platform", "author": "Grafana Labs", diff --git a/apps/grafana/docker-compose.yml b/apps/grafana/docker-compose.yml index de028137..bc274e14 100644 --- a/apps/grafana/docker-compose.yml +++ b/apps/grafana/docker-compose.yml @@ -6,15 +6,32 @@ services: image: grafana/grafana-oss:9.5.3 ports: - ${APP_PORT}:3000 - user: "1000" volumes: - ${APP_DATA_DIR}/data/grafana:/var/lib/grafana networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.grafana-web-redirect.redirectscheme.scheme: https + traefik.http.services.grafana.loadbalancer.server.port: 3000 + # Web + traefik.http.routers.grafana-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.grafana-insecure.entrypoints: web + traefik.http.routers.grafana-insecure.service: grafana + traefik.http.routers.grafana-insecure.middlewares: grafana-web-redirect + # Websecure traefik.http.routers.grafana.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.grafana.entrypoints: websecure traefik.http.routers.grafana.service: grafana traefik.http.routers.grafana.tls.certresolver: myresolver - traefik.http.services.grafana.loadbalancer.server.port: 3000 + # Local domain + traefik.http.routers.grafana-local-insecure.rule: Host(`grafana.${LOCAL_DOMAIN}`) + traefik.http.routers.grafana-local-insecure.entrypoints: web + traefik.http.routers.grafana-local-insecure.service: grafana + traefik.http.routers.grafana-local-insecure.middlewares: grafana-web-redirect + # Local domain secure + traefik.http.routers.grafana-local.rule: Host(`grafana.${LOCAL_DOMAIN}`) + traefik.http.routers.grafana-local.entrypoints: websecure + traefik.http.routers.grafana-local.service: grafana + traefik.http.routers.grafana-local.tls: true diff --git a/apps/grav/config.json b/apps/grav/config.json index b5409e65..392e3739 100644 --- a/apps/grav/config.json +++ b/apps/grav/config.json @@ -5,7 +5,7 @@ "available": true, "exposable": true, "id": "grav", - "tipi_version": 1, + "tipi_version": 2, "version": "1.7.39.4-ls97", "categories": ["social", "media"], "description": "Grav is a Fast, Simple, and Flexible, file-based Web-platform. There is Zero installation required. It follows similar principles to other flat-file CMS platforms, but has a different design philosophy than most. Grav comes with a powerful Package Management System to allow for simple installation and upgrading of plugins and themes, as well as simple updating of Grav itself.", diff --git a/apps/grav/docker-compose.yml b/apps/grav/docker-compose.yml index d6846cdf..d6310164 100644 --- a/apps/grav/docker-compose.yml +++ b/apps/grav/docker-compose.yml @@ -15,9 +15,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.grav-web-redirect.redirectscheme.scheme: https + traefik.http.services.grav.loadbalancer.server.port: 80 + # Web + traefik.http.routers.grav-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.grav-insecure.entrypoints: web + traefik.http.routers.grav-insecure.service: grav + traefik.http.routers.grav-insecure.middlewares: grav-web-redirect + # Websecure traefik.http.routers.grav.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.grav.entrypoints: websecure traefik.http.routers.grav.service: grav traefik.http.routers.grav.tls.certresolver: myresolver - traefik.http.services.grav.loadbalancer.server.port: 80 \ No newline at end of file + # Local domain + traefik.http.routers.grav-local-insecure.rule: Host(`grav.${LOCAL_DOMAIN}`) + traefik.http.routers.grav-local-insecure.entrypoints: web + traefik.http.routers.grav-local-insecure.service: grav + traefik.http.routers.grav-local-insecure.middlewares: grav-web-redirect + # Local domain secure + traefik.http.routers.grav-local.rule: Host(`grav.${LOCAL_DOMAIN}`) + traefik.http.routers.grav-local.entrypoints: websecure + traefik.http.routers.grav-local.service: grav + traefik.http.routers.grav-local.tls: true diff --git a/apps/grocy/config.json b/apps/grocy/config.json index 4f94df1d..9e29c487 100644 --- a/apps/grocy/config.json +++ b/apps/grocy/config.json @@ -3,14 +3,11 @@ "name": "Grocy", "available": true, "exposable": true, - "tipi_version": 2, + "tipi_version": 3, "version": "3.3.2", "port": 8136, "id": "grocy", - "categories": [ - "automation", - "finance" - ], + "categories": ["automation", "finance"], "description": "grocy is a web-based self-hosted groceries & household management solution for your home", "short_desc": "ERP beyond your fridge", "author": "berrnd", diff --git a/apps/grocy/docker-compose.yml b/apps/grocy/docker-compose.yml index 3ed86593..7dc3804b 100644 --- a/apps/grocy/docker-compose.yml +++ b/apps/grocy/docker-compose.yml @@ -15,9 +15,27 @@ services: networks: - tipi_main_network labels: - traefik.enable: ${APP_EXPOSED} + # Main + traefik.enable: true + traefik.http.middlewares.grocy-web-redirect.redirectscheme.scheme: https + traefik.http.services.grocy.loadbalancer.server.port: 80 + # Web + traefik.http.routers.grocy-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.grocy-insecure.entrypoints: web + traefik.http.routers.grocy-insecure.service: grocy + traefik.http.routers.grocy-insecure.middlewares: grocy-web-redirect + # Websecure traefik.http.routers.grocy.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.grocy.entrypoints: websecure traefik.http.routers.grocy.service: grocy traefik.http.routers.grocy.tls.certresolver: myresolver - traefik.http.services.grocy.loadbalancer.server.port: 80 + # Local domain + traefik.http.routers.grocy-local-insecure.rule: Host(`grocy.${LOCAL_DOMAIN}`) + traefik.http.routers.grocy-local-insecure.entrypoints: web + traefik.http.routers.grocy-local-insecure.service: grocy + traefik.http.routers.grocy-local-insecure.middlewares: grocy-web-redirect + # Local domain secure + traefik.http.routers.grocy-local.rule: Host(`grocy.${LOCAL_DOMAIN}`) + traefik.http.routers.grocy-local.entrypoints: websecure + traefik.http.routers.grocy-local.service: grocy + traefik.http.routers.grocy-local.tls: true