mirakurun 3.9.0-beta.22 → 3.9.0-beta.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -3
- package/CONTRIBUTING.md +5 -0
- package/README.md +2 -7
- package/api.d.ts +2 -0
- package/api.yml +11 -3
- package/bin/postinstall.js +7 -8
- package/doc/Configuration.md +4 -0
- package/doc/Platforms.md +36 -4
- package/docker/container-init.sh +7 -0
- package/docker/docker-compose.yml +2 -6
- package/lib/Mirakurun/EPG.js +1 -0
- package/lib/Mirakurun/EPG.js.map +1 -1
- package/lib/Mirakurun/Server.d.ts +0 -1
- package/lib/Mirakurun/Server.js +9 -21
- package/lib/Mirakurun/Server.js.map +1 -1
- package/lib/Mirakurun/api/status.js +1 -0
- package/lib/Mirakurun/api/status.js.map +1 -1
- package/lib/Mirakurun/config.d.ts +2 -0
- package/lib/Mirakurun/config.js +46 -3
- package/lib/Mirakurun/config.js.map +1 -1
- package/lib/Mirakurun/rpc.js +3 -4
- package/lib/Mirakurun/rpc.js.map +1 -1
- package/lib/Mirakurun/system.d.ts +4 -2
- package/lib/Mirakurun/system.js +42 -8
- package/lib/Mirakurun/system.js.map +1 -1
- package/lib/ui/index.js +2237 -4
- package/lib/ui/index.js.map +1 -1
- package/lib/ui/swagger-ui.html +40 -0
- package/package.json +7 -9
- package/.github/ISSUE_TEMPLATE/feature-request.md +0 -16
package/CHANGELOG.md
CHANGED
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
see [Commit Logs](https://github.com/Chinachu/Mirakurun/commits/master) to check all.
|
|
4
4
|
|
|
5
|
-
## 3.9.0 (
|
|
5
|
+
## 3.9.0 (2022-xx-xx)
|
|
6
6
|
|
|
7
7
|
Performance improvements, fixes for memory leaks and bugs related to EPG processing, etc.
|
|
8
8
|
|
|
9
9
|
### Server Changes
|
|
10
10
|
|
|
11
11
|
- **config/server**: Add `disableWebUI` (Env: `DISABLE_WEB_UI` for Docker) to disable Web UI.
|
|
12
|
+
- **config/server**: Add `allowIPv4CidrRanges`, `allowIPv6CidrRanges` (Env: `ALLOW_IPV4_CIDR_RANGES`, `ALLOW_IPV6_CIDR_RANGES` for Docker) to allow optional IP range.
|
|
12
13
|
- **config/server**: Change several default values based on typical usage.
|
|
13
14
|
- `programGCInterval`: `900000` (15 mins) → `3600000` (1 hour)
|
|
14
15
|
- `epgGatheringInterval`: `900000` (15 mins) → `3600000` (30 mins)
|
|
@@ -41,6 +42,7 @@ Performance improvements, fixes for memory leaks and bugs related to EPG process
|
|
|
41
42
|
- **ui/status**: Fix "EPG Gathering Network IDs" hex strings to upper case.
|
|
42
43
|
- **ui/status**: Fix handle tuner updates to correctly. (bug) [#109](https://github.com/Chinachu/Mirakurun/pull/109)
|
|
43
44
|
- **ui/config**: Add "EPG Gathering Interval" setting in Config/Server.
|
|
45
|
+
- **ui/config**: Add "Allow IPv4 CIDR Ranges", "Allow IPv6 CIDR Ranges" setting in Config/Server.
|
|
44
46
|
- **ui/heart**: Add confirmation before accessing opencollective. [#106](https://github.com/Chinachu/Mirakurun/issues/106)
|
|
45
47
|
|
|
46
48
|
### Client Changes
|
|
@@ -50,17 +52,20 @@ Performance improvements, fixes for memory leaks and bugs related to EPG process
|
|
|
50
52
|
|
|
51
53
|
### Docker Changes
|
|
52
54
|
|
|
53
|
-
- Update base image to `node:16.
|
|
55
|
+
- Update base image to `node:16.13.1-buster-slim`.
|
|
54
56
|
- Fixed the exit signal handling properly.
|
|
55
57
|
- When a `SIGHUP` is received in a container, only the node process can be restarted quickly.
|
|
58
|
+
- Add startup script (it runs `/opt/bin/startup`) support.
|
|
56
59
|
- default `docker-compose.yml` volumes has been changed:
|
|
57
60
|
- `/usr/local/mirakurun/*` → `/opt/mirakurun/*`
|
|
61
|
+
- default `docker-compose.yml` network_mode has been changed to `host`.
|
|
62
|
+
- it enables IPv6 options.
|
|
58
63
|
|
|
59
64
|
### Other Changes
|
|
60
65
|
|
|
61
66
|
- **package**: Drop engine support `node@12`.
|
|
62
67
|
- **package**: Update dependencies.
|
|
63
|
-
-
|
|
68
|
+
- remove `colors` package for urgent security reasons.
|
|
64
69
|
|
|
65
70
|
## 3.8.0 (2021-08-10)
|
|
66
71
|
|
package/CONTRIBUTING.md
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
## Report an Issue (問題の報告)
|
|
4
4
|
|
|
5
|
+
All issues that are not bugs or cannot be reproduced will be closed due to the limited moderating capacity at the moment.
|
|
6
|
+
If you have any comments or requests, please send them to the Discord.<br>
|
|
7
|
+
現在、管理体制が限定的なため、バグではないか、バグが再現できない Issue は全てクローズされます。
|
|
8
|
+
ご意見・ご要望については、是非 Discord にお寄せください。
|
|
9
|
+
|
|
5
10
|
* https://github.com/Chinachu/Mirakurun/issues
|
|
6
11
|
|
|
7
12
|
When reporting an issue we also need as much information about your environment
|
package/README.md
CHANGED
|
@@ -2,13 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
# Mirakurun
|
|
4
4
|
|
|
5
|
-
DVR Tuner Server
|
|
5
|
+
DVR Tuner Server for Japanese TV which designed for the "Air" (in development codename).
|
|
6
6
|
|
|
7
7
|
[![npm version][npm-img]][npm-url]
|
|
8
8
|
[![npm downloads][downloads-image]][downloads-url]
|
|
9
9
|
[![Linux Build][azure-pipelines-img]][azure-pipelines-url]
|
|
10
|
-
[![Dependency Status][dep-img]][dep-url]
|
|
11
|
-
[![devDependency Status][devdep-img]][devdep-url]
|
|
12
10
|
[](https://tip4commit.com/github/Chinachu/Mirakurun)
|
|
13
11
|
[](#backers)
|
|
14
12
|
[](#sponsors)
|
|
@@ -88,6 +86,7 @@ You can use PM2 Plus to realtime monitoring if running by PM2.
|
|
|
88
86
|
* [Rivarun](https://github.com/Chinachu/Rivarun)
|
|
89
87
|
* [BonDriver_Mirakurun](https://github.com/Chinachu/BonDriver_Mirakurun)
|
|
90
88
|
* Mirakurun Client ([Built-in](https://github.com/Chinachu/Mirakurun/blob/master/src/client.ts))
|
|
89
|
+
* "Air" (in development codename)
|
|
91
90
|
* [Chinachu γ](https://github.com/Chinachu/Chinachu/wiki/Gamma-Installation-V2)
|
|
92
91
|
* [EPGStation](https://github.com/l3tnun/EPGStation)
|
|
93
92
|
|
|
@@ -146,8 +145,4 @@ Support this project by becoming a sponsor. Your logo will show up here with a l
|
|
|
146
145
|
[downloads-url]: https://npmjs.org/package/mirakurun
|
|
147
146
|
[azure-pipelines-img]: https://dev.azure.com/chinachu/Mirakurun/_apis/build/status/Chinachu.Mirakurun?branchName=master
|
|
148
147
|
[azure-pipelines-url]: hhttps://dev.azure.com/chinachu/Mirakurun/_build/latest?definitionId=1&branchName=master
|
|
149
|
-
[dep-img]: https://david-dm.org/Chinachu/Mirakurun.svg
|
|
150
|
-
[dep-url]: https://david-dm.org/Chinachu/Mirakurun
|
|
151
|
-
[devdep-img]: https://david-dm.org/Chinachu/Mirakurun/dev-status.svg
|
|
152
|
-
[devdep-url]: https://david-dm.org/Chinachu/Mirakurun#info=devDependencies
|
|
153
148
|
[docker-url]: https://hub.docker.com/r/chinachu/mirakurun
|
package/api.d.ts
CHANGED
package/api.yml
CHANGED
|
@@ -2,10 +2,10 @@ swagger: '2.0'
|
|
|
2
2
|
info:
|
|
3
3
|
title: Mirakurun
|
|
4
4
|
version: ~
|
|
5
|
-
description: DVR Tuner Server
|
|
5
|
+
description: DVR Tuner Server for Japanese TV.
|
|
6
6
|
contact:
|
|
7
|
-
name:
|
|
8
|
-
url: https://
|
|
7
|
+
name: Chinachu Project
|
|
8
|
+
url: https://chinachu.moe/
|
|
9
9
|
basePath: /api
|
|
10
10
|
consumes:
|
|
11
11
|
- application/json
|
|
@@ -489,6 +489,14 @@ definitions:
|
|
|
489
489
|
type: boolean
|
|
490
490
|
disableWebUI:
|
|
491
491
|
type: boolean
|
|
492
|
+
allowIPv4CidrRanges:
|
|
493
|
+
type: array
|
|
494
|
+
items:
|
|
495
|
+
type: string
|
|
496
|
+
allowIPv6CidrRanges:
|
|
497
|
+
type: array
|
|
498
|
+
items:
|
|
499
|
+
type: string
|
|
492
500
|
|
|
493
501
|
ConfigTuners:
|
|
494
502
|
type: array
|
package/bin/postinstall.js
CHANGED
|
@@ -23,14 +23,13 @@ const fs = require("fs");
|
|
|
23
23
|
const path = require("path");
|
|
24
24
|
const child_process = require("child_process");
|
|
25
25
|
const semver = require("semver");
|
|
26
|
-
const colors = require("colors");
|
|
27
26
|
const pkg = require("../package.json");
|
|
28
27
|
|
|
29
28
|
// node check
|
|
30
29
|
if (semver.satisfies(process.version, pkg.engines.node) === true) {
|
|
31
|
-
console.log("Version:", `node@${process.version}
|
|
30
|
+
console.log("Version:", `node@${process.version}`, "[OK]");
|
|
32
31
|
} else {
|
|
33
|
-
console.error("Version:", `node@${process.version}
|
|
32
|
+
console.error("Version:", `node@${process.version}`, "[NG]", "Expected:", pkg.engines.node);
|
|
34
33
|
process.exit(1);
|
|
35
34
|
}
|
|
36
35
|
|
|
@@ -57,9 +56,9 @@ if (process.platform === "linux" || process.platform === "darwin") {
|
|
|
57
56
|
const pm2Version = child_process.execSync("pm2 -v", { encoding: "utf8" }).trim();
|
|
58
57
|
const pm2Expected = ">=2.4.0";
|
|
59
58
|
if (semver.satisfies(pm2Version, pm2Expected) === true) {
|
|
60
|
-
console.log("Version:", `pm2@${pm2Version}
|
|
59
|
+
console.log("Version:", `pm2@${pm2Version}`, "[OK]");
|
|
61
60
|
} else {
|
|
62
|
-
console.error("Version:", `pm2@${pm2Version}
|
|
61
|
+
console.error("Version:", `pm2@${pm2Version}`, "[NG]", "Expected:", pm2Expected);
|
|
63
62
|
process.exit(1);
|
|
64
63
|
}
|
|
65
64
|
|
|
@@ -72,7 +71,7 @@ if (process.platform === "linux" || process.platform === "darwin") {
|
|
|
72
71
|
]
|
|
73
72
|
});
|
|
74
73
|
} catch (e) {
|
|
75
|
-
console.log("Caution: `pm2 startup` has failed. you can try fix yourself."
|
|
74
|
+
console.log("Caution: `pm2 startup` has failed. you can try fix yourself.");
|
|
76
75
|
}
|
|
77
76
|
|
|
78
77
|
child_process.execSync("pm2 start processes.json", {
|
|
@@ -95,9 +94,9 @@ if (process.platform === "linux" || process.platform === "darwin") {
|
|
|
95
94
|
const winserVersion = child_process.execSync("winser -v", { encoding: "utf8" }).replace(/^[a-z]+ /, "").trim();
|
|
96
95
|
const winserExpected = ">=1.0.3 <2.0.0";
|
|
97
96
|
if (semver.satisfies(winserVersion, winserExpected) === true) {
|
|
98
|
-
console.log("Version:", `winser@${winserVersion}
|
|
97
|
+
console.log("Version:", `winser@${winserVersion}`, "[OK]");
|
|
99
98
|
} else {
|
|
100
|
-
console.error("Version:", `winser@${winserVersion}
|
|
99
|
+
console.error("Version:", `winser@${winserVersion}`, "[NG]", "Expected:", winserExpected);
|
|
101
100
|
process.exit(1);
|
|
102
101
|
}
|
|
103
102
|
|
package/doc/Configuration.md
CHANGED
|
@@ -27,6 +27,8 @@ epgRetrievalTime: 600000 # integer (ms)
|
|
|
27
27
|
logoDataInterval: 604800000 # integer (ms)
|
|
28
28
|
disableEITParsing: false # boolean
|
|
29
29
|
disableWebUI: false # boolean
|
|
30
|
+
allowIPv4CidrRanges: ["10.0.0.0/8", "127.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"] # array of string
|
|
31
|
+
allowIPv6CidrRanges: ["fc00::/7"] # array of string
|
|
30
32
|
```
|
|
31
33
|
|
|
32
34
|
### Environment Values (Docker)
|
|
@@ -43,6 +45,8 @@ EPG_RETRIEVAL_TIME
|
|
|
43
45
|
LOGO_DATA_INTERVAL
|
|
44
46
|
DISABLE_EIT_PARSING
|
|
45
47
|
DISABLE_WEB_UI
|
|
48
|
+
ALLOW_IPV4_CIDR_RANGES
|
|
49
|
+
ALLOW_IPV6_CIDR_RANGES
|
|
46
50
|
```
|
|
47
51
|
|
|
48
52
|
## tuners.yml
|
package/doc/Platforms.md
CHANGED
|
@@ -93,11 +93,41 @@ see: [Configuration.md](Configuration.md)
|
|
|
93
93
|
|
|
94
94
|
### 💡 How to Use: Non-DVB Devices
|
|
95
95
|
|
|
96
|
+
#### option: **using custom startup script**
|
|
97
|
+
|
|
98
|
+
```sh
|
|
99
|
+
mkdir -p /opt/mirakurun/opt/bin
|
|
100
|
+
vim /opt/mirakurun/opt/bin/startup # example ↓
|
|
101
|
+
chmod +x /opt/mirakurun/opt/bin/startup
|
|
102
|
+
```
|
|
103
|
+
```bash
|
|
104
|
+
#!/bin/bash
|
|
105
|
+
|
|
106
|
+
if !(type "recpt1" > /dev/null 2>&1); then
|
|
107
|
+
apt-get update
|
|
108
|
+
apt-get install -y --no-install-recommends git autoconf automake
|
|
109
|
+
|
|
110
|
+
cd /tmp
|
|
111
|
+
git clone https://github.com/stz2012/recpt1.git
|
|
112
|
+
cd recpt1/recpt1
|
|
113
|
+
./autogen.sh
|
|
114
|
+
./configure --prefix /opt
|
|
115
|
+
make
|
|
116
|
+
make install
|
|
117
|
+
fi
|
|
118
|
+
|
|
119
|
+
recpt1 -v
|
|
120
|
+
```
|
|
121
|
+
```sh
|
|
122
|
+
docker-compose down
|
|
123
|
+
docker-compose run --rm -e SETUP=true mirakurun
|
|
124
|
+
docker-compose up -d
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
#### option: **using static build**
|
|
128
|
+
|
|
96
129
|
```sh
|
|
97
|
-
$
|
|
98
|
-
/usr/local/bin/recpt1
|
|
99
|
-
$ cp /usr/local/bin/recpt1 /opt/mirakurun/opt/bin/
|
|
100
|
-
$ vim /opt/mirakurun/config/tuners.yml
|
|
130
|
+
$ cp /usr/local/bin/something-static /opt/mirakurun/opt/bin/
|
|
101
131
|
```
|
|
102
132
|
|
|
103
133
|
### 💡 Locations (Container)
|
|
@@ -112,6 +142,7 @@ $ vim /opt/mirakurun/config/tuners.yml
|
|
|
112
142
|
* `programs.json`
|
|
113
143
|
* Opt: `/opt/`
|
|
114
144
|
* `bin/`
|
|
145
|
+
* `bin/startup` - custom startup script (optional)
|
|
115
146
|
|
|
116
147
|
### 💡 Locations (Host)
|
|
117
148
|
|
|
@@ -125,6 +156,7 @@ $ vim /opt/mirakurun/config/tuners.yml
|
|
|
125
156
|
* `programs.json`
|
|
126
157
|
* Opt: `/opt/mirakurun/opt/`
|
|
127
158
|
* `bin/`
|
|
159
|
+
* `bin/startup` - custom startup script (optional)
|
|
128
160
|
|
|
129
161
|
## Linux
|
|
130
162
|
|
package/docker/container-init.sh
CHANGED
|
@@ -37,6 +37,13 @@ if [ -f "/app-data/programs.yml" -a ! -f "$PROGRAMS_DB_PATH" ]; then
|
|
|
37
37
|
cp -v "/app-data/programs.yml" "$PROGRAMS_DB_PATH"
|
|
38
38
|
fi
|
|
39
39
|
|
|
40
|
+
# custom startup script
|
|
41
|
+
if [ -e "/opt/bin/startup" ]; then
|
|
42
|
+
echo "executing /opt/bin/startup..."
|
|
43
|
+
/opt/bin/startup
|
|
44
|
+
echo "done."
|
|
45
|
+
fi
|
|
46
|
+
|
|
40
47
|
# only for test purpose
|
|
41
48
|
if !(type "arib-b25-stream-test" > /dev/null 2>&1); then
|
|
42
49
|
npm --prefix /opt install arib-b25-stream-test
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
version: "3.7"
|
|
2
|
-
networks:
|
|
3
|
-
default:
|
|
4
|
-
name: mirakurun
|
|
5
2
|
services:
|
|
6
3
|
mirakurun:
|
|
7
4
|
build:
|
|
@@ -14,11 +11,10 @@ services:
|
|
|
14
11
|
- SYS_NICE
|
|
15
12
|
environment:
|
|
16
13
|
TZ: Asia/Tokyo
|
|
14
|
+
DOCKER_NETWORK: host
|
|
17
15
|
# LOG_LEVEL: "3"
|
|
18
16
|
# DEBUG: "true"
|
|
19
|
-
|
|
20
|
-
- 40772:40772
|
|
21
|
-
# - 9229:9229
|
|
17
|
+
network_mode: host
|
|
22
18
|
devices:
|
|
23
19
|
- /dev/bus:/dev/bus
|
|
24
20
|
- /dev/dvb:/dev/dvb
|
package/lib/Mirakurun/EPG.js
CHANGED
package/lib/Mirakurun/EPG.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EPG.js","sourceRoot":"","sources":["../../src/Mirakurun/EPG.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EPG.js","sourceRoot":"","sources":["../../src/Mirakurun/EPG.ts"],"names":[],"mappings":"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"}
|
package/lib/Mirakurun/Server.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isPermittedHost = void 0;
|
|
4
3
|
const fs = require("fs");
|
|
5
4
|
const http = require("http");
|
|
6
|
-
const ip = require("ip");
|
|
7
5
|
const express = require("express");
|
|
8
6
|
const cors = require("cors");
|
|
9
7
|
const openapi = require("express-openapi");
|
|
@@ -35,7 +33,7 @@ class Server {
|
|
|
35
33
|
if (serverConfig.port) {
|
|
36
34
|
while (true) {
|
|
37
35
|
try {
|
|
38
|
-
if (system.
|
|
36
|
+
if (system.getIPv4AddressesForListen().length > 0) {
|
|
39
37
|
break;
|
|
40
38
|
}
|
|
41
39
|
}
|
|
@@ -47,13 +45,13 @@ class Server {
|
|
|
47
45
|
}
|
|
48
46
|
addresses = [
|
|
49
47
|
...addresses,
|
|
50
|
-
...system.
|
|
48
|
+
...system.getIPv4AddressesForListen(),
|
|
51
49
|
"127.0.0.1"
|
|
52
50
|
];
|
|
53
51
|
if (serverConfig.disableIPv6 !== true) {
|
|
54
52
|
addresses = [
|
|
55
53
|
...addresses,
|
|
56
|
-
...system.
|
|
54
|
+
...system.getIPv6AddressesForListen(),
|
|
57
55
|
"::1"
|
|
58
56
|
];
|
|
59
57
|
}
|
|
@@ -65,7 +63,7 @@ class Server {
|
|
|
65
63
|
if (!origin) {
|
|
66
64
|
return callback(null, true);
|
|
67
65
|
}
|
|
68
|
-
if (isPermittedHost(origin, serverConfig.hostname)) {
|
|
66
|
+
if (system.isPermittedHost(origin, serverConfig.hostname)) {
|
|
69
67
|
return callback(null, true);
|
|
70
68
|
}
|
|
71
69
|
return callback(new Error("Not allowed by CORS"));
|
|
@@ -78,18 +76,18 @@ class Server {
|
|
|
78
76
|
app.use(express.urlencoded({ extended: false }));
|
|
79
77
|
app.use(express.json());
|
|
80
78
|
app.use((req, res, next) => {
|
|
81
|
-
if (req.ip &&
|
|
79
|
+
if (req.ip && system.isPermittedIPAddress(req.ip) === false) {
|
|
82
80
|
req.socket.end();
|
|
83
81
|
return;
|
|
84
82
|
}
|
|
85
83
|
if (req.get("Origin") !== undefined) {
|
|
86
|
-
if (!isPermittedHost(req.get("Origin"), serverConfig.hostname)) {
|
|
84
|
+
if (!system.isPermittedHost(req.get("Origin"), serverConfig.hostname)) {
|
|
87
85
|
res.status(403).end();
|
|
88
86
|
return;
|
|
89
87
|
}
|
|
90
88
|
}
|
|
91
89
|
if (req.get("Referer") !== undefined) {
|
|
92
|
-
if (!isPermittedHost(req.get("Referer"), serverConfig.hostname)) {
|
|
90
|
+
if (!system.isPermittedHost(req.get("Referer"), serverConfig.hostname)) {
|
|
93
91
|
res.status(403).end();
|
|
94
92
|
return;
|
|
95
93
|
}
|
|
@@ -109,10 +107,8 @@ class Server {
|
|
|
109
107
|
app.use("/react", express.static("node_modules/react"));
|
|
110
108
|
app.use("/react-dom", express.static("node_modules/react-dom"));
|
|
111
109
|
app.use("/@fluentui/react", express.static("node_modules/@fluentui/react"));
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
app.get("/api/debug", (req, res) => res.redirect("/swagger-ui/?url=/api/docs"));
|
|
115
|
-
}
|
|
110
|
+
app.use("/swagger-ui", express.static("node_modules/swagger-ui-dist"));
|
|
111
|
+
app.use("/api/debug", express.static("lib/ui/swagger-ui.html"));
|
|
116
112
|
}
|
|
117
113
|
const api = yaml.load(fs.readFileSync("api.yml", "utf8"));
|
|
118
114
|
api.info.version = pkg.version;
|
|
@@ -173,13 +169,5 @@ class Server {
|
|
|
173
169
|
log.info("RPC interface is enabled");
|
|
174
170
|
}
|
|
175
171
|
}
|
|
176
|
-
function isPermittedHost(url, allowedHostname) {
|
|
177
|
-
const u = new URL(url);
|
|
178
|
-
if (u.hostname === "localhost" || u.hostname === allowedHostname || ip.isPrivate(u.hostname) === true) {
|
|
179
|
-
return true;
|
|
180
|
-
}
|
|
181
|
-
return false;
|
|
182
|
-
}
|
|
183
|
-
exports.isPermittedHost = isPermittedHost;
|
|
184
172
|
exports.default = Server;
|
|
185
173
|
//# sourceMappingURL=Server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/Mirakurun/Server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/Mirakurun/Server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/Mirakurun/api/status.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/Mirakurun/api/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,8 @@ export interface Server {
|
|
|
15
15
|
readonly logoDataInterval?: number;
|
|
16
16
|
readonly disableEITParsing?: true;
|
|
17
17
|
readonly disableWebUI?: true;
|
|
18
|
+
readonly allowIPv4CidrRanges?: string[];
|
|
19
|
+
readonly allowIPv6CidrRanges?: string[];
|
|
18
20
|
}
|
|
19
21
|
export interface Tuner {
|
|
20
22
|
readonly name: string;
|
package/lib/Mirakurun/config.js
CHANGED
|
@@ -6,8 +6,9 @@ const path_1 = require("path");
|
|
|
6
6
|
const os_1 = require("os");
|
|
7
7
|
const fs = require("fs");
|
|
8
8
|
const yaml = require("js-yaml");
|
|
9
|
+
const ipnum = require("ip-num");
|
|
9
10
|
const log = require("./log");
|
|
10
|
-
const { DOCKER, SERVER_CONFIG_PATH, TUNERS_CONFIG_PATH, CHANNELS_CONFIG_PATH, HOSTNAME, LOG_LEVEL, MAX_LOG_HISTORY, MAX_BUFFER_BYTES_BEFORE_READY, EVENT_END_TIMEOUT, PROGRAM_GC_INTERVAL, EPG_GATHERING_INTERVAL, EPG_RETRIEVAL_TIME, LOGO_DATA_INTERVAL, DISABLE_EIT_PARSING, DISABLE_WEB_UI } = process.env;
|
|
11
|
+
const { DOCKER, DOCKER_NETWORK, SERVER_CONFIG_PATH, TUNERS_CONFIG_PATH, CHANNELS_CONFIG_PATH, HOSTNAME, LOG_LEVEL, MAX_LOG_HISTORY, MAX_BUFFER_BYTES_BEFORE_READY, EVENT_END_TIMEOUT, PROGRAM_GC_INTERVAL, EPG_GATHERING_INTERVAL, EPG_RETRIEVAL_TIME, LOGO_DATA_INTERVAL, DISABLE_EIT_PARSING, DISABLE_WEB_UI, ALLOW_IPV4_CIDR_RANGES, ALLOW_IPV6_CIDR_RANGES } = process.env;
|
|
11
12
|
const IS_DOCKER = DOCKER === "YES";
|
|
12
13
|
function loadServer() {
|
|
13
14
|
const path = SERVER_CONFIG_PATH;
|
|
@@ -42,10 +43,18 @@ function loadServer() {
|
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
const config = load("server", path);
|
|
46
|
+
if (!config.allowIPv4CidrRanges) {
|
|
47
|
+
config.allowIPv4CidrRanges = ["10.0.0.0/8", "127.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"];
|
|
48
|
+
}
|
|
49
|
+
if (!config.allowIPv6CidrRanges) {
|
|
50
|
+
config.allowIPv6CidrRanges = ["fc00::/7"];
|
|
51
|
+
}
|
|
45
52
|
if (IS_DOCKER) {
|
|
46
53
|
config.path = "/var/run/mirakurun.sock";
|
|
47
|
-
|
|
48
|
-
|
|
54
|
+
if (DOCKER_NETWORK !== "host") {
|
|
55
|
+
config.port = 40772;
|
|
56
|
+
config.disableIPv6 = true;
|
|
57
|
+
}
|
|
49
58
|
if (!config.hostname && typeof HOSTNAME !== "undefined" && HOSTNAME.trim().length > 0) {
|
|
50
59
|
config.hostname = HOSTNAME.trim();
|
|
51
60
|
}
|
|
@@ -79,12 +88,46 @@ function loadServer() {
|
|
|
79
88
|
if (DISABLE_WEB_UI === "true") {
|
|
80
89
|
config.disableWebUI = true;
|
|
81
90
|
}
|
|
91
|
+
if (typeof ALLOW_IPV4_CIDR_RANGES !== "undefined" && ALLOW_IPV4_CIDR_RANGES.trim().length > 0) {
|
|
92
|
+
config.allowIPv4CidrRanges = ALLOW_IPV4_CIDR_RANGES.split(",");
|
|
93
|
+
}
|
|
94
|
+
if (typeof ALLOW_IPV6_CIDR_RANGES !== "undefined" && ALLOW_IPV6_CIDR_RANGES.trim().length > 0) {
|
|
95
|
+
config.allowIPv6CidrRanges = ALLOW_IPV6_CIDR_RANGES.split(",");
|
|
96
|
+
}
|
|
82
97
|
log.info("load server config (merged w/ env): %s", JSON.stringify(config));
|
|
83
98
|
}
|
|
84
99
|
if (!config.hostname) {
|
|
85
100
|
config.hostname = (0, os_1.hostname)();
|
|
86
101
|
log.info("detected hostname: %s", config.hostname);
|
|
87
102
|
}
|
|
103
|
+
{
|
|
104
|
+
const validRanges = [];
|
|
105
|
+
for (const range of config.allowIPv4CidrRanges) {
|
|
106
|
+
const [valid, errors] = ipnum.Validator.isValidIPv4CidrRange(range);
|
|
107
|
+
if (valid) {
|
|
108
|
+
validRanges.push(range);
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
for (const error of errors) {
|
|
112
|
+
log.error("invalid server config property `allowIPv4CidrRanges`: %s - %s", range, error);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
config.allowIPv4CidrRanges = validRanges;
|
|
116
|
+
}
|
|
117
|
+
{
|
|
118
|
+
const validRanges = [];
|
|
119
|
+
for (const range of config.allowIPv6CidrRanges) {
|
|
120
|
+
const [valid, errors] = ipnum.Validator.isValidIPv6CidrRange(range);
|
|
121
|
+
if (valid) {
|
|
122
|
+
validRanges.push(range);
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
for (const error of errors) {
|
|
126
|
+
log.error("invalid server config property `allowIPv6CidrRanges`: %s - %s", range, error);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
config.allowIPv6CidrRanges = validRanges;
|
|
130
|
+
}
|
|
88
131
|
return config;
|
|
89
132
|
}
|
|
90
133
|
exports.loadServer = loadServer;
|