diff --git a/Apps/MetaFeederAniList/docker-compose.yml b/Apps/MetaFeederAniList/docker-compose.yml index 9fea76a..8d9fdd6 100644 --- a/Apps/MetaFeederAniList/docker-compose.yml +++ b/Apps/MetaFeederAniList/docker-compose.yml @@ -48,48 +48,8 @@ services: retries: 10 start_period: 5s networks: - - metafeederanilist - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the feeder's config page behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). The gateway still reaches the feeder directly on `pcs`; index → /config. - # --------------------------------------------------------------------------- - metafeederanilist: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metafeederanilist - hostname: metafeederanilist - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metafeederanilist-feeder" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metafeederanilist-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metafeederanilist-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metafeederanilist-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metafeederanilist-feeder - networks: - - metafeederanilist - - pcs - networks: - metafeederanilist: - name: metafeederanilist - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -101,9 +61,6 @@ x-casaos: author: Worph Team category: Media developer: Aptero Team - main: metafeederanilist - webui_port: 80 - index: /config description: en_us: | @@ -149,7 +106,7 @@ x-casaos: dashboard's *Add a feeder* box — name `anilist-feeder`, URL `http://metafeederanilist-feeder:8080`. The gateway restarts itself: feeder discovery is startup-only. No other setup. For chapters, also install **MetaFeeder · Suwayomi**. - **Authentication:** the config UI is protected by Yundera's Authelia (OIDC). + **No web UI of its own:** configure it from the **MetaGateway** dashboard → this feeder → *configure* (the gateway proxies this feeder's config page, behind the gateway's login). # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -163,6 +120,3 @@ x-compose-app: - path: /DATA/AppData/metafeederanilist/state user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metafeederanilist-${domain} - webui-path: "/config" diff --git a/Apps/MetaFeederArxiv/docker-compose.yml b/Apps/MetaFeederArxiv/docker-compose.yml index 640b98e..a1a04cb 100644 --- a/Apps/MetaFeederArxiv/docker-compose.yml +++ b/Apps/MetaFeederArxiv/docker-compose.yml @@ -44,48 +44,8 @@ services: retries: 10 start_period: 5s networks: - - metafeederarxiv - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the feeder's config page behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). The gateway still reaches the feeder directly on `pcs`; index → /config. - # --------------------------------------------------------------------------- - metafeederarxiv: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metafeederarxiv - hostname: metafeederarxiv - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metafeederarxiv-feeder" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metafeederarxiv-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metafeederarxiv-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metafeederarxiv-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metafeederarxiv-feeder - networks: - - metafeederarxiv - - pcs - networks: - metafeederarxiv: - name: metafeederarxiv - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -97,9 +57,6 @@ x-casaos: author: Worph Team category: Media developer: Aptero Team - main: metafeederarxiv - webui_port: 80 - index: /config description: en_us: | @@ -137,7 +94,7 @@ x-casaos: dashboard's *Add a feeder* box — name `arxiv-feeder`, URL `http://metafeederarxiv-feeder:8080`. The gateway restarts itself: feeder discovery is startup-only. No other setup. - **Authentication:** the config UI is protected by Yundera's Authelia (OIDC). + **No web UI of its own:** configure it from the **MetaGateway** dashboard → this feeder → *configure* (the gateway proxies this feeder's config page, behind the gateway's login). # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -151,6 +108,3 @@ x-compose-app: - path: /DATA/AppData/metafeederarxiv/state user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metafeederarxiv-${domain} - webui-path: "/config" diff --git a/Apps/MetaFeederEuropePMC/docker-compose.yml b/Apps/MetaFeederEuropePMC/docker-compose.yml index 8bdad19..fefeb5e 100644 --- a/Apps/MetaFeederEuropePMC/docker-compose.yml +++ b/Apps/MetaFeederEuropePMC/docker-compose.yml @@ -44,48 +44,8 @@ services: retries: 10 start_period: 5s networks: - - metafeedereuropepmc - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the feeder's config page behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). The gateway still reaches the feeder directly on `pcs`; index → /config. - # --------------------------------------------------------------------------- - metafeedereuropepmc: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metafeedereuropepmc - hostname: metafeedereuropepmc - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metafeedereuropepmc-feeder" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metafeedereuropepmc-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metafeedereuropepmc-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metafeedereuropepmc-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metafeedereuropepmc-feeder - networks: - - metafeedereuropepmc - - pcs - networks: - metafeedereuropepmc: - name: metafeedereuropepmc - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -97,9 +57,6 @@ x-casaos: author: Worph Team category: Media developer: Aptero Team - main: metafeedereuropepmc - webui_port: 80 - index: /config description: en_us: | @@ -138,7 +95,7 @@ x-casaos: dashboard's *Add a feeder* box — name `europepmc-feeder`, URL `http://metafeedereuropepmc-feeder:8080`. The gateway restarts itself: feeder discovery is startup-only. No other setup. - **Authentication:** the config UI is protected by Yundera's Authelia (OIDC). + **No web UI of its own:** configure it from the **MetaGateway** dashboard → this feeder → *configure* (the gateway proxies this feeder's config page, behind the gateway's login). # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -152,6 +109,3 @@ x-compose-app: - path: /DATA/AppData/metafeedereuropepmc/state user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metafeedereuropepmc-${domain} - webui-path: "/config" diff --git a/Apps/MetaFeederGiphy/docker-compose.yml b/Apps/MetaFeederGiphy/docker-compose.yml index 91242c0..2ca3c0c 100644 --- a/Apps/MetaFeederGiphy/docker-compose.yml +++ b/Apps/MetaFeederGiphy/docker-compose.yml @@ -46,48 +46,8 @@ services: retries: 10 start_period: 5s networks: - - metafeedergiphy - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the feeder's config page behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). The gateway still reaches the feeder directly on `pcs`; index → /config. - # --------------------------------------------------------------------------- - metafeedergiphy: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metafeedergiphy - hostname: metafeedergiphy - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metafeedergiphy-feeder" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metafeedergiphy-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metafeedergiphy-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metafeedergiphy-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metafeedergiphy-feeder - networks: - - metafeedergiphy - - pcs - networks: - metafeedergiphy: - name: metafeedergiphy - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -99,9 +59,6 @@ x-casaos: author: Worph Team category: Media developer: Aptero Team - main: metafeedergiphy - webui_port: 80 - index: /config description: en_us: | @@ -142,7 +99,7 @@ x-casaos: **API key:** set `GIPHY_API_KEY` in this app's environment (developers.giphy.com), then restart the app. Without it the feeder soft-skips. - **Authentication:** the config UI is protected by Yundera's Authelia (OIDC). + **No web UI of its own:** configure it from the **MetaGateway** dashboard → this feeder → *configure* (the gateway proxies this feeder's config page, behind the gateway's login). # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -156,6 +113,3 @@ x-compose-app: - path: /DATA/AppData/metafeedergiphy/state user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metafeedergiphy-${domain} - webui-path: "/config" diff --git a/Apps/MetaFeederGutenberg/docker-compose.yml b/Apps/MetaFeederGutenberg/docker-compose.yml index 77d24d7..1081ad9 100644 --- a/Apps/MetaFeederGutenberg/docker-compose.yml +++ b/Apps/MetaFeederGutenberg/docker-compose.yml @@ -38,48 +38,8 @@ services: retries: 10 start_period: 5s networks: - - metafeedergutenberg - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the feeder's config page behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). The gateway still reaches the feeder directly on `pcs`; index → /config. - # --------------------------------------------------------------------------- - metafeedergutenberg: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metafeedergutenberg - hostname: metafeedergutenberg - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metafeedergutenberg-feeder" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metafeedergutenberg-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metafeedergutenberg-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metafeedergutenberg-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metafeedergutenberg-feeder - networks: - - metafeedergutenberg - - pcs - networks: - metafeedergutenberg: - name: metafeedergutenberg - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -91,9 +51,6 @@ x-casaos: author: Worph Team category: Media developer: Aptero Team - main: metafeedergutenberg - webui_port: 80 - index: /config description: en_us: | @@ -136,7 +93,7 @@ x-casaos: is listed in its feeders config (`http://metafeedergutenberg-feeder:8080`) so it gets discovered (or add it from the gateway dashboard). No other setup. - **Authentication:** the config UI is protected by Yundera's Authelia (OIDC). + **No web UI of its own:** configure it from the **MetaGateway** dashboard → this feeder → *configure* (the gateway proxies this feeder's config page, behind the gateway's login). # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -150,6 +107,3 @@ x-compose-app: - path: /DATA/AppData/metafeedergutenberg/state user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metafeedergutenberg-${domain} - webui-path: "/config" diff --git a/Apps/MetaFeederInternetArchive/docker-compose.yml b/Apps/MetaFeederInternetArchive/docker-compose.yml index da7232b..71ae73f 100644 --- a/Apps/MetaFeederInternetArchive/docker-compose.yml +++ b/Apps/MetaFeederInternetArchive/docker-compose.yml @@ -22,8 +22,8 @@ name: metafeederinternetarchive services: # --------------------------------------------------------------------------- # metafeederinternetarchive-feeder — the feeder itself. The gateway reaches it directly on - # `pcs` for discovery/query/compute; the human sees it through the AppShield - # gate below. + # `pcs` for discovery/query/compute; the human configures it + # from the MetaGateway dashboard (configure panel). # --------------------------------------------------------------------------- metafeederinternetarchive-feeder: image: ghcr.io/worph/meta-feeder-internetarchive:1.1.2 @@ -53,48 +53,8 @@ services: retries: 10 start_period: 5s networks: - - metafeederinternetarchive - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the feeder's config page behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). The gateway still reaches the feeder directly on `pcs`; index → /config. - # --------------------------------------------------------------------------- - metafeederinternetarchive: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metafeederinternetarchive - hostname: metafeederinternetarchive - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metafeederinternetarchive-feeder" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metafeederinternetarchive-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metafeederinternetarchive-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metafeederinternetarchive-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metafeederinternetarchive-feeder - networks: - - metafeederinternetarchive - - pcs - networks: - metafeederinternetarchive: - name: metafeederinternetarchive - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -106,9 +66,6 @@ x-casaos: author: Worph Team category: Media developer: Aptero Team - main: metafeederinternetarchive - webui_port: 80 - index: /config description: en_us: | @@ -153,7 +110,7 @@ x-casaos: The gateway restarts itself: feeder discovery is startup-only. No API key and no account: the feeder answers as soon as the gateway discovers it. Pairs with **MetaListen** for a music client. - **Authentication:** the config UI is protected by Yundera's Authelia (OIDC). + **No web UI of its own:** configure it from the **MetaGateway** dashboard → this feeder → *configure* (the gateway proxies this feeder's config page, behind the gateway's login). # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -167,6 +124,3 @@ x-compose-app: - path: /DATA/AppData/metafeederinternetarchive/state user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metafeederinternetarchive-${domain} - webui-path: "/config" diff --git a/Apps/MetaFeederJamendo/docker-compose.yml b/Apps/MetaFeederJamendo/docker-compose.yml index bf1a67c..f97c986 100644 --- a/Apps/MetaFeederJamendo/docker-compose.yml +++ b/Apps/MetaFeederJamendo/docker-compose.yml @@ -23,8 +23,8 @@ name: metafeederjamendo services: # --------------------------------------------------------------------------- # metafeederjamendo-feeder — the feeder itself. The gateway reaches it directly on - # `pcs` for discovery/query/compute; the human sees it through the AppShield - # gate below. + # `pcs` for discovery/query/compute; the human configures it + # from the MetaGateway dashboard (configure panel). # --------------------------------------------------------------------------- metafeederjamendo-feeder: image: ghcr.io/worph/meta-feeder-jamendo:1.1.2 @@ -56,48 +56,8 @@ services: retries: 10 start_period: 5s networks: - - metafeederjamendo - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the feeder's config page behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). The gateway still reaches the feeder directly on `pcs`; index → /config. - # --------------------------------------------------------------------------- - metafeederjamendo: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metafeederjamendo - hostname: metafeederjamendo - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metafeederjamendo-feeder" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metafeederjamendo-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metafeederjamendo-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metafeederjamendo-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metafeederjamendo-feeder - networks: - - metafeederjamendo - - pcs - networks: - metafeederjamendo: - name: metafeederjamendo - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -109,9 +69,6 @@ x-casaos: author: Worph Team category: Media developer: Aptero Team - main: metafeederjamendo - webui_port: 80 - index: /config description: en_us: | @@ -160,7 +117,7 @@ x-casaos: **Client id:** register a free app at developer.jamendo.com, set `JAMENDO_CLIENT_ID` in this app's environment, then restart the app. Without it the feeder soft-skips. Pairs with **MetaListen**. - **Authentication:** the config UI is protected by Yundera's Authelia (OIDC). + **No web UI of its own:** configure it from the **MetaGateway** dashboard → this feeder → *configure* (the gateway proxies this feeder's config page, behind the gateway's login). # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -174,6 +131,3 @@ x-compose-app: - path: /DATA/AppData/metafeederjamendo/state user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metafeederjamendo-${domain} - webui-path: "/config" diff --git a/Apps/MetaFeederMusicBrainz/docker-compose.yml b/Apps/MetaFeederMusicBrainz/docker-compose.yml index 2d91df3..8af8fbc 100644 --- a/Apps/MetaFeederMusicBrainz/docker-compose.yml +++ b/Apps/MetaFeederMusicBrainz/docker-compose.yml @@ -25,8 +25,8 @@ name: metafeedermusicbrainz services: # --------------------------------------------------------------------------- # metafeedermusicbrainz-feeder — the feeder itself. The gateway reaches it directly on - # `pcs` for discovery/query/compute; the human sees it through the AppShield - # gate below. + # `pcs` for discovery/query/compute; the human configures it + # from the MetaGateway dashboard (configure panel). # --------------------------------------------------------------------------- metafeedermusicbrainz-feeder: image: ghcr.io/worph/meta-feeder-musicbrainz:1.1.2 @@ -55,48 +55,8 @@ services: retries: 10 start_period: 5s networks: - - metafeedermusicbrainz - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the feeder's config page behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). The gateway still reaches the feeder directly on `pcs`; index → /config. - # --------------------------------------------------------------------------- - metafeedermusicbrainz: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metafeedermusicbrainz - hostname: metafeedermusicbrainz - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metafeedermusicbrainz-feeder" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metafeedermusicbrainz-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metafeedermusicbrainz-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metafeedermusicbrainz-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metafeedermusicbrainz-feeder - networks: - - metafeedermusicbrainz - - pcs - networks: - metafeedermusicbrainz: - name: metafeedermusicbrainz - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -108,9 +68,6 @@ x-casaos: author: Worph Team category: Media developer: Aptero Team - main: metafeedermusicbrainz - webui_port: 80 - index: /config description: en_us: | @@ -161,7 +118,7 @@ x-casaos: No API key. For anything playable, also install a bytes tier (**MetaFeeder · Internet Archive**, **MetaFeeder · Jamendo**) or **MetaFeeder · YouTube**. Pairs with **MetaListen**. - **Authentication:** the config UI is protected by Yundera's Authelia (OIDC). + **No web UI of its own:** configure it from the **MetaGateway** dashboard → this feeder → *configure* (the gateway proxies this feeder's config page, behind the gateway's login). # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -175,6 +132,3 @@ x-compose-app: - path: /DATA/AppData/metafeedermusicbrainz/state user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metafeedermusicbrainz-${domain} - webui-path: "/config" diff --git a/Apps/MetaFeederOpenSubtitles/docker-compose.yml b/Apps/MetaFeederOpenSubtitles/docker-compose.yml index c020f05..3bfe276 100644 --- a/Apps/MetaFeederOpenSubtitles/docker-compose.yml +++ b/Apps/MetaFeederOpenSubtitles/docker-compose.yml @@ -36,7 +36,7 @@ services: # --------------------------------------------------------------------------- # metafeederopensubtitles-feeder — the feeder (meta-feeder-opensubtitles) hosting # the `opensubtitles` upstream. The gateway core reaches it directly on `pcs` - # for discovery/query; the human configures it through the AppShield gate below. + # for discovery/query; the human configures it from the MetaGateway dashboard (configure panel). # --------------------------------------------------------------------------- metafeederopensubtitles-feeder: image: ghcr.io/worph/meta-feeder-opensubtitles:1.0.2 @@ -57,7 +57,7 @@ services: environment: # INFRA-ONLY env (the "config: no env if in webui" rule). The OpenSubtitles # API key and User-Agent are read from the persisted config.json written by - # this feeder's config page (behind the AppShield gate below). + # this feeder's config page (opened from the MetaGateway dashboard (configure panel)). # OPENSUBTITLES_API_KEY / OPENSUBTITLES_USER_AGENT exist only as first-boot # seeds; don't set them here. META_FEEDER_STATE_DIR is left at its default # (/data/meta-feeder), which is what the volume below mounts. @@ -74,49 +74,8 @@ services: retries: 10 start_period: 5s networks: - - metafeederopensubtitles - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the feeder's config UI (set the OpenSubtitles API key) - # behind Yundera OIDC SSO. container_name == subdomain prefix. The gateway - # still reaches the feeder directly on `pcs` (this gate is for the human - # only); index → /config. - # --------------------------------------------------------------------------- - metafeederopensubtitles: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metafeederopensubtitles - hostname: metafeederopensubtitles - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metafeederopensubtitles-feeder" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metafeederopensubtitles-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metafeederopensubtitles-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metafeederopensubtitles-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metafeederopensubtitles-feeder - networks: - - metafeederopensubtitles - - pcs - networks: - metafeederopensubtitles: - name: metafeederopensubtitles - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -128,9 +87,6 @@ x-casaos: author: Worph Team category: Media developer: Aptero Team - main: metafeederopensubtitles - webui_port: 80 - index: /config description: en_us: | @@ -211,7 +167,7 @@ x-casaos: 1. Get a free **OpenSubtitles API key** — opensubtitles.com → sign in → *API consumers* → create a consumer and copy its key. No account password is needed here: this feeder only searches. - 2. Open this app's config UI (the dashboard link), paste it into + 2. Open its config panel (the **MetaGateway** dashboard → this feeder → *configure*), paste it into **OpenSubtitles API key** and save. Leave **User-Agent** blank unless OpenSubtitles asks you to use your registered app name. The feeder restarts itself to apply the key. @@ -227,7 +183,7 @@ x-casaos: **Searches must ask for subtitles** (`fileType:subtitle`). A plain search box query never reaches this feeder. - **Authentication:** the config UI is protected by Yundera's Authelia (OIDC). + **No web UI of its own:** configure it from the **MetaGateway** dashboard → this feeder → *configure* (the gateway proxies this feeder's config page, behind the gateway's login). # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -241,6 +197,3 @@ x-compose-app: - path: /DATA/AppData/metafeederopensubtitles/state user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metafeederopensubtitles-${domain} - webui-path: "/config" diff --git a/Apps/MetaFeederProwlarr/docker-compose.yml b/Apps/MetaFeederProwlarr/docker-compose.yml index e4c0a5c..84a81e0 100644 --- a/Apps/MetaFeederProwlarr/docker-compose.yml +++ b/Apps/MetaFeederProwlarr/docker-compose.yml @@ -32,8 +32,8 @@ services: # --------------------------------------------------------------------------- # metafeederprowlarr-feeder — the feeder (meta-feeder-torznab) running the # Prowlarr/Torznab source. The gateway reaches it directly on `pcs` for - # discovery/query/compute; the human configures it through the AppShield gate - # below. + # discovery/query/compute; the human configures it + # from the MetaGateway dashboard (configure panel). # --------------------------------------------------------------------------- metafeederprowlarr-feeder: # Image name is `meta-feeder-torznab` — the repo (and therefore the ghcr @@ -56,8 +56,8 @@ services: environment: # INFRA-ONLY env (the "config: no env if in webui" rule). Operator config — # Prowlarr indexers + API key, TMDB token / language, meta-core URL — is - # read from the persisted config.json (this feeder's config page behind the - # AppShield gate); env is only a deprecated first-boot seed. These env vars + # read from the persisted config.json (this feeder's config page, opened from + # the MetaGateway dashboard (configure panel)); env is only a deprecated first-boot seed. These env vars # are wiring only: the enrichment sidecars, the enrich callback, the peer id # and Prowlarr paging. meta-core defaults to the pcs # `http://metacore-app:9000`; Prowlarr is reached as `prowlarr:9696`. @@ -144,43 +144,6 @@ services: networks: - metafeederprowlarr - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the feeder's config UI (set the Prowlarr key, TMDB token) - # behind Yundera OIDC SSO. container_name == subdomain prefix. The gateway - # still reaches the feeder directly on `pcs` (this gate is for the human only); - # index → /config. - # --------------------------------------------------------------------------- - metafeederprowlarr: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metafeederprowlarr - hostname: metafeederprowlarr - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metafeederprowlarr-feeder" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metafeederprowlarr-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metafeederprowlarr-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metafeederprowlarr-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metafeederprowlarr-feeder - networks: - - metafeederprowlarr - - pcs - networks: metafeederprowlarr: name: metafeederprowlarr @@ -196,9 +159,6 @@ x-casaos: author: Worph Team category: Media developer: Aptero Team - main: metafeederprowlarr - webui_port: 80 - index: /config description: en_us: | @@ -265,14 +225,14 @@ x-casaos: 1. In **Prowlarr**: complete its first-run wizard, add one or more indexers (torrent or usenet), then copy the **API Key** (Settings → General). - 2. Open this app's config UI (the dashboard link). Paste the Prowlarr key + 2. Open its config panel (the **MetaGateway** dashboard → this feeder → *configure*). Paste the Prowlarr key into the indexer's API-key field; optionally set a TMDB v4 token for posters. Save — the feeder reloads automatically. 3. In **MetaGateway**, make sure this feeder is listed in its feeders config (`http://metafeederprowlarr-feeder:8080`) so it gets discovered. - **Authentication:** the config UI is protected by Yundera's Authelia (OIDC). + **No web UI of its own:** configure it from the **MetaGateway** dashboard → this feeder → *configure* (the gateway proxies this feeder's config page, behind the gateway's login). # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -289,6 +249,3 @@ x-compose-app: - path: /DATA/AppData/metafeederprowlarr/tmdb-cache user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metafeederprowlarr-${domain} - webui-path: "/config" diff --git a/Apps/MetaFeederSciHub/docker-compose.yml b/Apps/MetaFeederSciHub/docker-compose.yml index 7b67229..a0176da 100644 --- a/Apps/MetaFeederSciHub/docker-compose.yml +++ b/Apps/MetaFeederSciHub/docker-compose.yml @@ -45,48 +45,8 @@ services: retries: 10 start_period: 5s networks: - - metafeederscihub - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the feeder's config page behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). The gateway still reaches the feeder directly on `pcs`; index → /config. - # --------------------------------------------------------------------------- - metafeederscihub: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metafeederscihub - hostname: metafeederscihub - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metafeederscihub-feeder" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metafeederscihub-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metafeederscihub-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metafeederscihub-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metafeederscihub-feeder - networks: - - metafeederscihub - - pcs - networks: - metafeederscihub: - name: metafeederscihub - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -98,9 +58,6 @@ x-casaos: author: Worph Team category: Media developer: Aptero Team - main: metafeederscihub - webui_port: 80 - index: /config description: en_us: | @@ -147,7 +104,7 @@ x-casaos: **Mirrors:** set `SCIHUB_MIRRORS` (comma-separated URLs) in this app's environment, then restart the app. Without it the feeder soft-skips. - **Authentication:** the config UI is protected by Yundera's Authelia (OIDC). + **No web UI of its own:** configure it from the **MetaGateway** dashboard → this feeder → *configure* (the gateway proxies this feeder's config page, behind the gateway's login). # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -161,6 +118,3 @@ x-compose-app: - path: /DATA/AppData/metafeederscihub/state user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metafeederscihub-${domain} - webui-path: "/config" diff --git a/Apps/MetaFeederSuwayomi/docker-compose.yml b/Apps/MetaFeederSuwayomi/docker-compose.yml index 8aea2cf..2669cd8 100644 --- a/Apps/MetaFeederSuwayomi/docker-compose.yml +++ b/Apps/MetaFeederSuwayomi/docker-compose.yml @@ -55,7 +55,7 @@ services: RUST_LOG: "info,meta_feeder=info,suwayomi_feeder=info" META_FEEDER_STATE_DIR: "/data/meta-feeder" # INFRA-ONLY env, and only a FIRST-BOOT SEED: `base_url` is a field on - # this feeder's own config page (the dashboard link), and a value saved + # this feeder's own config page (the MetaGateway dashboard (configure panel)), and a value saved # there wins. `suwayomi` is the container the Suwayomi store app publishes # on `pcs` — change it only to point at a Suwayomi somewhere else, and see # the reachability warning in the header before you do. @@ -78,48 +78,8 @@ services: retries: 10 start_period: 5s networks: - - metafeedersuwayomi - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the feeder's config page behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). The gateway still reaches the feeder directly on `pcs`; index → /config. - # --------------------------------------------------------------------------- - metafeedersuwayomi: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metafeedersuwayomi - hostname: metafeedersuwayomi - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metafeedersuwayomi-feeder" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metafeedersuwayomi-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metafeedersuwayomi-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metafeedersuwayomi-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metafeedersuwayomi-feeder - networks: - - metafeedersuwayomi - - pcs - networks: - metafeedersuwayomi: - name: metafeedersuwayomi - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -131,9 +91,6 @@ x-casaos: author: Worph Team category: Media developer: Aptero Team - main: metafeedersuwayomi - webui_port: 80 - index: /config description: en_us: | @@ -210,8 +167,9 @@ x-casaos: 4. Optionally install **MetaFeeder · AniList** so chapters from several sources converge on one work page. - This app's own dashboard link opens the **feeder's config page** (Suwayomi URL, - chapters per work, chapters pre-loaded) — not Suwayomi. + This app has no web UI of its own: the **feeder's config page** (Suwayomi URL, + chapters per work, chapters pre-loaded) opens from the **MetaGateway** + dashboard → this feeder → *configure*. Suwayomi's own UI is the Suwayomi app. **⚠ Querying Suwayomi writes to it.** Rows will appear in its library that you did not add by hand. That is inherent to how the aggregator works. @@ -219,7 +177,7 @@ x-casaos: **Suwayomi's own login must stay off** — the reader fetches chapter pages from it unauthenticated, so enabling it gives a library that lists every chapter and can open none. - **Authentication:** the config UI is protected by Yundera's Authelia (OIDC). + **No web UI of its own:** configure it from the **MetaGateway** dashboard → this feeder → *configure* (the gateway proxies this feeder's config page, behind the gateway's login). # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -233,6 +191,3 @@ x-compose-app: - path: /DATA/AppData/metafeedersuwayomi/state user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metafeedersuwayomi-${domain} - webui-path: "/config" diff --git a/Apps/MetaFeederTMDB/docker-compose.yml b/Apps/MetaFeederTMDB/docker-compose.yml index b39a03b..4d3f7bc 100644 --- a/Apps/MetaFeederTMDB/docker-compose.yml +++ b/Apps/MetaFeederTMDB/docker-compose.yml @@ -39,8 +39,8 @@ services: # --------------------------------------------------------------------------- # metafeedertmdb-feeder — the feeder (meta-feeder-tmdb) hosting the `tmdb` # upstream. The gateway core reaches it directly on `pcs` for - # discovery/query/compute; the human configures it through the AppShield gate - # below. + # discovery/query/compute; the human configures it + # from the MetaGateway dashboard (configure panel). # --------------------------------------------------------------------------- metafeedertmdb-feeder: image: ghcr.io/worph/meta-feeder-tmdb:1.0.3 @@ -59,8 +59,8 @@ services: environment: # INFRA-ONLY env (the "config: no env if in webui" rule). Operator config — # TMDB token, rate/burst, cards-per-search — is read from the persisted - # config.json written by this feeder's config page (behind the AppShield - # gate below). TMDB_TOKEN / TMDB_RATE_PER_SEC / TMDB_BURST / CARD_TOP_N + # config.json written by this feeder's config page (opened from + # the MetaGateway dashboard (configure panel)). TMDB_TOKEN / TMDB_RATE_PER_SEC / TMDB_BURST / CARD_TOP_N # exist only as deprecated first-boot seeds; don't set them here. # META_FEEDER_STATE_DIR is left at its default (/data/meta-feeder), which # is what the volume below mounts. @@ -78,49 +78,8 @@ services: retries: 10 start_period: 5s networks: - - metafeedertmdb - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the feeder's config UI (set the TMDB token, tune the rate - # and cards-per-search) behind Yundera OIDC SSO. container_name == subdomain - # prefix. The gateway still reaches the feeder directly on `pcs` (this gate is - # for the human only); index → /config. - # --------------------------------------------------------------------------- - metafeedertmdb: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metafeedertmdb - hostname: metafeedertmdb - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metafeedertmdb-feeder" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metafeedertmdb-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metafeedertmdb-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metafeedertmdb-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metafeedertmdb-feeder - networks: - - metafeedertmdb - - pcs - networks: - metafeedertmdb: - name: metafeedertmdb - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -132,9 +91,6 @@ x-casaos: author: Worph Team category: Media developer: Aptero Team - main: metafeedertmdb - webui_port: 80 - index: /config description: en_us: | @@ -225,7 +181,7 @@ x-casaos: **After installing this app:** 1. Get a free **TMDB v4 read access token** — themoviedb.org → Settings → API. (The v4 "Read Access Token", not the v3 API key.) - 2. Open this app's config UI (the dashboard link) and paste it into + 2. Open its config panel (the **MetaGateway** dashboard → this feeder → *configure*) and paste it into **TMDB v4 token**. Leave the rate, burst and cards-per-search fields blank unless you have a reason — the defaults (20 req/s, burst 20, 10 cards per search) are sane. Save, then restart this app: the @@ -244,7 +200,7 @@ x-casaos: retrieval feeder — **MetaFeeder · Prowlarr**, **· Usenet** or **· Tribler**. - **Authentication:** the config UI is protected by Yundera's Authelia (OIDC). + **No web UI of its own:** configure it from the **MetaGateway** dashboard → this feeder → *configure* (the gateway proxies this feeder's config page, behind the gateway's login). # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -258,6 +214,3 @@ x-compose-app: - path: /DATA/AppData/metafeedertmdb/state user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metafeedertmdb-${domain} - webui-path: "/config" diff --git a/Apps/MetaFeederTribler/docker-compose.yml b/Apps/MetaFeederTribler/docker-compose.yml index 7fa9cd9..e88a02e 100644 --- a/Apps/MetaFeederTribler/docker-compose.yml +++ b/Apps/MetaFeederTribler/docker-compose.yml @@ -67,8 +67,8 @@ services: # metafeedertribler-feeder — the tribler feeder (dedicated meta-feeder-tribler # image). A thin client of tribler-instance; self-publishes resolved records to # the shared meta-core + drives the bundled enrichment plugins. The gateway - # reaches it directly on `pcs`; the human configures it through the AppShield - # gate below. + # reaches it directly on `pcs`; the human configures it + # from the MetaGateway dashboard (configure panel). # --------------------------------------------------------------------------- metafeedertribler-feeder: image: ghcr.io/worph/meta-feeder-tribler:1.0.6 @@ -83,7 +83,7 @@ services: # INFRA-ONLY env (the "config: no env if in webui" rule). Operator config — # Tribler sidecar URL, api key, TMDB token / language, meta-core URL — is # read from the persisted config.json (pre-seeded by pre-install-cmd, then - # editable in the config UI behind the AppShield gate). These env vars are + # editable in the config page, opened from the MetaGateway dashboard (configure panel)). These env vars are # wiring only: enrichment sidecars, the enrich callback, the peer id # (analytics group by it), and the state dir. RUST_LOG: "info,meta_feeder=info,tribler_feeder=info" @@ -154,43 +154,6 @@ services: networks: - metafeedertribler - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the feeder's config UI (Tribler sidecar URL / api key, TMDB - # token) behind Yundera OIDC SSO. container_name == subdomain prefix. The - # gateway still reaches the feeder directly on `pcs` (this gate is for the - # human only); index → /config. - # --------------------------------------------------------------------------- - metafeedertribler: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metafeedertribler - hostname: metafeedertribler - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metafeedertribler-feeder" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metafeedertribler-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metafeedertribler-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metafeedertribler-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metafeedertribler-feeder - networks: - - metafeedertribler - - pcs - networks: metafeedertribler: name: metafeedertribler @@ -206,9 +169,6 @@ x-casaos: author: Worph Team category: Media developer: Aptero Team - main: metafeedertribler - webui_port: 80 - index: /config description: en_us: | @@ -262,7 +222,7 @@ x-casaos: **After installing this app:** 1. It works out of the box: the feeder is pre-wired to its bundled Tribler - core. Optionally open the config UI (the dashboard link) to set a TMDB + core. Optionally open its config panel (the **MetaGateway** dashboard → this feeder → *configure*) to set a TMDB v4 token for posters, then Save — the feeder reloads automatically. 2. In **MetaGateway**, make sure this feeder is listed in its feeders config (`http://metafeedertribler-feeder:8080`) so it gets discovered @@ -271,7 +231,7 @@ x-casaos: **Note:** the bundled Tribler core needs a few minutes to bootstrap onto the IPv8 network before search results appear. - **Authentication:** the config UI is protected by Yundera's Authelia (OIDC). + **No web UI of its own:** configure it from the **MetaGateway** dashboard → this feeder → *configure* (the gateway proxies this feeder's config page, behind the gateway's login). pre-install-cmd: | # Seed the bundled Tribler core config (api on 0.0.0.0:8085, key `changeme`). @@ -309,6 +269,3 @@ x-compose-app: - path: /DATA/AppData/metafeedertribler/tribler-seed user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metafeedertribler-${domain} - webui-path: "/config" diff --git a/Apps/MetaFeederUsenet/docker-compose.yml b/Apps/MetaFeederUsenet/docker-compose.yml index 8c1d567..1b8c045 100644 --- a/Apps/MetaFeederUsenet/docker-compose.yml +++ b/Apps/MetaFeederUsenet/docker-compose.yml @@ -303,8 +303,8 @@ services: # metafeederusenet-feeder — the usenet feeder sidecar (meta-feeder-usenet). # Reads nntmux's release catalog + shared .nzb store; self-publishes # resolved records + seeds the `.nzb` manifest to the shared MetaCore. The - # gateway reaches it directly on `pcs`; the human configures it through the - # AppShield gate below. + # gateway reaches it directly on `pcs`; the human configures it from + # the MetaGateway dashboard (configure panel). # --------------------------------------------------------------------------- metafeederusenet-feeder: image: ghcr.io/worph/meta-feeder-usenet:1.0.6 @@ -323,7 +323,7 @@ services: # INFRA-ONLY env (the "config: no env if in webui" rule). Operator # config beyond the two DB/path seeds below — TMDB token / language, # meta-core URL — is read from the persisted config.json (this - # feeder's config page behind the AppShield gate). These env vars are + # feeder's config page, opened from the MetaGateway dashboard (configure panel)). These env vars are # wiring only: the enrichment sidecars, the enrich callback, the peer id. RUST_LOG: "info,meta_feeder=info" # The peer id stamped into provenance.gateway_peer on every record this @@ -402,43 +402,6 @@ services: networks: - metafeederusenet - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the feeder's config UI (nntmux DB URL / nzb path, TMDB - # token) behind Yundera OIDC SSO. container_name == subdomain prefix. The - # gateway still reaches the feeder directly on `pcs` (this gate is for the - # human only); index → /config. - # --------------------------------------------------------------------------- - metafeederusenet: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metafeederusenet - hostname: metafeederusenet - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metafeederusenet-feeder" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metafeederusenet-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metafeederusenet-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metafeederusenet-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metafeederusenet-feeder - networks: - - metafeederusenet - - pcs - networks: metafeederusenet: name: metafeederusenet @@ -454,9 +417,6 @@ x-casaos: author: Worph Team category: Media developer: Aptero Team - main: metafeederusenet - webui_port: 80 - index: /config description: en_us: | @@ -609,7 +569,7 @@ x-casaos: full-retention backfill is hundreds of GB. `backfill_days` is the knob that bounds it — start small, widen once you see releases. - 7. Open this app's config UI (the dashboard link) to optionally set a + 7. Open its config panel (the **MetaGateway** dashboard → this feeder → *configure*) to optionally set a TMDB v4 token for posters, then Save. 8. In **MetaGateway**, make sure this feeder is listed in its feeders config (`http://metafeederusenet-feeder:8080`) so it gets @@ -623,8 +583,8 @@ x-casaos: ` / `sleeping`). `settings.running=0` shows up there as `idle`. - **Authentication:** the feeder's config UI is protected by Yundera's - Authelia (OIDC); nntmux uses its own login (seeded above). + **Authentication:** the feeder's config page opens from the **MetaGateway** + dashboard (behind its login); nntmux uses its own login (seeded above). pre-install-cmd: | # Seed nntmux's .env (trap #1 — must be a complete file, see header). @@ -903,6 +863,8 @@ x-compose-app: - path: /DATA/AppData/metafeederusenet/scanner user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metafeederusenet-${domain} - webui-path: "/config" + # Same string as nntmux's caddy_0 label, so the tile link and the route agree. + # The tile opens nntmux's own admin UI (its own login, its own Caddy route). + # The feeder itself is configured from the MetaGateway dashboard. + webui-host: metafeederusenetnntmux-${domain} + webui-path: "/" diff --git a/Apps/MetaFeederWikiCommons/docker-compose.yml b/Apps/MetaFeederWikiCommons/docker-compose.yml index 10725c4..e293820 100644 --- a/Apps/MetaFeederWikiCommons/docker-compose.yml +++ b/Apps/MetaFeederWikiCommons/docker-compose.yml @@ -44,48 +44,8 @@ services: retries: 10 start_period: 5s networks: - - metafeederwikicommons - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the feeder's config page behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). The gateway still reaches the feeder directly on `pcs`; index → /config. - # --------------------------------------------------------------------------- - metafeederwikicommons: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metafeederwikicommons - hostname: metafeederwikicommons - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metafeederwikicommons-feeder" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metafeederwikicommons-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metafeederwikicommons-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metafeederwikicommons-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metafeederwikicommons-feeder - networks: - - metafeederwikicommons - - pcs - networks: - metafeederwikicommons: - name: metafeederwikicommons - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -97,9 +57,6 @@ x-casaos: author: Worph Team category: Media developer: Aptero Team - main: metafeederwikicommons - webui_port: 80 - index: /config description: en_us: | @@ -138,7 +95,7 @@ x-casaos: dashboard's *Add a feeder* box — name `wikicommons-feeder`, URL `http://metafeederwikicommons-feeder:8080`. The gateway restarts itself: feeder discovery is startup-only. No other setup. - **Authentication:** the config UI is protected by Yundera's Authelia (OIDC). + **No web UI of its own:** configure it from the **MetaGateway** dashboard → this feeder → *configure* (the gateway proxies this feeder's config page, behind the gateway's login). # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -152,6 +109,3 @@ x-compose-app: - path: /DATA/AppData/metafeederwikicommons/state user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metafeederwikicommons-${domain} - webui-path: "/config" diff --git a/Apps/MetaFeederYouTube/docker-compose.yml b/Apps/MetaFeederYouTube/docker-compose.yml index 01cd9e5..5ef28e0 100644 --- a/Apps/MetaFeederYouTube/docker-compose.yml +++ b/Apps/MetaFeederYouTube/docker-compose.yml @@ -26,8 +26,8 @@ name: metafeederyoutube services: # --------------------------------------------------------------------------- # metafeederyoutube-feeder — the feeder itself. The gateway reaches it directly on - # `pcs` for discovery/query/compute; the human sees it through the AppShield - # gate below. + # `pcs` for discovery/query/compute; the human configures it + # from the MetaGateway dashboard (configure panel). # --------------------------------------------------------------------------- metafeederyoutube-feeder: image: ghcr.io/worph/meta-feeder-youtube:1.1.1 @@ -56,48 +56,8 @@ services: retries: 10 start_period: 5s networks: - - metafeederyoutube - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the feeder's config page behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). The gateway still reaches the feeder directly on `pcs`; index → /config. - # --------------------------------------------------------------------------- - metafeederyoutube: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metafeederyoutube - hostname: metafeederyoutube - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metafeederyoutube-feeder" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metafeederyoutube-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metafeederyoutube-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metafeederyoutube-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metafeederyoutube-feeder - networks: - - metafeederyoutube - - pcs - networks: - metafeederyoutube: - name: metafeederyoutube - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -109,9 +69,6 @@ x-casaos: author: Worph Team category: Media developer: Aptero Team - main: metafeederyoutube - webui_port: 80 - index: /config description: en_us: | @@ -160,7 +117,7 @@ x-casaos: The gateway restarts itself: feeder discovery is startup-only. No API key. For music, also install **MetaFeeder · MusicBrainz** — it names the recording a YouTube candidate must match before it is accepted. - **Authentication:** the config UI is protected by Yundera's Authelia (OIDC). + **No web UI of its own:** configure it from the **MetaGateway** dashboard → this feeder → *configure* (the gateway proxies this feeder's config page, behind the gateway's login). # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -174,6 +131,3 @@ x-compose-app: - path: /DATA/AppData/metafeederyoutube/state user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metafeederyoutube-${domain} - webui-path: "/config" diff --git a/Apps/MetaPluginAnimeDetector/docker-compose.yml b/Apps/MetaPluginAnimeDetector/docker-compose.yml index 9955c9b..7bea1a7 100644 --- a/Apps/MetaPluginAnimeDetector/docker-compose.yml +++ b/Apps/MetaPluginAnimeDetector/docker-compose.yml @@ -50,50 +50,8 @@ services: # payload and writes back through the caller. No key, no WebDAV. TZ: "$TZ" networks: - - metapluginanimedetector - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the plugin's `/manifest` behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). Consumers still reach the plugin directly on `pcs`; this gate - # exists so `/process` and `/configure` are never reachable from the internet - # without a session. - # --------------------------------------------------------------------------- - metapluginanimedetector: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metapluginanimedetector - hostname: metapluginanimedetector - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metapluginanimedetector-plugin" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metapluginanimedetector-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metapluginanimedetector-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metapluginanimedetector-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metapluginanimedetector-plugin - networks: - - metapluginanimedetector - - pcs - networks: - metapluginanimedetector: - name: metapluginanimedetector - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -105,9 +63,6 @@ x-casaos: author: Worph Team category: Developer developer: Aptero Team - main: metapluginanimedetector - webui_port: 80 - index: /manifest description: en_us: | @@ -161,14 +116,11 @@ x-casaos: addressable at `http://metapluginanimedetector-plugin:8080` for your own caller — not expecting it to light up MetaSort or a MetaFeeder on its own. - **Authentication:** the `/manifest` page is protected by Yundera's Authelia - (OIDC). Consumers on the `pcs` network bypass the gate by design. + **No web UI:** a headless service. Its consumers reach it directly on the + `pcs` network. # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app # outright rather than starting it without its directories. x-compose-app: schema_version: 2 - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metapluginanimedetector-${domain} - webui-path: "/manifest" diff --git a/Apps/MetaPluginFFmpeg/docker-compose.yml b/Apps/MetaPluginFFmpeg/docker-compose.yml index 99fd0d6..bd21117 100644 --- a/Apps/MetaPluginFFmpeg/docker-compose.yml +++ b/Apps/MetaPluginFFmpeg/docker-compose.yml @@ -58,50 +58,8 @@ services: # expensive to redo; safe to delete, it rebuilds. - ${DATA_ROOT:-/DATA}/AppData/metapluginffmpeg/cache:/cache:rw networks: - - metapluginffmpeg - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the plugin's `/manifest` behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). Consumers still reach the plugin directly on `pcs`; this gate - # exists so `/process` and `/configure` are never reachable from the internet - # without a session. - # --------------------------------------------------------------------------- - metapluginffmpeg: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metapluginffmpeg - hostname: metapluginffmpeg - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metapluginffmpeg-plugin" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metapluginffmpeg-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metapluginffmpeg-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metapluginffmpeg-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metapluginffmpeg-plugin - networks: - - metapluginffmpeg - - pcs - networks: - metapluginffmpeg: - name: metapluginffmpeg - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -113,9 +71,6 @@ x-casaos: author: Worph Team category: Developer developer: Aptero Team - main: metapluginffmpeg - webui_port: 80 - index: /manifest description: en_us: | @@ -174,8 +129,8 @@ x-casaos: **Requires MetaCore** on the same box: this plugin writes what it produces to MetaCore's WebDAV (`http://metacore-app:9000/webdav`). - **Authentication:** the `/manifest` page is protected by Yundera's Authelia - (OIDC). Consumers on the `pcs` network bypass the gate by design. + **No web UI:** a headless service. Its consumers reach it directly on the + `pcs` network. # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -189,6 +144,3 @@ x-compose-app: - path: /DATA/AppData/metapluginffmpeg/cache user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metapluginffmpeg-${domain} - webui-path: "/manifest" diff --git a/Apps/MetaPluginFileInfo/docker-compose.yml b/Apps/MetaPluginFileInfo/docker-compose.yml index 9042425..01e1726 100644 --- a/Apps/MetaPluginFileInfo/docker-compose.yml +++ b/Apps/MetaPluginFileInfo/docker-compose.yml @@ -58,50 +58,8 @@ services: # expensive to redo; safe to delete, it rebuilds. - ${DATA_ROOT:-/DATA}/AppData/metapluginfileinfo/cache:/cache:rw networks: - - metapluginfileinfo - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the plugin's `/manifest` behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). Consumers still reach the plugin directly on `pcs`; this gate - # exists so `/process` and `/configure` are never reachable from the internet - # without a session. - # --------------------------------------------------------------------------- - metapluginfileinfo: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metapluginfileinfo - hostname: metapluginfileinfo - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metapluginfileinfo-plugin" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metapluginfileinfo-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metapluginfileinfo-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metapluginfileinfo-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metapluginfileinfo-plugin - networks: - - metapluginfileinfo - - pcs - networks: - metapluginfileinfo: - name: metapluginfileinfo - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -113,9 +71,6 @@ x-casaos: author: Worph Team category: Developer developer: Aptero Team - main: metapluginfileinfo - webui_port: 80 - index: /manifest description: en_us: | @@ -172,8 +127,8 @@ x-casaos: **Requires MetaCore** on the same box: this plugin writes what it produces to MetaCore's WebDAV (`http://metacore-app:9000/webdav`). - **Authentication:** the `/manifest` page is protected by Yundera's Authelia - (OIDC). Consumers on the `pcs` network bypass the gate by design. + **No web UI:** a headless service. Its consumers reach it directly on the + `pcs` network. # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -187,6 +142,3 @@ x-compose-app: - path: /DATA/AppData/metapluginfileinfo/cache user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metapluginfileinfo-${domain} - webui-path: "/manifest" diff --git a/Apps/MetaPluginFilenameParser/docker-compose.yml b/Apps/MetaPluginFilenameParser/docker-compose.yml index 1894f46..61a82d2 100644 --- a/Apps/MetaPluginFilenameParser/docker-compose.yml +++ b/Apps/MetaPluginFilenameParser/docker-compose.yml @@ -55,50 +55,8 @@ services: EMIT_TITLE_TAGS: "${EMIT_TITLE_TAGS:-}" TZ: "$TZ" networks: - - metapluginfilenameparser - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the plugin's `/manifest` behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). Consumers still reach the plugin directly on `pcs`; this gate - # exists so `/process` and `/configure` are never reachable from the internet - # without a session. - # --------------------------------------------------------------------------- - metapluginfilenameparser: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metapluginfilenameparser - hostname: metapluginfilenameparser - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metapluginfilenameparser-plugin" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metapluginfilenameparser-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metapluginfilenameparser-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metapluginfilenameparser-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metapluginfilenameparser-plugin - networks: - - metapluginfilenameparser - - pcs - networks: - metapluginfilenameparser: - name: metapluginfilenameparser - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -110,9 +68,6 @@ x-casaos: author: Worph Team category: Developer developer: Aptero Team - main: metapluginfilenameparser - webui_port: 80 - index: /manifest description: en_us: | @@ -173,14 +128,11 @@ x-casaos: from `plugins.yml` (`image:`), with no URL slot — installing this app does not add `filename-parser` to MetaSort. - **Authentication:** the `/manifest` page is protected by Yundera's Authelia - (OIDC). Consumers on the `pcs` network bypass the gate by design. + **No web UI:** a headless service. Its consumers reach it directly on the + `pcs` network. # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app # outright rather than starting it without its directories. x-compose-app: schema_version: 2 - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metapluginfilenameparser-${domain} - webui-path: "/manifest" diff --git a/Apps/MetaPluginFullHash/docker-compose.yml b/Apps/MetaPluginFullHash/docker-compose.yml index 7d83d19..a46e293 100644 --- a/Apps/MetaPluginFullHash/docker-compose.yml +++ b/Apps/MetaPluginFullHash/docker-compose.yml @@ -55,50 +55,8 @@ services: # expensive to redo; safe to delete, it rebuilds. - ${DATA_ROOT:-/DATA}/AppData/metapluginfullhash/cache:/cache:rw networks: - - metapluginfullhash - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the plugin's `/manifest` behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). Consumers still reach the plugin directly on `pcs`; this gate - # exists so `/process` and `/configure` are never reachable from the internet - # without a session. - # --------------------------------------------------------------------------- - metapluginfullhash: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metapluginfullhash - hostname: metapluginfullhash - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metapluginfullhash-plugin" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metapluginfullhash-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metapluginfullhash-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metapluginfullhash-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metapluginfullhash-plugin - networks: - - metapluginfullhash - - pcs - networks: - metapluginfullhash: - name: metapluginfullhash - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -110,9 +68,6 @@ x-casaos: author: Worph Team category: Developer developer: Aptero Team - main: metapluginfullhash - webui_port: 80 - index: /manifest description: en_us: | @@ -169,8 +124,8 @@ x-casaos: addressable at `http://metapluginfullhash-plugin:8080` for your own caller — not expecting it to light up MetaSort or a MetaFeeder on its own. - **Authentication:** the `/manifest` page is protected by Yundera's Authelia - (OIDC). Consumers on the `pcs` network bypass the gate by design. + **No web UI:** a headless service. Its consumers reach it directly on the + `pcs` network. # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -184,6 +139,3 @@ x-compose-app: - path: /DATA/AppData/metapluginfullhash/cache user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metapluginfullhash-${domain} - webui-path: "/manifest" diff --git a/Apps/MetaPluginJellyfinNFO/docker-compose.yml b/Apps/MetaPluginJellyfinNFO/docker-compose.yml index 4acefd3..8afe888 100644 --- a/Apps/MetaPluginJellyfinNFO/docker-compose.yml +++ b/Apps/MetaPluginJellyfinNFO/docker-compose.yml @@ -54,50 +54,8 @@ services: WEBDAV_URL: "http://metacore-app:9000/webdav" TZ: "$TZ" networks: - - metapluginjellyfinnfo - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the plugin's `/manifest` behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). Consumers still reach the plugin directly on `pcs`; this gate - # exists so `/process` and `/configure` are never reachable from the internet - # without a session. - # --------------------------------------------------------------------------- - metapluginjellyfinnfo: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metapluginjellyfinnfo - hostname: metapluginjellyfinnfo - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metapluginjellyfinnfo-plugin" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metapluginjellyfinnfo-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metapluginjellyfinnfo-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metapluginjellyfinnfo-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metapluginjellyfinnfo-plugin - networks: - - metapluginjellyfinnfo - - pcs - networks: - metapluginjellyfinnfo: - name: metapluginjellyfinnfo - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -109,9 +67,6 @@ x-casaos: author: Worph Team category: Developer developer: Aptero Team - main: metapluginjellyfinnfo - webui_port: 80 - index: /manifest description: en_us: | @@ -170,14 +125,11 @@ x-casaos: **Requires MetaCore** on the same box: this plugin writes what it produces to MetaCore's WebDAV (`http://metacore-app:9000/webdav`). - **Authentication:** the `/manifest` page is protected by Yundera's Authelia - (OIDC). Consumers on the `pcs` network bypass the gate by design. + **No web UI:** a headless service. Its consumers reach it directly on the + `pcs` network. # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app # outright rather than starting it without its directories. x-compose-app: schema_version: 2 - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metapluginjellyfinnfo-${domain} - webui-path: "/manifest" diff --git a/Apps/MetaPluginLanguage/docker-compose.yml b/Apps/MetaPluginLanguage/docker-compose.yml index 14ad578..db8c812 100644 --- a/Apps/MetaPluginLanguage/docker-compose.yml +++ b/Apps/MetaPluginLanguage/docker-compose.yml @@ -50,50 +50,8 @@ services: # payload and writes back through the caller. No key, no WebDAV. TZ: "$TZ" networks: - - metapluginlanguage - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the plugin's `/manifest` behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). Consumers still reach the plugin directly on `pcs`; this gate - # exists so `/process` and `/configure` are never reachable from the internet - # without a session. - # --------------------------------------------------------------------------- - metapluginlanguage: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metapluginlanguage - hostname: metapluginlanguage - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metapluginlanguage-plugin" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metapluginlanguage-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metapluginlanguage-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metapluginlanguage-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metapluginlanguage-plugin - networks: - - metapluginlanguage - - pcs - networks: - metapluginlanguage: - name: metapluginlanguage - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -105,9 +63,6 @@ x-casaos: author: Worph Team category: Developer developer: Aptero Team - main: metapluginlanguage - webui_port: 80 - index: /manifest description: en_us: | @@ -163,14 +118,11 @@ x-casaos: addressable at `http://metapluginlanguage-plugin:8080` for your own caller — not expecting it to light up MetaSort or a MetaFeeder on its own. - **Authentication:** the `/manifest` page is protected by Yundera's Authelia - (OIDC). Consumers on the `pcs` network bypass the gate by design. + **No web UI:** a headless service. Its consumers reach it directly on the + `pcs` network. # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app # outright rather than starting it without its directories. x-compose-app: schema_version: 2 - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metapluginlanguage-${domain} - webui-path: "/manifest" diff --git a/Apps/MetaPluginOpenSubtitles/docker-compose.yml b/Apps/MetaPluginOpenSubtitles/docker-compose.yml index 3c7c1ec..71417e4 100644 --- a/Apps/MetaPluginOpenSubtitles/docker-compose.yml +++ b/Apps/MetaPluginOpenSubtitles/docker-compose.yml @@ -54,50 +54,8 @@ services: WEBDAV_URL: "http://metacore-app:9000/webdav" TZ: "$TZ" networks: - - metapluginopensubtitles - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the plugin's `/manifest` behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). Consumers still reach the plugin directly on `pcs`; this gate - # exists so `/process` and `/configure` are never reachable from the internet - # without a session. - # --------------------------------------------------------------------------- - metapluginopensubtitles: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metapluginopensubtitles - hostname: metapluginopensubtitles - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metapluginopensubtitles-plugin" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metapluginopensubtitles-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metapluginopensubtitles-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metapluginopensubtitles-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metapluginopensubtitles-plugin - networks: - - metapluginopensubtitles - - pcs - networks: - metapluginopensubtitles: - name: metapluginopensubtitles - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -109,9 +67,6 @@ x-casaos: author: Worph Team category: Developer developer: Aptero Team - main: metapluginopensubtitles - webui_port: 80 - index: /manifest description: en_us: | @@ -174,14 +129,11 @@ x-casaos: **Requires MetaCore** on the same box: this plugin writes what it produces to MetaCore's WebDAV (`http://metacore-app:9000/webdav`). - **Authentication:** the `/manifest` page is protected by Yundera's Authelia - (OIDC). Consumers on the `pcs` network bypass the gate by design. + **No web UI:** a headless service. Its consumers reach it directly on the + `pcs` network. # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app # outright rather than starting it without its directories. x-compose-app: schema_version: 2 - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metapluginopensubtitles-${domain} - webui-path: "/manifest" diff --git a/Apps/MetaPluginStillExtractor/docker-compose.yml b/Apps/MetaPluginStillExtractor/docker-compose.yml index 99504ab..f196c63 100644 --- a/Apps/MetaPluginStillExtractor/docker-compose.yml +++ b/Apps/MetaPluginStillExtractor/docker-compose.yml @@ -54,50 +54,8 @@ services: WEBDAV_URL: "http://metacore-app:9000/webdav" TZ: "$TZ" networks: - - metapluginstillextractor - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the plugin's `/manifest` behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). Consumers still reach the plugin directly on `pcs`; this gate - # exists so `/process` and `/configure` are never reachable from the internet - # without a session. - # --------------------------------------------------------------------------- - metapluginstillextractor: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metapluginstillextractor - hostname: metapluginstillextractor - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metapluginstillextractor-plugin" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metapluginstillextractor-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metapluginstillextractor-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metapluginstillextractor-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metapluginstillextractor-plugin - networks: - - metapluginstillextractor - - pcs - networks: - metapluginstillextractor: - name: metapluginstillextractor - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -109,9 +67,6 @@ x-casaos: author: Worph Team category: Developer developer: Aptero Team - main: metapluginstillextractor - webui_port: 80 - index: /manifest description: en_us: | @@ -170,14 +125,11 @@ x-casaos: **Requires MetaCore** on the same box: this plugin writes what it produces to MetaCore's WebDAV (`http://metacore-app:9000/webdav`). - **Authentication:** the `/manifest` page is protected by Yundera's Authelia - (OIDC). Consumers on the `pcs` network bypass the gate by design. + **No web UI:** a headless service. Its consumers reach it directly on the + `pcs` network. # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app # outright rather than starting it without its directories. x-compose-app: schema_version: 2 - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metapluginstillextractor-${domain} - webui-path: "/manifest" diff --git a/Apps/MetaPluginSubtitle/docker-compose.yml b/Apps/MetaPluginSubtitle/docker-compose.yml index cd73be2..28c9a88 100644 --- a/Apps/MetaPluginSubtitle/docker-compose.yml +++ b/Apps/MetaPluginSubtitle/docker-compose.yml @@ -54,50 +54,8 @@ services: WEBDAV_URL: "http://metacore-app:9000/webdav" TZ: "$TZ" networks: - - metapluginsubtitle - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the plugin's `/manifest` behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). Consumers still reach the plugin directly on `pcs`; this gate - # exists so `/process` and `/configure` are never reachable from the internet - # without a session. - # --------------------------------------------------------------------------- - metapluginsubtitle: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metapluginsubtitle - hostname: metapluginsubtitle - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metapluginsubtitle-plugin" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metapluginsubtitle-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metapluginsubtitle-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metapluginsubtitle-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metapluginsubtitle-plugin - networks: - - metapluginsubtitle - - pcs - networks: - metapluginsubtitle: - name: metapluginsubtitle - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -109,9 +67,6 @@ x-casaos: author: Worph Team category: Developer developer: Aptero Team - main: metapluginsubtitle - webui_port: 80 - index: /manifest description: en_us: | @@ -171,14 +126,11 @@ x-casaos: **Requires MetaCore** on the same box: this plugin writes what it produces to MetaCore's WebDAV (`http://metacore-app:9000/webdav`). - **Authentication:** the `/manifest` page is protected by Yundera's Authelia - (OIDC). Consumers on the `pcs` network bypass the gate by design. + **No web UI:** a headless service. Its consumers reach it directly on the + `pcs` network. # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app # outright rather than starting it without its directories. x-compose-app: schema_version: 2 - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metapluginsubtitle-${domain} - webui-path: "/manifest" diff --git a/Apps/MetaPluginSubtitleExtractor/docker-compose.yml b/Apps/MetaPluginSubtitleExtractor/docker-compose.yml index bd2d001..d947183 100644 --- a/Apps/MetaPluginSubtitleExtractor/docker-compose.yml +++ b/Apps/MetaPluginSubtitleExtractor/docker-compose.yml @@ -58,50 +58,8 @@ services: # expensive to redo; safe to delete, it rebuilds. - ${DATA_ROOT:-/DATA}/AppData/metapluginsubtitleextractor/cache:/cache:rw networks: - - metapluginsubtitleextractor - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the plugin's `/manifest` behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). Consumers still reach the plugin directly on `pcs`; this gate - # exists so `/process` and `/configure` are never reachable from the internet - # without a session. - # --------------------------------------------------------------------------- - metapluginsubtitleextractor: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metapluginsubtitleextractor - hostname: metapluginsubtitleextractor - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metapluginsubtitleextractor-plugin" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metapluginsubtitleextractor-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metapluginsubtitleextractor-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metapluginsubtitleextractor-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metapluginsubtitleextractor-plugin - networks: - - metapluginsubtitleextractor - - pcs - networks: - metapluginsubtitleextractor: - name: metapluginsubtitleextractor - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -113,9 +71,6 @@ x-casaos: author: Worph Team category: Developer developer: Aptero Team - main: metapluginsubtitleextractor - webui_port: 80 - index: /manifest description: en_us: | @@ -175,8 +130,8 @@ x-casaos: **Requires MetaCore** on the same box: this plugin writes what it produces to MetaCore's WebDAV (`http://metacore-app:9000/webdav`). - **Authentication:** the `/manifest` page is protected by Yundera's Authelia - (OIDC). Consumers on the `pcs` network bypass the gate by design. + **No web UI:** a headless service. Its consumers reach it directly on the + `pcs` network. # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -190,6 +145,3 @@ x-compose-app: - path: /DATA/AppData/metapluginsubtitleextractor/cache user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metapluginsubtitleextractor-${domain} - webui-path: "/manifest" diff --git a/Apps/MetaPluginTMDB/docker-compose.yml b/Apps/MetaPluginTMDB/docker-compose.yml index 773f186..285d55d 100644 --- a/Apps/MetaPluginTMDB/docker-compose.yml +++ b/Apps/MetaPluginTMDB/docker-compose.yml @@ -58,50 +58,8 @@ services: # expensive to redo; safe to delete, it rebuilds. - ${DATA_ROOT:-/DATA}/AppData/metaplugintmdb/cache:/cache:rw networks: - - metaplugintmdb - pcs - - # --------------------------------------------------------------------------- - # AppShield gate — the plugin's `/manifest` behind Yundera OIDC SSO. - # container_name == subdomain prefix (the auth-registrar derives the client_id - # from it). Consumers still reach the plugin directly on `pcs`; this gate - # exists so `/process` and `/configure` are never reachable from the internet - # without a session. - # --------------------------------------------------------------------------- - metaplugintmdb: - image: ghcr.io/yundera/appshield:2.0.9 - cpu_shares: 80 - container_name: metaplugintmdb - hostname: metaplugintmdb - restart: unless-stopped - user: "0:0" - expose: - - 80 - environment: - OIDC_REGISTRAR_URL: "http://auth-registrar:9092" - REDIRECT_HOST_SUFFIXES: "${APP_DOMAIN},${APP_PUBLIC_IP_DASH}.nip.io,${APP_PUBLIC_IP_DASH}.sslip.io" - BACKEND_HOST: "metaplugintmdb-plugin" - BACKEND_PORT: "8080" - LISTEN_PORT: "80" - labels: - caddy_0: metaplugintmdb-${APP_DOMAIN} - caddy_0.import: gateway_tls - caddy_0.reverse_proxy: "{{upstreams 80}}" - caddy_1: metaplugintmdb-${APP_PUBLIC_IP_DASH}.nip.io - caddy_1.import: gateway_tls - caddy_1.reverse_proxy: "{{upstreams 80}}" - caddy_2: metaplugintmdb-${APP_PUBLIC_IP_DASH}.sslip.io - caddy_2.reverse_proxy: "{{upstreams 80}}" - depends_on: - - metaplugintmdb-plugin - networks: - - metaplugintmdb - - pcs - networks: - metaplugintmdb: - name: metaplugintmdb - driver: bridge pcs: name: ${APP_NET:-pcs} external: true @@ -113,9 +71,6 @@ x-casaos: author: Worph Team category: Developer developer: Aptero Team - main: metaplugintmdb - webui_port: 80 - index: /manifest description: en_us: | @@ -179,8 +134,8 @@ x-casaos: **Requires MetaCore** on the same box: this plugin writes what it produces to MetaCore's WebDAV (`http://metacore-app:9000/webdav`). - **Authentication:** the `/manifest` page is protected by Yundera's Authelia - (OIDC). Consumers on the `pcs` network bypass the gate by design. + **No web UI:** a headless service. Its consumers reach it directly on the + `pcs` network. # Maison (Yundera dashboard) configuration. Read in preference to x-casaos. # schema_version 2 is required for `folders`: an older Maison refuses the app @@ -194,6 +149,3 @@ x-compose-app: - path: /DATA/AppData/metaplugintmdb/cache user: $PUID group: $PGID - # Same string as the caddy_0 label, so the tile link and the route agree. - webui-host: metaplugintmdb-${domain} - webui-path: "/manifest" diff --git a/Apps/MetaTransportIpfs/docker-compose.yml b/Apps/MetaTransportIpfs/docker-compose.yml index d630ef3..afc4dcb 100644 --- a/Apps/MetaTransportIpfs/docker-compose.yml +++ b/Apps/MetaTransportIpfs/docker-compose.yml @@ -135,7 +135,5 @@ x-compose-app: - path: /DATA/AppData/metatransportipfs/state user: $PUID group: $PGID - # An extension of MetaShare: no tile of its own, nested under MetaShare's, - # and listed in the store under MetaShare's Extensions. Presentation only — - # lifecycle and backups stay per-app. - parent: metashare + # No webui-host and no x-casaos hostname/webui_port/port_map: Maison files it + # under Services (no click target). Its config opens from MetaShare → Plugins. diff --git a/Apps/MetaTransportNzb/docker-compose.yml b/Apps/MetaTransportNzb/docker-compose.yml index 2d2dd36..3011cbb 100644 --- a/Apps/MetaTransportNzb/docker-compose.yml +++ b/Apps/MetaTransportNzb/docker-compose.yml @@ -117,7 +117,5 @@ x-compose-app: - path: /DATA/AppData/metatransportnzb/state user: $PUID group: $PGID - # An extension of MetaShare: no tile of its own, nested under MetaShare's, - # and listed in the store under MetaShare's Extensions. Presentation only — - # lifecycle and backups stay per-app. - parent: metashare + # No webui-host and no x-casaos hostname/webui_port/port_map: Maison files it + # under Services (no click target). Its config opens from MetaShare → Plugins. diff --git a/Apps/MetaTransportTorrent/docker-compose.yml b/Apps/MetaTransportTorrent/docker-compose.yml index 042df67..22a0f1b 100644 --- a/Apps/MetaTransportTorrent/docker-compose.yml +++ b/Apps/MetaTransportTorrent/docker-compose.yml @@ -126,7 +126,5 @@ x-compose-app: - path: /DATA/AppData/metatransporttorrent/state user: $PUID group: $PGID - # An extension of MetaShare: no tile of its own, nested under MetaShare's, - # and listed in the store under MetaShare's Extensions. Presentation only — - # lifecycle and backups stay per-app. - parent: metashare + # No webui-host and no x-casaos hostname/webui_port/port_map: Maison files it + # under Services (no click target). Its config opens from MetaShare → Plugins.