diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js
index b1d484bf..95672578 100644
--- a/zefie_wtvp_minisrv/app.js
+++ b/zefie_wtvp_minisrv/app.js
@@ -194,7 +194,7 @@ function getServiceString(service, overrides = {}) {
// used externally by service scripts
if (service === "all") {
var out = "";
- Object.keys(minisrv_config.services).forEach(function (k) {
+ Object.keys(minisrv_config.services).sort().forEach(function (k) {
if (!isConfiguredService(k)) return true;
if (minisrv_config.services[k].pc_services) return true;
diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/news/catchall.js b/zefie_wtvp_minisrv/includes/ServiceVault/news/catchall.js
new file mode 100644
index 00000000..8592b08e
--- /dev/null
+++ b/zefie_wtvp_minisrv/includes/ServiceVault/news/catchall.js
@@ -0,0 +1,5 @@
+var minisrv_service_file = true;
+
+var dest_url = "wtv-news:/news?group=" + request_headers.request_url.split(":")[1];
+headers = `300 Moved
+Location: ${dest_url}`
diff --git a/zefie_wtvp_minisrv/includes/config.json b/zefie_wtvp_minisrv/includes/config.json
index b178cc8d..6e8d404b 100644
--- a/zefie_wtvp_minisrv/includes/config.json
+++ b/zefie_wtvp_minisrv/includes/config.json
@@ -144,6 +144,12 @@
],
"groupMetaRefreshInterval": 86400 // not yet used
},
+ "news": {
+ // for news:group.name urls
+ "port": 1605,
+ "nobind": true,
+ "flags": "0x00000004"
+ },
"wtv-register": {
// wtv-register
"port": 1607,
diff --git a/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj b/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj
index f3d834e8..ce4cee72 100644
--- a/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj
+++ b/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj
@@ -196,6 +196,9 @@
+
+ Code
+
@@ -2337,6 +2340,7 @@
+