@drumee/setup-infra 1.0.0

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.
Files changed (97) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +3 -0
  3. package/configs/etc/cron.d/drumee +6 -0
  4. package/configs/etc/postfix/master.cf +137 -0
  5. package/congigure/init/acme +69 -0
  6. package/congigure/init/mail +16 -0
  7. package/congigure/init/named +27 -0
  8. package/congigure/menu/menu -tmp +144 -0
  9. package/congigure/menu/menu-install +147 -0
  10. package/congigure/menu/menu-reinstall +15 -0
  11. package/congigure/prepare +10 -0
  12. package/congigure/preset/jitsi +9 -0
  13. package/congigure/setup-infra +58 -0
  14. package/congigure/setup-schemas +57 -0
  15. package/congigure/start +29 -0
  16. package/congigure/utils/configure +56 -0
  17. package/congigure/utils/dependencies +90 -0
  18. package/congigure/utils/jitsi +122 -0
  19. package/congigure/utils/misc +77 -0
  20. package/congigure/utils/prompt.sh +35 -0
  21. package/congigure/utils/setup-versions +7 -0
  22. package/index.js +572 -0
  23. package/package.json +30 -0
  24. package/template.js +453 -0
  25. package/templates/env/application.json.tpl +0 -0
  26. package/templates/env/logrotate.tpl +7 -0
  27. package/templates/etc/bind/named.conf.local +13 -0
  28. package/templates/etc/bind/named.conf.log +105 -0
  29. package/templates/etc/bind/named.conf.options +33 -0
  30. package/templates/etc/dkimkeys/dkim.key +1 -0
  31. package/templates/etc/drumee/conf.d/conference.json.tpl +9 -0
  32. package/templates/etc/drumee/conf.d/drumee.json.tpl +7 -0
  33. package/templates/etc/drumee/conf.d/exchange.json.tpl +4 -0
  34. package/templates/etc/drumee/conf.d/myDrumee.json.tpl +16 -0
  35. package/templates/etc/drumee/credential/db.json.tpl +6 -0
  36. package/templates/etc/drumee/credential/email.json.tpl +12 -0
  37. package/templates/etc/drumee/credential/ovh/dns.json.tpl +6 -0
  38. package/templates/etc/drumee/credential/ovh/dns.sh.tpl +7 -0
  39. package/templates/etc/drumee/credential/redis.json.tpl +6 -0
  40. package/templates/etc/drumee/credential/sms.json.tpl +6 -0
  41. package/templates/etc/drumee/dnsapi.sh.tpl +28 -0
  42. package/templates/etc/drumee/drumee.sh.tpl +43 -0
  43. package/templates/etc/drumee/env.json +29 -0
  44. package/templates/etc/drumee/infrastructure/internals/accel.conf.tpl +47 -0
  45. package/templates/etc/drumee/infrastructure/mfs.conf.tpl +16 -0
  46. package/templates/etc/drumee/infrastructure/platform.json.tpl +16 -0
  47. package/templates/etc/drumee/infrastructure/routes/main.conf.tpl +143 -0
  48. package/templates/etc/drumee/infrastructure/servers/tt.conf +199 -0
  49. package/templates/etc/drumee/ssl/main.conf.tpl +10 -0
  50. package/templates/etc/jitsi/jicofo/config +2 -0
  51. package/templates/etc/jitsi/jicofo/defaults/jicofo.conf +225 -0
  52. package/templates/etc/jitsi/jicofo/defaults/logging.properties +15 -0
  53. package/templates/etc/jitsi/jicofo/jicofo.conf.tpl +46 -0
  54. package/templates/etc/jitsi/jicofo/logging.properties.tpl +12 -0
  55. package/templates/etc/jitsi/meet.conf.tpl +131 -0
  56. package/templates/etc/jitsi/ssl.conf.tpl +25 -0
  57. package/templates/etc/jitsi/videobridge/config +2 -0
  58. package/templates/etc/jitsi/videobridge/defaults/jvb.conf +129 -0
  59. package/templates/etc/jitsi/videobridge/defaults/logging.properties +12 -0
  60. package/templates/etc/jitsi/videobridge/jvb.conf +67 -0
  61. package/templates/etc/jitsi/videobridge/logging.properties.tpl +12 -0
  62. package/templates/etc/jitsi/web/config.js.tpl +208 -0
  63. package/templates/etc/jitsi/web/defaults/default +26 -0
  64. package/templates/etc/jitsi/web/defaults/ffdhe2048.txt +8 -0
  65. package/templates/etc/jitsi/web/defaults/interface_config.js +273 -0
  66. package/templates/etc/jitsi/web/defaults/meet.conf +193 -0
  67. package/templates/etc/jitsi/web/defaults/nginx.conf +73 -0
  68. package/templates/etc/jitsi/web/defaults/settings-config.js +480 -0
  69. package/templates/etc/jitsi/web/defaults/ssl.conf +28 -0
  70. package/templates/etc/jitsi/web/defaults/system-config.js +60 -0
  71. package/templates/etc/jitsi/web/interface_config.js +273 -0
  72. package/templates/etc/mail/dkim.key +1 -0
  73. package/templates/etc/mailname +1 -0
  74. package/templates/etc/mysql/mariadb.conf.d/50-server.cnf +120 -0
  75. package/templates/etc/nginx/modules-enabled/90-turn-relay.conf +27 -0
  76. package/templates/etc/nginx/modules-enabled/90-turn-relay.conf.tpl +27 -0
  77. package/templates/etc/nginx/nginx.conf +65 -0
  78. package/templates/etc/nginx/sites-enabled/drumee.conf.tpl +33 -0
  79. package/templates/etc/nginx/sites-enabled/jitsi.conf.tpl +28 -0
  80. package/templates/etc/nginx/sites-enabled/turnrelay.conf.tpl +9 -0
  81. package/templates/etc/opendkim/KeyTable +1 -0
  82. package/templates/etc/postfix/main.cf +76 -0
  83. package/templates/etc/postfix/mysql-virtual-alias-maps.cf +5 -0
  84. package/templates/etc/postfix/mysql-virtual-mailbox-domains.cf +5 -0
  85. package/templates/etc/postfix/mysql-virtual-mailbox-maps.cf +5 -0
  86. package/templates/etc/prosody/conf.d/vhost.cfg.lua.tpl +162 -0
  87. package/templates/etc/prosody/defaults/conf.d/jitsi-meet.cfg.lua +406 -0
  88. package/templates/etc/prosody/defaults/credentials.sh +10 -0
  89. package/templates/etc/prosody/defaults/prosody.cfg.lua +225 -0
  90. package/templates/etc/prosody/defaults/saslauthd.conf +30 -0
  91. package/templates/etc/prosody/prosody.cfg.lua.tpl +203 -0
  92. package/templates/etc/turnserver.conf.tpl +46 -0
  93. package/templates/index.js +102 -0
  94. package/templates/schema/utils/configs.init.sql.tpl +20 -0
  95. package/templates/schema/utils/configs.update.sql.tpl +19 -0
  96. package/templates/server/ecosystem.config.js.tpl +8 -0
  97. package/templates/var/lib/bind/domain.tpl +70 -0
@@ -0,0 +1,273 @@
1
+ /* eslint-disable no-unused-vars, no-var, max-len */
2
+ /* eslint sort-keys: ["error", "asc", {"caseSensitive": false}] */
3
+
4
+ /**
5
+ * !!!IMPORTANT!!!
6
+ *
7
+ * This file is considered deprecated. All options will eventually be moved to
8
+ * config.js, and no new options should be added here.
9
+ */
10
+
11
+ var interfaceConfig = {
12
+ APP_NAME: 'Jitsi Meet',
13
+ AUDIO_LEVEL_PRIMARY_COLOR: 'rgba(255,255,255,0.4)',
14
+ AUDIO_LEVEL_SECONDARY_COLOR: 'rgba(255,255,255,0.2)',
15
+
16
+ /**
17
+ * A UX mode where the last screen share participant is automatically
18
+ * pinned. Valid values are the string "remote-only" so remote participants
19
+ * get pinned but not local, otherwise any truthy value for all participants,
20
+ * and any falsy value to disable the feature.
21
+ *
22
+ * Note: this mode is experimental and subject to breakage.
23
+ */
24
+ AUTO_PIN_LATEST_SCREEN_SHARE: 'remote-only',
25
+ BRAND_WATERMARK_LINK: '',
26
+
27
+ CLOSE_PAGE_GUEST_HINT: false, // A html text to be shown to guests on the close page, false disables it
28
+
29
+ DEFAULT_BACKGROUND: '#040404',
30
+ DEFAULT_WELCOME_PAGE_LOGO_URL: 'images/watermark.svg',
31
+
32
+ DISABLE_DOMINANT_SPEAKER_INDICATOR: false,
33
+
34
+ /**
35
+ * If true, notifications regarding joining/leaving are no longer displayed.
36
+ */
37
+ DISABLE_JOIN_LEAVE_NOTIFICATIONS: false,
38
+
39
+ /**
40
+ * If true, presence status: busy, calling, connected etc. is not displayed.
41
+ */
42
+ DISABLE_PRESENCE_STATUS: false,
43
+
44
+ /**
45
+ * Whether the ringing sound in the call/ring overlay is disabled. If
46
+ * {@code undefined}, defaults to {@code false}.
47
+ *
48
+ * @type {boolean}
49
+ */
50
+ DISABLE_RINGING: false,
51
+
52
+ /**
53
+ * Whether the speech to text transcription subtitles panel is disabled.
54
+ * If {@code undefined}, defaults to {@code false}.
55
+ *
56
+ * @type {boolean}
57
+ */
58
+ DISABLE_TRANSCRIPTION_SUBTITLES: false,
59
+
60
+ /**
61
+ * Whether or not the blurred video background for large video should be
62
+ * displayed on browsers that can support it.
63
+ */
64
+ DISABLE_VIDEO_BACKGROUND: false,
65
+
66
+ DISPLAY_WELCOME_FOOTER: true,
67
+ DISPLAY_WELCOME_PAGE_ADDITIONAL_CARD: false,
68
+ DISPLAY_WELCOME_PAGE_CONTENT: false,
69
+ DISPLAY_WELCOME_PAGE_TOOLBAR_ADDITIONAL_CONTENT: false,
70
+
71
+ ENABLE_DIAL_OUT: true,
72
+
73
+ // DEPRECATED. Animation no longer supported.
74
+ // ENABLE_FEEDBACK_ANIMATION: false,
75
+
76
+ FILM_STRIP_MAX_HEIGHT: 120,
77
+
78
+ GENERATE_ROOMNAMES_ON_WELCOME_PAGE: true,
79
+
80
+ /**
81
+ * Hide the invite prompt in the header when alone in the meeting.
82
+ */
83
+ HIDE_INVITE_MORE_HEADER: false,
84
+
85
+ JITSI_WATERMARK_LINK: 'https://jitsi.org',
86
+
87
+ LANG_DETECTION: true, // Allow i18n to detect the system language
88
+ LOCAL_THUMBNAIL_RATIO: 16 / 9, // 16:9
89
+
90
+ /**
91
+ * Maximum coefficient of the ratio of the large video to the visible area
92
+ * after the large video is scaled to fit the window.
93
+ *
94
+ * @type {number}
95
+ */
96
+ MAXIMUM_ZOOMING_COEFFICIENT: 1.3,
97
+
98
+ /**
99
+ * Whether the mobile app Jitsi Meet is to be promoted to participants
100
+ * attempting to join a conference in a mobile Web browser. If
101
+ * {@code undefined}, defaults to {@code true}.
102
+ *
103
+ * @type {boolean}
104
+ */
105
+ MOBILE_APP_PROMO: true,
106
+
107
+ // Names of browsers which should show a warning stating the current browser
108
+ // has a suboptimal experience. Browsers which are not listed as optimal or
109
+ // unsupported are considered suboptimal. Valid values are:
110
+ // chrome, chromium, edge, electron, firefox, nwjs, opera, safari
111
+ OPTIMAL_BROWSERS: [ 'chrome', 'chromium', 'firefox', 'nwjs', 'electron', 'safari' ],
112
+
113
+ POLICY_LOGO: null,
114
+ PROVIDER_NAME: 'Jitsi',
115
+
116
+ /**
117
+ * If true, will display recent list
118
+ *
119
+ * @type {boolean}
120
+ */
121
+ RECENT_LIST_ENABLED: true,
122
+ REMOTE_THUMBNAIL_RATIO: 1, // 1:1
123
+
124
+ SETTINGS_SECTIONS: [ 'devices', 'language', 'moderator', 'profile', 'calendar', 'sounds', 'more' ],
125
+
126
+ /**
127
+ * Specify which sharing features should be displayed. If the value is not set
128
+ * all sharing features will be shown. You can set [] to disable all.
129
+ */
130
+ // SHARING_FEATURES: ['email', 'url', 'dial-in', 'embed'],
131
+
132
+ SHOW_BRAND_WATERMARK: false,
133
+
134
+ /**
135
+ * Decides whether the chrome extension banner should be rendered on the landing page and during the meeting.
136
+ * If this is set to false, the banner will not be rendered at all. If set to true, the check for extension(s)
137
+ * being already installed is done before rendering.
138
+ */
139
+ SHOW_CHROME_EXTENSION_BANNER: false,
140
+
141
+ SHOW_JITSI_WATERMARK: true,
142
+ SHOW_POWERED_BY: false,
143
+ SHOW_PROMOTIONAL_CLOSE_PAGE: false,
144
+
145
+ /*
146
+ * If indicated some of the error dialogs may point to the support URL for
147
+ * help.
148
+ */
149
+ SUPPORT_URL: 'https://community.jitsi.org/',
150
+
151
+ // Browsers, in addition to those which do not fully support WebRTC, that
152
+ // are not supported and should show the unsupported browser page.
153
+ UNSUPPORTED_BROWSERS: [],
154
+
155
+ /**
156
+ * Whether to show thumbnails in filmstrip as a column instead of as a row.
157
+ */
158
+ VERTICAL_FILMSTRIP: true,
159
+
160
+ // Determines how the video would fit the screen. 'both' would fit the whole
161
+ // screen, 'height' would fit the original video height to the height of the
162
+ // screen, 'width' would fit the original video width to the width of the
163
+ // screen respecting ratio, 'nocrop' would make the video as large as
164
+ // possible and preserve aspect ratio without cropping.
165
+ VIDEO_LAYOUT_FIT: 'both',
166
+
167
+ /**
168
+ * If true, hides the video quality label indicating the resolution status
169
+ * of the current large video.
170
+ *
171
+ * @type {boolean}
172
+ */
173
+ VIDEO_QUALITY_LABEL_DISABLED: false,
174
+
175
+ /**
176
+ * How many columns the tile view can expand to. The respected range is
177
+ * between 1 and 5.
178
+ */
179
+ // TILE_VIEW_MAX_COLUMNS: 5,
180
+
181
+ // List of undocumented settings
182
+ /**
183
+ INDICATOR_FONT_SIZES
184
+ PHONE_NUMBER_REGEX
185
+ */
186
+
187
+ // -----------------DEPRECATED CONFIGS BELOW THIS LINE-----------------------------
188
+
189
+ /**
190
+ * Specify URL for downloading ios mobile app.
191
+ */
192
+ // MOBILE_DOWNLOAD_LINK_IOS: 'https://itunes.apple.com/us/app/jitsi-meet/id1165103905',
193
+
194
+ /**
195
+ * Specify custom URL for downloading android mobile app.
196
+ */
197
+ // MOBILE_DOWNLOAD_LINK_ANDROID: 'https://play.google.com/store/apps/details?id=org.jitsi.meet',
198
+
199
+ /**
200
+ * Specify mobile app scheme for opening the app from the mobile browser.
201
+ */
202
+ // APP_SCHEME: 'org.jitsi.meet',
203
+
204
+ // NATIVE_APP_NAME: 'Jitsi Meet',
205
+
206
+ /**
207
+ * Specify Firebase dynamic link properties for the mobile apps.
208
+ */
209
+ // MOBILE_DYNAMIC_LINK: {
210
+ // APN: 'org.jitsi.meet',
211
+ // APP_CODE: 'w2atb',
212
+ // CUSTOM_DOMAIN: undefined,
213
+ // IBI: 'com.atlassian.JitsiMeet.ios',
214
+ // ISI: '1165103905'
215
+ // },
216
+
217
+ /**
218
+ * Hide the logo on the deep linking pages.
219
+ */
220
+ // HIDE_DEEP_LINKING_LOGO: false,
221
+
222
+ /**
223
+ * Specify the Android app package name.
224
+ */
225
+ // ANDROID_APP_PACKAGE: 'org.jitsi.meet',
226
+
227
+ /**
228
+ * Specify custom URL for downloading f droid app.
229
+ */
230
+ // MOBILE_DOWNLOAD_LINK_F_DROID: 'https://f-droid.org/en/packages/org.jitsi.meet/',
231
+
232
+ // Connection indicators (
233
+ // CONNECTION_INDICATOR_AUTO_HIDE_ENABLED,
234
+ // CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT,
235
+ // CONNECTION_INDICATOR_DISABLED) got moved to config.js.
236
+
237
+ // Please use disableModeratorIndicator from config.js
238
+ // DISABLE_FOCUS_INDICATOR: false,
239
+
240
+ // Please use defaultLocalDisplayName from config.js
241
+ // DEFAULT_LOCAL_DISPLAY_NAME: 'me',
242
+
243
+ // Please use defaultLogoUrl from config.js
244
+ // DEFAULT_LOGO_URL: 'images/watermark.svg',
245
+
246
+ // Please use defaultRemoteDisplayName from config.js
247
+ // DEFAULT_REMOTE_DISPLAY_NAME: 'Fellow Jitster',
248
+
249
+ // Moved to config.js as `toolbarConfig.initialTimeout`.
250
+ // INITIAL_TOOLBAR_TIMEOUT: 20000,
251
+
252
+ // Please use `liveStreaming.helpLink` from config.js
253
+ // Documentation reference for the live streaming feature.
254
+ // LIVE_STREAMING_HELP_LINK: 'https://jitsi.org/live',
255
+
256
+ // Moved to config.js as `toolbarConfig.alwaysVisible`.
257
+ // TOOLBAR_ALWAYS_VISIBLE: false,
258
+
259
+ // This config was moved to config.js as `toolbarButtons`.
260
+ // TOOLBAR_BUTTONS: [],
261
+
262
+ // Moved to config.js as `toolbarConfig.timeout`.
263
+ // TOOLBAR_TIMEOUT: 4000,
264
+
265
+ // Allow all above example options to include a trailing comma and
266
+ // prevent fear when commenting out the last value.
267
+ // eslint-disable-next-line sort-keys
268
+ makeJsonParserHappy: 'even if last key had a trailing comma'
269
+
270
+ // No configuration value should follow this line.
271
+ };
272
+
273
+ /* eslint-enable no-unused-vars, no-var, max-len */
@@ -0,0 +1 @@
1
+ *@<%= domain %>:<%= domain %>:/etc/opendkim/keys/<%= domain %>/private.pem
@@ -0,0 +1 @@
1
+ <%= domain %>
@@ -0,0 +1,120 @@
1
+ #
2
+ # These groups are read by MariaDB server.
3
+ # Use it for options that only the server (but not clients) should see
4
+
5
+ # this is read by the standalone daemon and embedded servers
6
+ [server]
7
+
8
+ # this is only for the mysqld standalone daemon
9
+ [mysqld]
10
+
11
+ #
12
+ # * Basic Settings
13
+ #
14
+
15
+ #user = mysql
16
+ pid-file = /run/mysqld/mysqld.pid
17
+ basedir = /usr
18
+ datadir = <%= db_dir %>/run
19
+ #tmpdir = /tmp
20
+
21
+ # Broken reverse DNS slows down connections considerably and name resolve is
22
+ # safe to skip if there are no "host by domain name" access grants
23
+ #skip-name-resolve
24
+
25
+ # Instead of skip-networking the default is now to listen only on
26
+ # localhost which is more compatible and is not less secure.
27
+ bind-address = 127.0.0.1
28
+
29
+ #
30
+ # * Fine Tuning
31
+ #
32
+
33
+ #key_buffer_size = 128M
34
+ #max_allowed_packet = 1G
35
+ #thread_stack = 192K
36
+ #thread_cache_size = 8
37
+ # This replaces the startup script and checks MyISAM tables if needed
38
+ # the first time they are touched
39
+ #myisam_recover_options = BACKUP
40
+ #max_connections = 100
41
+ #table_cache = 64
42
+
43
+ #
44
+ # * Logging and Replication
45
+ #
46
+
47
+ # Note: The configured log file or its directory need to be created
48
+ # and be writable by the mysql user, e.g.:
49
+ # $ sudo mkdir -m 2750 /var/log/mysql
50
+ # $ sudo chown mysql /var/log/mysql
51
+
52
+ # Both location gets rotated by the cronjob.
53
+ # Be aware that this log type is a performance killer.
54
+ # Recommend only changing this at runtime for short testing periods if needed!
55
+ #general_log_file = /var/log/mysql/mysql.log
56
+ #general_log = 1
57
+
58
+ # When running under systemd, error logging goes via stdout/stderr to journald
59
+ # and when running legacy init error logging goes to syslog due to
60
+ # /etc/mysql/conf.d/mariadb.conf.d/50-mysqld_safe.cnf
61
+ # Enable this if you want to have error logging into a separate file
62
+ #log_error = /var/log/mysql/error.log
63
+ # Enable the slow query log to see queries with especially long duration
64
+ #log_slow_query_file = /var/log/mysql/mariadb-slow.log
65
+ #log_slow_query_time = 10
66
+ #log_slow_verbosity = query_plan,explain
67
+ #log-queries-not-using-indexes
68
+ #log_slow_min_examined_row_limit = 1000
69
+
70
+ # The following can be used as easy to replay backup logs or for replication.
71
+ # note: if you are setting up a replication slave, see README.Debian about
72
+ # other settings you may need to change.
73
+ #server-id = 1
74
+ #log_bin = /var/log/mysql/mysql-bin.log
75
+ expire_logs_days = 10
76
+ #max_binlog_size = 100M
77
+
78
+ #
79
+ # * SSL/TLS
80
+ #
81
+
82
+ # For documentation, please read
83
+ # https://mariadb.com/kb/en/securing-connections-for-client-and-server/
84
+ #ssl-ca = /etc/mysql/cacert.pem
85
+ #ssl-cert = /etc/mysql/server-cert.pem
86
+ #ssl-key = /etc/mysql/server-key.pem
87
+ #require-secure-transport = on
88
+
89
+ #
90
+ # * Character sets
91
+ #
92
+
93
+ # MySQL/MariaDB default is Latin1, but in Debian we rather default to the full
94
+ # utf8 4-byte character set. See also client.cnf
95
+ character-set-server = utf8mb4
96
+ collation-server = utf8mb4_general_ci
97
+
98
+ #
99
+ # * InnoDB
100
+ #
101
+
102
+ # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
103
+ # Read the manual for more InnoDB related options. There are many!
104
+ # Most important is to give InnoDB 80 % of the system RAM for buffer use:
105
+ # https://mariadb.com/kb/en/innodb-system-variables/#innodb_buffer_pool_size
106
+ #innodb_buffer_pool_size = 8G
107
+
108
+ # this is only for embedded server
109
+ [embedded]
110
+
111
+ # This group is only read by MariaDB servers, not by MySQL.
112
+ # If you use the same .cnf file for MySQL and MariaDB,
113
+ # you can put MariaDB-only options here
114
+ [mariadb]
115
+ transaction_isolation=READ-COMMITTED
116
+
117
+ # This group is only read by MariaDB-10.11 servers.
118
+ # If you use the same .cnf file for MariaDB of different versions,
119
+ # use this group for options that older servers don't understand
120
+ [mariadb-10.11]
@@ -0,0 +1,27 @@
1
+ stream {
2
+ map $ssl_preread_server_name $name {
3
+ <%= jitsi_domain %> web_backend;
4
+ turn-jitsi.<%= jitsi_domain %> turn_backend;
5
+ }
6
+
7
+ upstream web_backend {
8
+ server 127.0.0.1:4444;
9
+ }
10
+
11
+ upstream turn_backend {
12
+ server <%= public_ip4 %>:5349;
13
+ }
14
+
15
+ server {
16
+ listen 443;
17
+ listen [::]:443;
18
+
19
+ # since 1.11.5
20
+ ssl_preread on;
21
+
22
+ proxy_pass $name;
23
+
24
+ # Increase buffer to serve video
25
+ proxy_buffer_size 10m;
26
+ }
27
+ }
@@ -0,0 +1,27 @@
1
+ stream {
2
+ map $ssl_preread_server_name $name {
3
+ turn.<%= jitsi_domain %> web_backend;
4
+ turn-jitsi.<%= jitsi_domain %> turn_backend;
5
+ }
6
+
7
+ upstream web_backend {
8
+ server 127.0.0.1:3478;
9
+ }
10
+
11
+ upstream turn_backend {
12
+ server <%= public_ip4 %>:5349;
13
+ }
14
+
15
+ server {
16
+ listen 443 udp;
17
+ listen [::]:443 udp;
18
+
19
+ # since 1.11.5
20
+ ssl_preread on;
21
+
22
+ proxy_pass $name;
23
+
24
+ # Increase buffer to serve video
25
+ proxy_buffer_size 10m;
26
+ }
27
+ }
@@ -0,0 +1,65 @@
1
+
2
+ user www-data;
3
+ worker_processes 4;
4
+ pid /run/nginx.pid;
5
+ include /etc/nginx/modules-enabled/*.conf;
6
+
7
+ events {
8
+ worker_connections 768;
9
+ # multi_accept on;
10
+ }
11
+
12
+ http {
13
+
14
+ ##
15
+ # Basic Settings
16
+ ##
17
+
18
+ sendfile on;
19
+ tcp_nopush on;
20
+ tcp_nodelay on;
21
+ keepalive_timeout 65;
22
+ types_hash_max_size 2048;
23
+ server_tokens off;
24
+
25
+ # server_names_hash_bucket_size 64;
26
+ # server_name_in_redirect off;
27
+
28
+ client_max_body_size 0;
29
+
30
+ resolver <%= local_address %>;
31
+ include /etc/nginx/mime.types;
32
+ default_type application/octet-stream;
33
+
34
+ ##
35
+ # Logging Settings
36
+ ##
37
+
38
+ access_log /dev/stdout;
39
+ error_log /dev/stderr;
40
+
41
+ ##
42
+ # Gzip Settings
43
+ ##
44
+
45
+ gzip on;
46
+ gzip_types text/plain text/css application/javascript application/json;
47
+ gzip_vary on;
48
+ gzip_min_length 860;
49
+
50
+ ##
51
+ # Connection header for WebSocket reverse proxy
52
+ ##
53
+ map $http_upgrade $connection_upgrade {
54
+ default upgrade;
55
+ '' close;
56
+ }
57
+
58
+ ##
59
+ # Virtual Host Configs
60
+ ##
61
+ include /etc/nginx/sites-enabled/*.conf;
62
+ }
63
+
64
+
65
+ #daemon off;
@@ -0,0 +1,33 @@
1
+
2
+ # -------------------------------------------------------------
3
+ # !!!!!!! DO NOT EDIT !!!!!!!!
4
+ # Config file automatically generated by <infra-setup>
5
+ # Purpose : Provide Nginx config to a specific server
6
+ # Server name : <%= domain %>
7
+ # Date : <%= date %>
8
+ # -------------------------------------------------------------
9
+
10
+
11
+ proxy_cache_path <%= cache_dir %>/<%= domain %> levels=1:2 keys_zone=<%= domain %>_keys_zone:10m max_size=10g inactive=60m;
12
+ server {
13
+ listen 80;
14
+ listen [::]:80;
15
+ server_name <%= domain %>;
16
+ location / {
17
+ return 301 https://$host$request_uri;
18
+ }
19
+ }
20
+ server {
21
+ listen 443 ssl;
22
+ listen [::]:443 ssl;
23
+ #
24
+ root <%= server_dir %>;
25
+ server_name _;
26
+ client_max_body_size <%= max_body_size %>;
27
+ include /etc/drumee/ssl/main.conf;
28
+ include /etc/drumee/infrastructure/routes/*.conf;
29
+ include /etc/drumee/infrastructure/internals/*.conf;
30
+ include /etc/drumee/infrastructure/mfs.conf;
31
+ }
32
+
33
+
@@ -0,0 +1,28 @@
1
+ # -------------------------------------------------------------
2
+ # !!!!!!! DO NOT EDIT !!!!!!!!
3
+ # Config file automatically generated by <infra-setup>
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 80 default_server;
16
+ listen [::]:80 default_server;
17
+ server_name *.<%= jitsi_domain %>;
18
+ include /etc/jitsi/meet.conf;
19
+ }
20
+
21
+ server {
22
+ listen 443 ssl http2;
23
+ listen [::]:443 ssl http2;
24
+ server_name *.<%= jitsi_domain %>;
25
+ include /etc/jitsi/ssl.conf;
26
+ include /etc/jitsi/meet.conf;
27
+ }
28
+
@@ -0,0 +1,9 @@
1
+ server {
2
+ listen 4444 ssl;
3
+ listen [::]:4444 ssl;
4
+ server_name turn.<%= jitsi_domain %>;
5
+ ssl_certificate_key <%= certs_dir %>/<%= jitsi_domain %>_ecc/<%= jitsi_domain %>.key;
6
+ ssl_certificate <%= certs_dir %>/<%= jitsi_domain %>_ecc/fullchain.cer;
7
+ ssl_trusted_certificate <%= certs_dir %>/<%= jitsi_domain %>_ecc/ca.cer;
8
+ }
9
+
@@ -0,0 +1 @@
1
+ mail._domainkey.<%= domain %> <%= domain %>:mail:/etc/opendkim/keys/<%= domain %>/private.pem
@@ -0,0 +1,76 @@
1
+ # Configs generated by drumee-infra-setup
2
+ # See /usr/share/postfix/main.cf.dist for a commented, more complete version
3
+
4
+
5
+ # Debian specific: Specifying a file name will cause the first
6
+ # line of that file to be used as the name. The Debian default
7
+ # is /etc/mailname.
8
+ #myorigin = /etc/mailname
9
+
10
+ smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
11
+ biff = no
12
+
13
+ # appending .domain is the MUA's job.
14
+ append_dot_mydomain = no
15
+
16
+ # Uncomment the next line to generate "delayed mail" warnings
17
+ #delay_warning_time = 4h
18
+
19
+ readme_directory = no
20
+
21
+ # See http://www.postfix.org/COMPATIBILITY_README.html
22
+ # fresh installs.
23
+ compatibility_level = 3.7
24
+
25
+ #Reject unproper client
26
+ smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_reverse_client_hostname, reject_unknown_client_hostname, reject_unknown_sender_domain
27
+ smtpd_helo_required = yes
28
+ smtpd_helo_restrictions =
29
+ permit_mynetworks
30
+ permit_sasl_authenticated
31
+ reject_invalid_helo_hostname
32
+ reject_non_fqdn_helo_hostname
33
+ reject_unknown_helo_hostname
34
+ smtpd_client_restrictions = permit_mynetworks, reject
35
+
36
+ # TLS parameters
37
+ smtpd_tls_cert_file=<%= certs_dir %>/<%= domain %>_ecc/fullchain.cer
38
+ smtpd_tls_key_file=<%= certs_dir %>/<%= domain %>_ecc/<%= domain %>.key
39
+ smtpd_use_tls=yes
40
+ smtpd_tls_session_cache_database = <%= smptd_cache_db %>{data_directory}/smtpd_scache
41
+ smtp_tls_session_cache_database = <%= smptd_cache_db %>{data_directory}/smtp_scache
42
+ smtp_tls_security_level = may
43
+ # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
44
+ # information on enabling SSL in the smtp client.
45
+
46
+ smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
47
+ mydomain = <%= domain %>
48
+ myhostname = smtp.<%= domain %>
49
+ alias_maps = hash:/etc/aliases
50
+ alias_database = hash:/etc/aliases
51
+ myorigin = /etc/mailname
52
+ mydestination = localhost, localhost.localdomain, <%= domain %>
53
+ relayhost =
54
+ mynetworks = 127.0.0.0/8, 192.168.5.0/24, [::ffff:127.0.0.0]/104
55
+ mailbox_size_limit = 0
56
+ recipient_delimiter = +
57
+ inet_interfaces = all
58
+ #inet_protocols = all
59
+ inet_protocols = ipv4
60
+ #inet_protocols = ipv4, ipv6
61
+ virtual_transport = lmtp:unix:private/dovecot-lmtp
62
+ virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
63
+ virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
64
+ virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
65
+ local_recipient_maps =
66
+
67
+ milter_default_action = accept
68
+ milter_protocol = 2
69
+
70
+ smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:12301
71
+ non_smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:12301
72
+ maximal_queue_lifetime = 1d
73
+ minimal_backoff_time = 300s
74
+ maximal_backoff_time = 4000s
75
+ message_size_limit = 26214400
76
+ maillog_file = /var/log/postfix.log
@@ -0,0 +1,5 @@
1
+ user = <%= mail_user %>
2
+ password = <%= mail_password %>
3
+ hosts = 127.0.0.1
4
+ dbname = mailserver
5
+ query = SELECT destination FROM aliases WHERE source='%s'
@@ -0,0 +1,5 @@
1
+ user = <%= mail_user %>
2
+ password = <%= mail_password %>
3
+ hosts = 127.0.0.1
4
+ dbname = mailserver
5
+ query = SELECT 1 FROM domains WHERE name='%s'
@@ -0,0 +1,5 @@
1
+ user = <%= mail_user %>
2
+ password = <%= mail_password %>
3
+ hosts = 127.0.0.1
4
+ dbname = mailserver
5
+ query = SELECT 1 FROM users WHERE email='%s'