@drumee/setup-infra 1.0.15 → 1.0.16
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/bin/create-local-certs +38 -0
- package/bin/env +8 -5
- package/bin/init-acme +23 -4
- package/bin/init-named +1 -1
- package/bin/install +28 -4
- package/bin/prosody +21 -12
- package/index.js +314 -218
- package/package.json +2 -2
- package/templates/etc/bind/named.conf.local +39 -0
- package/templates/etc/bind/named.conf.options +13 -4
- package/templates/etc/dhcp/dhclient.conf +55 -0
- package/templates/etc/drumee/certs/jitsi.private.cnf +13 -0
- package/templates/etc/drumee/certs/private.cnf +13 -0
- package/templates/etc/drumee/conf.d/conference.private.json +9 -0
- package/templates/etc/drumee/conf.d/conference.public.json +9 -0
- package/templates/etc/drumee/conf.d/myDrumee.json.tpl +2 -1
- package/templates/etc/drumee/drumee.sh.tpl +32 -17
- package/templates/etc/drumee/infrastructure/internals/accel.private.conf.tpl +47 -0
- package/templates/etc/drumee/infrastructure/internals/{accel.conf.tpl → accel.public.conf.tpl} +1 -1
- package/templates/etc/drumee/infrastructure/{platform.json.tpl → mfs.private.conf.tpl} +5 -5
- package/templates/etc/drumee/infrastructure/{mfs.conf.tpl → mfs.public.conf.tpl} +1 -1
- package/templates/etc/drumee/infrastructure/routes/private.conf.tpl +143 -0
- package/templates/etc/drumee/infrastructure/routes/{main.conf.tpl → public.conf.tpl} +18 -28
- package/templates/etc/drumee/infrastructure/servers/tt.conf +9 -9
- package/templates/etc/drumee/ssl/private.conf.tpl +2 -1
- package/templates/etc/drumee/ssl/public.conf.tpl +1 -1
- package/templates/etc/jitsi/jicofo/jicofo.private.conf.tpl +46 -0
- package/templates/etc/jitsi/jicofo/{jicofo.conf.tpl → jicofo.public.conf.tpl} +7 -7
- package/templates/etc/jitsi/jicofo/sip-cmmunicator.private.properties +3 -0
- package/templates/etc/jitsi/jicofo/sip-cmmunicator.public.properties +3 -0
- package/templates/etc/jitsi/meet.private.conf.tpl +132 -0
- package/templates/etc/jitsi/{meet.conf.tpl → meet.public.conf.tpl} +5 -5
- package/templates/etc/jitsi/ssl.private.conf.tpl +25 -0
- package/templates/etc/jitsi/{ssl.conf.tpl → ssl.public.conf.tpl} +3 -3
- package/templates/etc/jitsi/videobridge/defaults/jvb.conf +1 -1
- package/templates/etc/jitsi/videobridge/jvb.private.conf +67 -0
- package/templates/etc/jitsi/videobridge/{jvb.conf → jvb.public.conf} +6 -6
- package/templates/etc/jitsi/web/config.private.js.tpl +208 -0
- package/templates/etc/jitsi/web/{config.js.tpl → config.public.js.tpl} +4 -4
- package/templates/etc/jitsi/web/defaults/default +2 -2
- package/templates/etc/jitsi/web/defaults/meet.conf +3 -3
- package/templates/etc/mysql/mariadb.conf.d/50-server.cnf +3 -3
- package/templates/etc/nginx/modules-enabled/{90-turn-relay.conf → 90-turn-relay.private.conf.tpl} +6 -6
- package/templates/etc/nginx/modules-enabled/{90-turn-relay.conf.tpl → 90-turn-relay.public.conf.tpl} +4 -4
- package/templates/etc/nginx/nginx.conf +3 -1
- package/templates/etc/nginx/sites-enabled/{public.conf.tpl → 01-public.conf.tpl} +7 -7
- package/templates/etc/nginx/sites-enabled/{private.conf.tpl → 02-private.conf.tpl} +6 -6
- package/templates/etc/nginx/sites-enabled/{jitsi.conf.tpl → 20-jitsi.private.conf.tpl} +9 -9
- package/templates/etc/nginx/sites-enabled/{pivate.jitsi.conf.tpl → 20-jitsi.public.conf.tpl} +9 -9
- package/templates/etc/nginx/sites-enabled/{localhost.conf → loopback.tpl} +10 -9
- package/templates/etc/nginx/sites-enabled/turnrelay.conf.tpl +4 -4
- package/templates/etc/prosody/conf.d/private.cfg.lua.tpl +51 -51
- package/templates/etc/prosody/conf.d/public.cfg.lua.tpl +47 -47
- package/templates/etc/prosody/defaults/conf.d/jitsi-meet.cfg.lua +3 -3
- package/templates/etc/turnserver.private.conf.tpl +46 -0
- package/templates/etc/{turnserver.conf.tpl → turnserver.public.conf.tpl} +3 -3
- package/templates/index.js +3 -2
- package/templates/utils.js +22 -147
- package/templates/var/lib/bind/domain.tpl +70 -0
- package/templates/var/lib/bind/private-reverse.tpl +1 -1
- package/templates/var/lib/bind/{prvate.tpl → private.tpl} +1 -10
- package/templates/var/lib/bind/public-reverse.tpl +7 -7
- package/templates/var/lib/bind/public.tpl +7 -7
- package/bin/init-private +0 -40
- package/bin/set-jitsi-conf +0 -14
- package/template.js +0 -453
- package/templates/etc/bind/named.conf.private +0 -21
- package/templates/etc/bind/named.conf.public +0 -21
- package/templates/etc/drumee/conf.d/conference.json.tpl +0 -9
- package/templates/etc/drumee/dnsapi.sh.tpl +0 -28
- package/templates/etc/drumee/env.json +0 -29
- package/templates/etc/jitsi/jicofo/sip-cmmunicator.properties +0 -3
- package/templates/etc/nginx/sites-enabled/public.jitsi.conf.tpl +0 -28
- package/templates/etc/prosody/conf.d/vhost.cfg.lua.tpl +0 -162
package/template.js
DELETED
|
@@ -1,453 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
// ======================================================
|
|
4
|
-
//
|
|
5
|
-
// ======================================================
|
|
6
|
-
const Template = require("./templates");
|
|
7
|
-
const { writeFileSync, readFileSync } = require(`jsonfile`);
|
|
8
|
-
const { exec } = require("shelljs");
|
|
9
|
-
const { join } = require("path");
|
|
10
|
-
const { isString } = require("lodash");
|
|
11
|
-
const { exit } = process;
|
|
12
|
-
const { sysEnv } = require("@drumee/server-essentials");
|
|
13
|
-
const { totalmem } = require('os');
|
|
14
|
-
const ARGV = require('minimist')(process.argv.slice(2));
|
|
15
|
-
const { existsSync } = require("fs");
|
|
16
|
-
|
|
17
|
-
const {
|
|
18
|
-
ACME_DIR,
|
|
19
|
-
ACME_EMAIL_ACCOUNT,
|
|
20
|
-
ADMIN_EMAIL,
|
|
21
|
-
DRUMEE_DESCRIPTION,
|
|
22
|
-
DRUMEE_DOMAIN_NAME,
|
|
23
|
-
FORCE_INSTALL,
|
|
24
|
-
NSUPDATE_KEY,
|
|
25
|
-
PUBLIC_IP4,
|
|
26
|
-
PUBLIC_IP6,
|
|
27
|
-
} = process.env;
|
|
28
|
-
|
|
29
|
-
let Dns = require("dns");
|
|
30
|
-
/**
|
|
31
|
-
*
|
|
32
|
-
* @param {*} l
|
|
33
|
-
* @returns
|
|
34
|
-
*/
|
|
35
|
-
function randomString(l = 16) {
|
|
36
|
-
let crypto = require("crypto");
|
|
37
|
-
return crypto
|
|
38
|
-
.randomBytes(16)
|
|
39
|
-
.toString("base64")
|
|
40
|
-
.replace(/[\+\/=]+/g, "");
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
*
|
|
45
|
-
* @param {*} data
|
|
46
|
-
* @returns
|
|
47
|
-
*/
|
|
48
|
-
function copyFields(data, keys) {
|
|
49
|
-
let r = {};
|
|
50
|
-
for (let key of keys) {
|
|
51
|
-
if (data[key] !== null) {
|
|
52
|
-
r[key] = data[key];
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return r;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
*
|
|
60
|
-
* @param {*} data
|
|
61
|
-
* @returns
|
|
62
|
-
*/
|
|
63
|
-
function factory(data) {
|
|
64
|
-
let route = "main";
|
|
65
|
-
let mode = "dist";
|
|
66
|
-
let base = `${data.server_dir}/${mode}/${route}/`;
|
|
67
|
-
return {
|
|
68
|
-
name: "factory",
|
|
69
|
-
script: `./index.js`,
|
|
70
|
-
autorestart: false,
|
|
71
|
-
cwd: `${base}/offline/factory`,
|
|
72
|
-
env: copyFields(data, [
|
|
73
|
-
"domain_name",
|
|
74
|
-
"domain_desc",
|
|
75
|
-
"data_dir",
|
|
76
|
-
"system_user",
|
|
77
|
-
"system_group",
|
|
78
|
-
"drumee_root",
|
|
79
|
-
"cache_dir",
|
|
80
|
-
"acme_dir",
|
|
81
|
-
"acme_dns",
|
|
82
|
-
"acme_email_account",
|
|
83
|
-
"static_dir",
|
|
84
|
-
"runtime_dir",
|
|
85
|
-
"credential_dir",
|
|
86
|
-
]),
|
|
87
|
-
dependencies: [`pm2-logrotate`],
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
*
|
|
93
|
-
* @param {*} data
|
|
94
|
-
* @returns
|
|
95
|
-
*/
|
|
96
|
-
function worker(data, instances = 1, exec_mode = 'fork_mode') {
|
|
97
|
-
let {
|
|
98
|
-
script,
|
|
99
|
-
pushPort,
|
|
100
|
-
route,
|
|
101
|
-
restPort,
|
|
102
|
-
name,
|
|
103
|
-
server_dir,
|
|
104
|
-
runtime_dir,
|
|
105
|
-
mode,
|
|
106
|
-
} = data;
|
|
107
|
-
if (!server_dir) server_dir = join(runtime_dir, 'server');
|
|
108
|
-
let base = `${server_dir}/${mode}/${route}`;
|
|
109
|
-
return {
|
|
110
|
-
name,
|
|
111
|
-
script,
|
|
112
|
-
cwd: base,
|
|
113
|
-
args: `--pushPort=${pushPort} --restPort=${restPort}`,
|
|
114
|
-
route,
|
|
115
|
-
env: {
|
|
116
|
-
cwd: base,
|
|
117
|
-
route,
|
|
118
|
-
server_home: base,
|
|
119
|
-
},
|
|
120
|
-
dependencies: [`pm2-logrotate`],
|
|
121
|
-
exec_mode,
|
|
122
|
-
instances
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/***
|
|
127
|
-
*
|
|
128
|
-
*/
|
|
129
|
-
function writeTemplates(data, targets) {
|
|
130
|
-
if (ARGV.readonly || ARGV.noCheck) {
|
|
131
|
-
console.log("Readonly", targets, data);
|
|
132
|
-
return
|
|
133
|
-
}
|
|
134
|
-
for (let target of targets) {
|
|
135
|
-
if (isString(target)) {
|
|
136
|
-
Template.write(data, target, target);
|
|
137
|
-
} else {
|
|
138
|
-
let { out, tpl } = target;
|
|
139
|
-
Template.write(data, out, tpl);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
*
|
|
146
|
-
*/
|
|
147
|
-
function writeEcoSystem(data) {
|
|
148
|
-
const ports = {
|
|
149
|
-
pushPort: 23000,
|
|
150
|
-
restPort: 24000,
|
|
151
|
-
mode: "dist",
|
|
152
|
-
route: "main",
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
let main = worker({
|
|
156
|
-
...data,
|
|
157
|
-
...ports,
|
|
158
|
-
name: "main",
|
|
159
|
-
script: "./index.js",
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
let instances = 4;
|
|
163
|
-
if ((totalmem() / (1024 * 1024 * 1024)) < 2) {
|
|
164
|
-
instances = 2;
|
|
165
|
-
} else if ((totalmem() / (1024 * 1024 * 1024) < 6)) {
|
|
166
|
-
instances = 3;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
let main_service = worker({
|
|
170
|
-
...data,
|
|
171
|
-
...ports,
|
|
172
|
-
name: "main/service",
|
|
173
|
-
script: "./service.js"
|
|
174
|
-
}, instances, 'cluster_mode');
|
|
175
|
-
|
|
176
|
-
let f = factory(data);
|
|
177
|
-
let routes = [main, main_service, f];
|
|
178
|
-
let ecosystem = "/etc/drumee/infrastructure/ecosystem.json";
|
|
179
|
-
if (ARGV.readonly) {
|
|
180
|
-
console.log("Readonly", ecosystem, routes);
|
|
181
|
-
return
|
|
182
|
-
}
|
|
183
|
-
writeFileSync(ecosystem, routes, { spaces: 2, EOL: "\r\n" });
|
|
184
|
-
let targets = [
|
|
185
|
-
{
|
|
186
|
-
out: `${data.server_dir}/ecosystem.config.js`,
|
|
187
|
-
tpl: "server/ecosystem.config.js",
|
|
188
|
-
},
|
|
189
|
-
];
|
|
190
|
-
writeTemplates({ ecosystem, chroot: Template.chroot }, targets);
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
*
|
|
195
|
-
*/
|
|
196
|
-
function getSysConfigs() {
|
|
197
|
-
let { domain_name } = sysEnv();
|
|
198
|
-
if (existsSync('/etc/drumee/drumee.sh') && !FORCE_INSTALL) {
|
|
199
|
-
console.log(
|
|
200
|
-
`There is already a domain name configured on this server (${domain_name})\n`, `Use FORCE_INSTALL=yes to override`);
|
|
201
|
-
exit(0)
|
|
202
|
-
}
|
|
203
|
-
domain_name = domain_name || ARGV.domain || DRUMEE_DOMAIN_NAME;
|
|
204
|
-
if (!domain_name) {
|
|
205
|
-
console.log("There no domain name defined for the installation");
|
|
206
|
-
exit(0)
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
let data = { ...sysEnv(), domain_name, domain: domain_name };
|
|
210
|
-
|
|
211
|
-
data.chroot = Template.chroot();
|
|
212
|
-
data.acme_store = join(data.certs_dir, `${data.domain_name}_ecc`);
|
|
213
|
-
data.ca_server = data.ca_server || data.acme_ssl;
|
|
214
|
-
if (data.own_ssl && data.certs_dir) {
|
|
215
|
-
data.own_certs_dir = data.certs_dir;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
if (!data.acme_dir) {
|
|
219
|
-
data.acme_dir = ACME_DIR || '/usr/share/acme';
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
if (!data.jitsi_domain) {
|
|
224
|
-
data.jitsi_domain = `jit.${data.domain_name}`;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
if (!data.nsupdate_key) {
|
|
228
|
-
data.nsupdate_key = NSUPDATE_KEY || "/etc/bind/keys/update.key";
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
if (!data.domain_desc) {
|
|
232
|
-
data.domain_desc = DRUMEE_DESCRIPTION || 'My Drumee Box';
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
if (!data.admin_email) {
|
|
236
|
-
data.admin_email = ADMIN_EMAIL || `admin@${data.domain_name}`;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
if (!data.acme_email_account) {
|
|
240
|
-
data.acme_email_account = ACME_EMAIL_ACCOUNT || data.admin_email;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
if (!data.public_ip4) {
|
|
244
|
-
data.public_ip4 = PUBLIC_IP4;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
if (!data.public_ip6) {
|
|
248
|
-
data.public_ip6 = PUBLIC_IP6;
|
|
249
|
-
}
|
|
250
|
-
let d = new Date().toISOString();
|
|
251
|
-
let [day, hour] = d.split('T')
|
|
252
|
-
day = day.replace(/\-/g, '');
|
|
253
|
-
hour = hour.split(':')[0];
|
|
254
|
-
data.serial = `${day}${hour}`;
|
|
255
|
-
let target = [
|
|
256
|
-
"etc/drumee/drumee.sh",
|
|
257
|
-
{
|
|
258
|
-
tpl: "etc/bind/db.domain",
|
|
259
|
-
out: `etc/bind/db.${domain_name}`
|
|
260
|
-
},
|
|
261
|
-
"etc/bind/named.conf.local",
|
|
262
|
-
"etc/bind/named.conf.log",
|
|
263
|
-
"etc/bind/named.conf.options"
|
|
264
|
-
];
|
|
265
|
-
|
|
266
|
-
writeTemplates(data, target);
|
|
267
|
-
|
|
268
|
-
let args = { ...data };
|
|
269
|
-
let keys = ["myConf", "chroot", "date"];
|
|
270
|
-
|
|
271
|
-
for (let key of keys) {
|
|
272
|
-
delete args[key];
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
if (ARGV.readonly) {
|
|
276
|
-
return args;
|
|
277
|
-
}
|
|
278
|
-
console.log("Writing main conf into drumee.json");
|
|
279
|
-
writeFileSync(Template.chroot("etc/drumee/drumee.json"), args, {
|
|
280
|
-
spaces: 2,
|
|
281
|
-
EOL: "\r\n",
|
|
282
|
-
});
|
|
283
|
-
return args;
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
/**
|
|
287
|
-
*
|
|
288
|
-
*/
|
|
289
|
-
function writeInfraConf(data) {
|
|
290
|
-
writeEcoSystem(data);
|
|
291
|
-
const etc = 'etc';
|
|
292
|
-
const nginx = join(etc, 'nginx');
|
|
293
|
-
const drumee = join(etc, 'drumee');
|
|
294
|
-
const infra = join(drumee, 'infrastructure');
|
|
295
|
-
let targets = [
|
|
296
|
-
|
|
297
|
-
// Nginx
|
|
298
|
-
`${nginx}/sites-enabled/drumee.conf`,
|
|
299
|
-
|
|
300
|
-
// Drumee
|
|
301
|
-
`${drumee}/ssl/main.conf`,
|
|
302
|
-
`${drumee}/conf.d/conference.json`,
|
|
303
|
-
`${drumee}/conf.d/drumee.json`,
|
|
304
|
-
`${drumee}/conf.d/exchange.json`,
|
|
305
|
-
`${drumee}/conf.d/myDrumee.json`,
|
|
306
|
-
`${drumee}/conf.d/conference.json`,
|
|
307
|
-
`${drumee}/conf.d/drumee.json`,
|
|
308
|
-
`${drumee}/conf.d/exchange.json`,
|
|
309
|
-
`${drumee}/conf.d/myDrumee.json`,
|
|
310
|
-
|
|
311
|
-
`${infra}/mfs.conf`,
|
|
312
|
-
`${infra}/routes/main.conf`,
|
|
313
|
-
`${infra}/internals/accel.conf`
|
|
314
|
-
];
|
|
315
|
-
writeTemplates(data, targets);
|
|
316
|
-
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
/**
|
|
320
|
-
*
|
|
321
|
-
*/
|
|
322
|
-
function writeJitsiConf(data) {
|
|
323
|
-
const etc = 'etc';
|
|
324
|
-
const jitsi = join(etc, 'jitsi');
|
|
325
|
-
const nginx = join(etc, 'nginx');
|
|
326
|
-
const prosody = join(etc, 'prosody');
|
|
327
|
-
const drumee = join(etc, 'drumee');
|
|
328
|
-
let targets = [
|
|
329
|
-
// Jicofo
|
|
330
|
-
`${jitsi}/jicofo/config`,
|
|
331
|
-
`${jitsi}/jicofo/jicofo.conf`,
|
|
332
|
-
`${jitsi}/jicofo/logging.properties`,
|
|
333
|
-
|
|
334
|
-
// Jitsi Video Bridge
|
|
335
|
-
`${jitsi}/videobridge/config`,
|
|
336
|
-
`${jitsi}/videobridge/jvb.conf`,
|
|
337
|
-
`${jitsi}/videobridge/logging.properties`,
|
|
338
|
-
|
|
339
|
-
// Jitsi meet
|
|
340
|
-
`${jitsi}/ssl.conf`,
|
|
341
|
-
`${jitsi}/meet.conf`,
|
|
342
|
-
`${jitsi}/web/config.js`,
|
|
343
|
-
`${jitsi}/web/interface_config.js`,
|
|
344
|
-
`${jitsi}/web/defaults/ffdhe2048.txt`,
|
|
345
|
-
|
|
346
|
-
// Nginx
|
|
347
|
-
`${nginx}/sites-enabled/jitsi.conf`,
|
|
348
|
-
`${nginx}/modules-enabled/90-turn-relay.conf`,
|
|
349
|
-
//`${nginx}/sites-enabled/turnrelay.conf`,
|
|
350
|
-
|
|
351
|
-
// Prosody
|
|
352
|
-
`${prosody}/prosody.cfg.lua`,
|
|
353
|
-
`${prosody}/defaults/credentials.sh`,
|
|
354
|
-
{
|
|
355
|
-
out: `${prosody}/conf.d/${data.jitsi_domain}.cfg.lua`,
|
|
356
|
-
tpl: `${prosody}/conf.d/vhost.cfg.lua`
|
|
357
|
-
},
|
|
358
|
-
// `${prosody}/migrator.cfg.lua`,
|
|
359
|
-
|
|
360
|
-
// Turnserver
|
|
361
|
-
`${etc}/turnserver.conf`,
|
|
362
|
-
|
|
363
|
-
`${drumee}/conf.d/conference.json`,
|
|
364
|
-
|
|
365
|
-
];
|
|
366
|
-
writeTemplates(data, targets);
|
|
367
|
-
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
/**
|
|
371
|
-
*
|
|
372
|
-
*/
|
|
373
|
-
function makeConfData(data) {
|
|
374
|
-
const routes = join('etc', 'drumee', 'infrastructure', 'routes');
|
|
375
|
-
//let jitsi_domain = `jit.${data.domain}`;
|
|
376
|
-
data = {
|
|
377
|
-
...data,
|
|
378
|
-
turn_sercret: randomString(),
|
|
379
|
-
prosody_plugins: "/usr/share/jitsi-meet/prosody-plugins/",
|
|
380
|
-
xmpp_password: randomString(),
|
|
381
|
-
public_port: 9090,
|
|
382
|
-
ice_port: 10000,
|
|
383
|
-
jicofo_password: randomString(),
|
|
384
|
-
jvb_password: randomString(),
|
|
385
|
-
app_id: randomString(),
|
|
386
|
-
app_password: randomString(),
|
|
387
|
-
//jitsi_domain,
|
|
388
|
-
ui_base: join(data.ui_base, 'dist', 'main'),
|
|
389
|
-
location: '/-/',
|
|
390
|
-
pushPort: 23000,
|
|
391
|
-
restPort: 24000,
|
|
392
|
-
};
|
|
393
|
-
if (!data.export_dir) data.export_dir = null;
|
|
394
|
-
if (!data.import_dir) data.import_dir = null;
|
|
395
|
-
return data
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
/**
|
|
399
|
-
*
|
|
400
|
-
*/
|
|
401
|
-
function privateIp() {
|
|
402
|
-
return new Promise(async (res, rej) => {
|
|
403
|
-
import("private-ip").then(module => { res(module.default) });
|
|
404
|
-
})
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
/**
|
|
408
|
-
*
|
|
409
|
-
* @returns
|
|
410
|
-
*/
|
|
411
|
-
function configure() {
|
|
412
|
-
return new Promise(async (res, rej) => {
|
|
413
|
-
let data = getSysConfigs();
|
|
414
|
-
data.chroot = Template.chroot();
|
|
415
|
-
const isPrivate = await privateIp();
|
|
416
|
-
let os = require("os");
|
|
417
|
-
let interfaces = os.networkInterfaces();
|
|
418
|
-
for (let name in interfaces) {
|
|
419
|
-
for (let dev of interfaces[name]) {
|
|
420
|
-
if (dev.family == 'IPv4' && !dev.internal) {
|
|
421
|
-
if (isPrivate(dev.address)) {
|
|
422
|
-
data.local_address = dev.address;
|
|
423
|
-
break;
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
if (data.local_address) break;
|
|
428
|
-
}
|
|
429
|
-
//console.log(addr, service);
|
|
430
|
-
data = makeConfData(data);
|
|
431
|
-
let func = [];
|
|
432
|
-
if (!ARGV.infra && !ARGV.jitsi) {
|
|
433
|
-
func = [writeInfraConf, writeJitsiConf];
|
|
434
|
-
} else {
|
|
435
|
-
if (ARGV.infra) func.push(writeInfraConf)
|
|
436
|
-
if (ARGV.jitsi) func.push(writeJitsiConf)
|
|
437
|
-
}
|
|
438
|
-
func.map(function (f) {
|
|
439
|
-
f(data);
|
|
440
|
-
})
|
|
441
|
-
res();
|
|
442
|
-
|
|
443
|
-
});
|
|
444
|
-
}
|
|
445
|
-
|
|
446
|
-
configure()
|
|
447
|
-
.then(() => {
|
|
448
|
-
exit(0);
|
|
449
|
-
})
|
|
450
|
-
.catch((e) => {
|
|
451
|
-
console.error("Failed to setup Drumee infra", e);
|
|
452
|
-
exit(0);
|
|
453
|
-
});
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Configs setup by Drumee setup-infra utility
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
include "/etc/bind/named.conf.log";
|
|
6
|
-
include "<%= nsupdate_key %>";
|
|
7
|
-
zone "<%= private_domain %>" {
|
|
8
|
-
type master;
|
|
9
|
-
file "/var/lib/bind/<%= private_domain %>";
|
|
10
|
-
allow-query { any; };
|
|
11
|
-
allow-update { key "update"; };
|
|
12
|
-
allow-transfer { <%= private_ip4 %>; };
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
<% if (typeof(private_reverse_ip4) !== "undefined" && private_reverse_ip4 != "" ) { %>
|
|
16
|
-
zone "<%= private_reverse_ip4 %>" {
|
|
17
|
-
type master;
|
|
18
|
-
file "/var/lib/bind/<%= private_ip4 %>";
|
|
19
|
-
allow-query { any; };
|
|
20
|
-
};
|
|
21
|
-
<% } %>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Configs setup by Drumee setup-infra utility
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
include "/etc/bind/named.conf.log";
|
|
6
|
-
include "<%= nsupdate_key %>";
|
|
7
|
-
zone "<%= public_domain %>" {
|
|
8
|
-
type master;
|
|
9
|
-
file "/var/lib/bind/<%= public_domain %>";
|
|
10
|
-
allow-query { any; };
|
|
11
|
-
allow-update { key "update"; };
|
|
12
|
-
allow-transfer { <%= public_ip4 %>; };
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
<% if (typeof(reverse_ip4) !== "undefined" && reverse_ip4 != "" ) { %>
|
|
16
|
-
zone "<%= reverse_ip4 %>" {
|
|
17
|
-
type master;
|
|
18
|
-
file "/var/lib/bind/<%= public_ip4 %>";
|
|
19
|
-
allow-query { any; };
|
|
20
|
-
};
|
|
21
|
-
<% } %>
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# -------------------------------------------------------------
|
|
2
|
-
# ! DO NOT EDIT !
|
|
3
|
-
# Config file automatically generated by <setup-infra>
|
|
4
|
-
# Date : <%= date %>
|
|
5
|
-
# -------------------------------------------------------------
|
|
6
|
-
|
|
7
|
-
export CERTS_DIR=<%= certs_dir %>
|
|
8
|
-
export ACME_DIR=<%= acme_dir %>
|
|
9
|
-
export ACME_DNS=<%= acme_dns %>
|
|
10
|
-
export ACME_EMAIL_ACCOUNT=<%= acme_email_account %>
|
|
11
|
-
export DRUMEE_CACHE_DIR=<%= cache_dir %>
|
|
12
|
-
export DRUMEE_DATA_DIR=<%= data_dir %>
|
|
13
|
-
export DRUMEE_DOMAIN_NAME=<%= domain_name %>
|
|
14
|
-
export DRUMEE_LOG_DIR=<%= log_dir %>
|
|
15
|
-
export DRUMEE_MFS_DIR=<%= data_dir %>/mfs
|
|
16
|
-
export DRUMEE_RUNTIME_DIR=<%= runtime_dir %>
|
|
17
|
-
export DRUMEE_SCHEMAS_DIR=<%= runtime_dir %>/server/schemas
|
|
18
|
-
export DRUMEE_SERVER_HOME=<%= server_dir %>
|
|
19
|
-
export DRUMEE_SERVER_NODE=<%= runtime_dir %>/dist/main/node_modules
|
|
20
|
-
export DRUMEE_STATIC_DIR=<%= static_dir %>
|
|
21
|
-
export DRUMEE_SYSTEM_GROUP=<%= system_group %>
|
|
22
|
-
export DRUMEE_SYSTEM_USER=<%= system_user %>
|
|
23
|
-
export DRUMEE_TMP_DIR=<%= runtime_dir %>/tmp
|
|
24
|
-
export DRUMEE_UI_HOME=<%= runtime_dir %>/ui
|
|
25
|
-
export LE_WORKING_DIR=<%= acme_dir %>
|
|
26
|
-
export OWN_SSL_CERTS_DIR=<%= own_certs_dir %>
|
|
27
|
-
export OWN_SSL=<%= own_ssl %>
|
|
28
|
-
export PUBLIC_UI_ROOT=<%= public_ui_root %>
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"ACME_CA_SERVER":"<%= ca_server %>",
|
|
3
|
-
"CERTS_DIR":"<%= certs_dir %>",
|
|
4
|
-
"ACME_DIR":"<%= acme_dir %>",
|
|
5
|
-
"ACME_DNS":"<%= acme_dns %>",
|
|
6
|
-
"ACME_EMAIL_ACCOUNT":"<%= acme_email_account %>",
|
|
7
|
-
"ACME_STORE":"<%= certs_dir %>/<%= domain_name %>_ecc",
|
|
8
|
-
"APP_ROUTING_MARK":"<%= public_ui_root %>",
|
|
9
|
-
"CREDENTIAL_DIR": "/etc/drumee/credential",
|
|
10
|
-
"DOMAIN_DESC": "My Drumee Box",
|
|
11
|
-
"CACHE_DIR":"<%= cache_dir %>",
|
|
12
|
-
"DATA_DIR":"<%= data_dir %>",
|
|
13
|
-
"DOMAIN_NAME":"<%= domain_name %>",
|
|
14
|
-
"EXPORT_DIR":"<%= export_dir %>",
|
|
15
|
-
"IMPORT_DIR":"<%= import_dir %>",
|
|
16
|
-
"LOG_DIR":"<%= log_dir %>",
|
|
17
|
-
"MFS_DIR":"<%= data_dir %>/mfs",
|
|
18
|
-
"RUNTIME_DIR":"<%= runtime_dir %>",
|
|
19
|
-
"SCHEMAS_DIR":"/opt/drumee/schemas",
|
|
20
|
-
"SERVER_HOME":"<%= server_dir %>",
|
|
21
|
-
"SERVER_NODE":"<%= runtime_dir %>/dist/main/node_modules",
|
|
22
|
-
"STATIC_DIR":"<%= static_dir %>",
|
|
23
|
-
"SYSTEM_GROUP":"<%= system_group %>",
|
|
24
|
-
"SYSTEM_USER":"<%= system_user %>",
|
|
25
|
-
"TMP_DIR":"<%= runtime_dir %>/tmp",
|
|
26
|
-
"UI_HOME":"<%= runtime_dir %>/ui",
|
|
27
|
-
"JITSI_DOMAIN":"<%= jitsi_domain %>",
|
|
28
|
-
"PUBLIC_UI_ROOT":"/-"
|
|
29
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# -------------------------------------------------------------
|
|
2
|
-
# !!!!!!! DO NOT EDIT !!!!!!!!
|
|
3
|
-
# Config file automatically generated by <setup-infra>
|
|
4
|
-
# Purpose : Provide Nginx config to a specific server
|
|
5
|
-
# Server name : <%= domain %>
|
|
6
|
-
# Date : <%= date %>
|
|
7
|
-
# -------------------------------------------------------------
|
|
8
|
-
|
|
9
|
-
map $http_upgrade $connection_upgrade {
|
|
10
|
-
default upgrade;
|
|
11
|
-
'' close;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
server {
|
|
15
|
-
listen <%= http_port %> default_server;
|
|
16
|
-
listen [::]:<%= http_port %> default_server;
|
|
17
|
-
server_name *.<%= jitsi_public %>;
|
|
18
|
-
include /etc/jitsi/meet.conf;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
server {
|
|
22
|
-
listen <%= https_port %> ssl http2;
|
|
23
|
-
listen [::]:<%= https_port %> ssl http2;
|
|
24
|
-
server_name <%= jitsi_public %>;
|
|
25
|
-
include /etc/jitsi/ssl.conf;
|
|
26
|
-
include /etc/jitsi/meet.conf;
|
|
27
|
-
}
|
|
28
|
-
|