|
@@ -0,0 +1,470 @@
|
|
1
|
+Installer WikiPP
|
|
2
|
+----------------
|
|
3
|
+
|
|
4
|
+### Dépendences
|
|
5
|
+
|
|
6
|
+Le guide d\'installation est relativement bien fait¹ Cependant
|
|
7
|
+l\'emplacement des dépendences est un peu floue :
|
|
8
|
+
|
|
9
|
+- cppCMS : l\'installation est déjà renseigner [ici](#cppcms)
|
|
10
|
+- CPPDB : il faut chopper le code et le compiler
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+ git clone https://github.com/melpon/cppdb
|
|
14
|
+ cd cppdb
|
|
15
|
+ mkdir build
|
|
16
|
+ cd build
|
|
17
|
+ cmake ..
|
|
18
|
+ make
|
|
19
|
+ sudo make install
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+- Gettext : est normalement disponible via le gestionnaire de packet
|
|
24
|
+ `apt install gettext`
|
|
25
|
+
|
|
26
|
+### Notes sur l\'installation
|
|
27
|
+
|
|
28
|
+La procédure l\'installation est plutôt bien décrite mais il y une typo
|
|
29
|
+a un endroit, je remet la liste des commandes dans l\'ordre :
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+ wget https://github.com/cppweb/wikipp.git
|
|
33
|
+ cd wikipp
|
|
34
|
+ mkdir build
|
|
35
|
+ cd build
|
|
36
|
+ cmake ..
|
|
37
|
+ make
|
|
38
|
+ sudo make install
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+De même, il manque la création de l\'utilisateur gérant da base de
|
|
43
|
+donnée, je reprend cette phase en l\'y ajoutant. Les commandes suivantes
|
|
44
|
+sont pour les moteurs mariadb ou mysql; réferes-toi sur le site¹ pour
|
|
45
|
+une base sqlite3 ou postgres. Adaptes la premières commande pour
|
|
46
|
+t\'authentifier avec les droits de créations de base et sur le moteur de
|
|
47
|
+base de données ; dans mon cas `sudo mariadb`, mais il peut s\'agir de
|
|
48
|
+`mysql -u root -p`.
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+ sudo mariadb
|
|
52
|
+ CREATE DATABASE wikipp;
|
|
53
|
+ CREATE USER wikipp IDENTIFIED BY "mot de passe fort";
|
|
54
|
+ GRANT ALL PRIVILEGES ON wikipp.* TO wikipp ;
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+### Note sur la configuration
|
|
59
|
+
|
|
60
|
+Si tu doutes de l\'emplacement de l\'installation de wikipp, lance la
|
|
61
|
+commande suivante :
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+ find / -iname wikipp 2>/dev/null
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+Ignore le résultat dans `/usr`, il s\'agit de la base de donnée; dans la
|
|
69
|
+suite je comsidère que ce répertoire est ` /usr/local/share/wikipp`. Une
|
|
70
|
+fois obtenu, nous pouvons finaliser da base de donénes en important la
|
|
71
|
+structure par défaut; souviens toi que je suis sur mariadb, adaptes à
|
|
72
|
+ton moteur :
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+ sudo mariadb wikipp < /usr/local/share/wikipp/sql/mysql.sql
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+Sauvegarde le modele de configuration, avant de le modifier (renplace
|
|
80
|
+emacs par ton éditeur texte) :
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+ cp /usr/local/share/wikipp/sample_config.js /usr/local/share/wikipp/sample_config.js.example
|
|
84
|
+ emacs /usr/local/share/wikipp/sample_config.js
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+Il faut maintenant décommenter et modifier les lignes; la première
|
|
89
|
+permet de se connecter à la base de données. Dans mon cas :
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+ // MySQL Sample Connection String
|
|
93
|
+ //
|
|
94
|
+ "connection_string" : "mysql:database=wikipp;user=user wikipp;password=mot de passe fort;@pool_size=16",
|
|
95
|
+ //
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+Il faut ensuite générer une clef privée pour l\'application, en fonction
|
|
100
|
+de la librairie utilisée.
|
|
101
|
+
|
|
102
|
+#### Avec libgcrypt et openssl
|
|
103
|
+
|
|
104
|
+La commande génerera le morceau de configuration a ajouter dans le
|
|
105
|
+fichier de configuration. Executes la commande de manière à pouvoir
|
|
106
|
+copier son résultat ou en le redirigeant dans un fichier (i.e
|
|
107
|
+`$gt;/tmp`)
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+ cppcms_make_key --hmac sha1 --cbc aes
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+En cherchant les clefs des valeurs renvoyés par cette commande,
|
|
115
|
+j\'obtiens le bloc suivant dans le fichier de configuration, où «CLEF
|
|
116
|
+PRIVÉE » finit les chaines de caractère générées :
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+ "session" : {
|
|
120
|
+ "expire" : "renew",
|
|
121
|
+ "location" : "client",
|
|
122
|
+ "timeout" : 2592000, // One month 24*3600*30
|
|
123
|
+ "cookies" : {
|
|
124
|
+ "prefix" : "wikipp"
|
|
125
|
+ },
|
|
126
|
+ "client" : {
|
|
127
|
+ "cbc" :"aes",
|
|
128
|
+ "cbc_key" :"CBC CLEF PRIVÉE",
|
|
129
|
+ "hmac" :"sha1",
|
|
130
|
+ "hmac_key" :"HMAC CLEF PRIVÉE"
|
|
131
|
+ }
|
|
132
|
+ }
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+#### Sans libgcrypt et openssl
|
|
137
|
+
|
|
138
|
+La procédure est la même que précédemment, cependant la commande de
|
|
139
|
+génération est la configuration sont différentes :
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+ "session" : {
|
|
143
|
+ "expire" : "renew",
|
|
144
|
+ "location" : "client",
|
|
145
|
+ "timeout" : 2592000, // One month 24*3600*30
|
|
146
|
+ "cookies" : {
|
|
147
|
+ "prefix" : "wikipp"
|
|
148
|
+ },
|
|
149
|
+ "client" : {
|
|
150
|
+ "hmac" :"sha1",
|
|
151
|
+ "hmac_key" :"HMAC CLEF PRIVÉE"
|
|
152
|
+ }
|
|
153
|
+ }
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+#### Configuration du socket
|
|
158
|
+
|
|
159
|
+L\'executable de wikipp peut-être atteinds via différents types de
|
|
160
|
+socket; la configuration se fait dans la partie `"service"` de notre
|
|
161
|
+fichier conf.js qu\'on passe en option. On peut utiliser un fichier
|
|
162
|
+socket ou l\'interface réseau interne `127.*.*.*`. Je trouve plus simple
|
|
163
|
+d\'utiliser cette dernière solution, qui est aussi la solution retenue
|
|
164
|
+dans mes autres billets sur nginx.
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+ "service" : {
|
|
168
|
+ "port" : 8065,
|
|
169
|
+ "api" : "fastcgi",
|
|
170
|
+ "ip" : "127.0.0.89"
|
|
171
|
+ },
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+Depuis ma machine, l\'adresse du wiki sera sur `http://127.0.0.89:8065`.
|
|
176
|
+
|
|
177
|
+#### Configuration du serveur web
|
|
178
|
+
|
|
179
|
+Je me suis basé sur la doc officiel pour configurer le serveur nginx;
|
|
180
|
+pour les autres serveurs, regarde la doc officiel dans les sources.
|
|
181
|
+Sinon c\'est exactement le même bloc, mais avec une redirection vers
|
|
182
|
+l\'interface interne⁴. J\'ai ajouter toute la configuration, avec le
|
|
183
|
+certificat SSL multi-domaine générer par certbot, la redirection de HTTP
|
|
184
|
+vers HTTPS. Des billets dédiés existent pour expliquer spécifiquement
|
|
185
|
+ces configurations; si tu n\'en veux pas, ajoute simplement au bloc
|
|
186
|
+`location ~ ^/wikipp.*$`. Il faut aussi que les fichiers
|
|
187
|
+`/var/log/www/wiki/access.log` et `/var/log/www/wiki/error.log`
|
|
188
|
+existent. Dans le fichie
|
|
189
|
+`/etc/nginx/sites-avalaible/wiki.domain.org.conf`
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+ server {
|
|
193
|
+ server_name wiki.domain.org;
|
|
194
|
+
|
|
195
|
+ access_log /var/log/www/wiki/access.log;
|
|
196
|
+ error_log /var/log/www/wiki/error.log error;
|
|
197
|
+
|
|
198
|
+ root /var/www/wiki;
|
|
199
|
+
|
|
200
|
+ location ~ ^/wikipp.*$ {
|
|
201
|
+ fastcgi_pass 127.0.0.89:8065;
|
|
202
|
+
|
|
203
|
+ # Setup value of PATH_INFO variable
|
|
204
|
+ fastcgi_split_path_info ^(/wikipp)((?:/.*))?$;
|
|
205
|
+ fastcgi_param PATH_INFO $fastcgi_path_info;
|
|
206
|
+
|
|
207
|
+ #
|
|
208
|
+ # You can either use "include fastcgi_params;"
|
|
209
|
+ # or set the variables below manually
|
|
210
|
+ #
|
|
211
|
+
|
|
212
|
+ # All supported CGI variables
|
|
213
|
+ fastcgi_param SCRIPT_NAME /wikipp;
|
|
214
|
+ fastcgi_param QUERY_STRING $query_string;
|
|
215
|
+ fastcgi_param REQUEST_METHOD $request_method;
|
|
216
|
+ fastcgi_param CONTENT_TYPE $content_type;
|
|
217
|
+ fastcgi_param CONTENT_LENGTH $content_length;
|
|
218
|
+
|
|
219
|
+ fastcgi_param REQUEST_URI $request_uri;
|
|
220
|
+ fastcgi_param DOCUMENT_URI $document_uri;
|
|
221
|
+ fastcgi_param DOCUMENT_ROOT $document_root;
|
|
222
|
+ fastcgi_param SERVER_PROTOCOL $server_protocol;
|
|
223
|
+ fastcgi_param GATEWAY_INTERFACE CGI/1.1;
|
|
224
|
+ fastcgi_param SERVER_SOFTWARE nginx;
|
|
225
|
+
|
|
226
|
+ fastcgi_param REMOTE_ADDR $remote_addr;
|
|
227
|
+ fastcgi_param REMOTE_PORT $remote_port;
|
|
228
|
+ fastcgi_param SERVER_ADDR $server_addr;
|
|
229
|
+ fastcgi_param SERVER_PORT $server_port;
|
|
230
|
+ fastcgi_param SERVER_NAME $server_name;
|
|
231
|
+
|
|
232
|
+ # end of server variables
|
|
233
|
+ }
|
|
234
|
+
|
|
235
|
+ listen [::]:443 ssl; # managed by Certbot
|
|
236
|
+ listen 443 ssl; # managed by Certbot
|
|
237
|
+ ssl_certificate /etc/letsencrypt/live/wiki.domain.org/fullchain.pem; # managed by Certbot
|
|
238
|
+ ssl_certificate_key /etc/letsencrypt/live/wiki.domain.org/privkey.pem; # managed by Certbot
|
|
239
|
+
|
|
240
|
+ }server {
|
|
241
|
+ if ($host = wiki.domain.org) {
|
|
242
|
+ return 301 https://$host$request_uri;
|
|
243
|
+ } # managed by Certbot
|
|
244
|
+
|
|
245
|
+ listen 80;
|
|
246
|
+ listen [::]:80;
|
|
247
|
+ server_name wiki.domain.org;
|
|
248
|
+ return 404; # managed by Certbot
|
|
249
|
+ }
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+Après avoir fait un lien symbolique dans `/etc/nginx/sites-enabled/`,
|
|
254
|
+redémarre nginx; avec systemd : `systemctl restart nginx`
|
|
255
|
+
|
|
256
|
+#### Droits d\'utilisations
|
|
257
|
+
|
|
258
|
+Il faut que l\'utilisateur qui execute l\'application ai les droits de
|
|
259
|
+lecture sur le repo, voir d\'écriture sur le fichier socket (s\'il est
|
|
260
|
+utilisé). Je te conseille de créer un utilisateur dédié, membre du group
|
|
261
|
+www-data :
|
|
262
|
+
|
|
263
|
+`adduser wikipp --ingroup www-data --no-create-home`
|
|
264
|
+
|
|
265
|
+Vérifie que le repo soit effectivement lisible pour ce nouvel
|
|
266
|
+utilisateur, sinon va dedans (chez moi `/var/www/wiki`):
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+ chown -R wikipp /var/www/wiki
|
|
270
|
+ chmod -R u+rwx /var/www/wiki
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+### Tester
|
|
275
|
+
|
|
276
|
+Pour tester, place toi dans le répertoire des sources de wikipp en tant
|
|
277
|
+qu\'utilisateur wikipp, après les avoir compilées, et lance la commande
|
|
278
|
+suivante :
|
|
279
|
+
|
|
280
|
+`wikipp -c config.js `
|
|
281
|
+
|
|
282
|
+Si tu as interdit de s\'identifier en tant que wikipp, utilise su:
|
|
283
|
+
|
|
284
|
+`su -c "wikipp -c config.js"`
|
|
285
|
+
|
|
286
|
+Le site est désormais accessible ! Depuis la même machine :
|
|
287
|
+
|
|
288
|
+`http://127.0.0.89:8065`
|
|
289
|
+
|
|
290
|
+Ou si tu as déclaré ton nom de domaine :
|
|
291
|
+
|
|
292
|
+`http://wiki.domaine.org/wikipp`
|
|
293
|
+
|
|
294
|
+#### Configuration de la racine
|
|
295
|
+
|
|
296
|
+En omettant `wikipp` à la fin de l\'url, on se tape une sale erreur
|
|
297
|
+`403`. Ce qui n\'est pas top. Il suffit simplemet de modifier les
|
|
298
|
+configuration nginx. Remplace la ligne :
|
|
299
|
+
|
|
300
|
+`location ~ ^/wikipp.*$`
|
|
301
|
+
|
|
302
|
+Par :
|
|
303
|
+
|
|
304
|
+`location ~ ^/(?!(favicon\.ico|.*.css|robots\.txt|.*.js)) {`
|
|
305
|
+
|
|
306
|
+Relance nginx, et c\'est bon.
|
|
307
|
+
|
|
308
|
+Au lieu de lancer l\'application à partir du point wikipp, on la lance
|
|
309
|
+toujours, sauf exceptions; ces exceptions étant les feuille de style
|
|
310
|
+(.css), les scripts .js et le fichier pour les crawlers (robots.txt). Ça
|
|
311
|
+ajoute une couche de sécurité; ce qui ne dispense bien sûr pas des
|
|
312
|
+autres.
|
|
313
|
+
|
|
314
|
+`mv /var/www/wiki/conf.js /var/www/wiki/conf.ini`
|
|
315
|
+
|
|
316
|
+Ça pose un problème de sécunité; le fichier de conf est lisible via le
|
|
317
|
+serveur, puisqu\'il est en .js. Je propose le le changer en conf.ini
|
|
318
|
+
|
|
319
|
+#### Wikipp en tant que service
|
|
320
|
+
|
|
321
|
+On va pas lancer wikipp à la main à chaque démarrage de la machine. Le
|
|
322
|
+plus simple est de créer un service; je part lu principe que t\'es sur
|
|
323
|
+systemd, regarde de la doc de ton gestionnaire de service pour adapter.
|
|
324
|
+On va créer un fichier de service; remplace ton éditeur de texte :
|
|
325
|
+
|
|
326
|
+`emacs /etc/systemd/system/wiki.service`
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+ [Unit]
|
|
330
|
+ Description=WikiPP manager
|
|
331
|
+ After=mysql.service network.target
|
|
332
|
+
|
|
333
|
+ [Service]
|
|
334
|
+ ExecStart=/usr/local/bin/wikipp -c /var/www/wiki/config.ini
|
|
335
|
+ Type=simple
|
|
336
|
+ PIDFile=/run/wikipp.pid
|
|
337
|
+ WorkingDirectory=/var/www/wiki
|
|
338
|
+ User=wikipp
|
|
339
|
+
|
|
340
|
+ [Install]
|
|
341
|
+ WantedBy=multi-user.target
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+Ensuite on donne l\'autorisation et on actualise les daemon :
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+ chmod +x /etc/systemd/system/wiki.service
|
|
349
|
+ systemctl daemon-reload
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+Tu peux démarrer le serveur, et tester :
|
|
354
|
+
|
|
355
|
+`sudo systemctl start wiki`
|
|
356
|
+
|
|
357
|
+Et si tu veux que le service se lance automatiquement au démarrage⁵ :
|
|
358
|
+
|
|
359
|
+`sudo systemctl enable wiki`
|
|
360
|
+
|
|
361
|
+#### Autres configurations
|
|
362
|
+
|
|
363
|
+Le guide officiel prévoit d\'autres configuration pour les dictionnaires
|
|
364
|
+de traductions et la connection de la libraire CPPDB. Je n\'en ai pas eu
|
|
365
|
+besoin, sauf pour les langues; le français étant absent par défaut.
|
|
366
|
+
|
|
367
|
+### Messages d\'erreurs
|
|
368
|
+
|
|
369
|
+- `wikipp, error: system: Socket operation on non-socket (main.cpp:14)`
|
|
370
|
+ : Le socket est mal définit dans le fichier de configuration ou le
|
|
371
|
+ fichier de configuration est mal définit.
|
|
372
|
+- `Failed to load skin:view, no shared object/dll found` : il manque
|
|
373
|
+ des fichiers de la compilation. Soit la compilation a échouée, soit
|
|
374
|
+ l\'execution n\'a pas eu lieu dans le répertoire des sources.
|
|
375
|
+
|
|
376
|
+La commande `wikipp` permet de lancer le logiciel. Il faut cependant
|
|
377
|
+spécifier `-c` en option, pour le fichier de configuration fournit avec
|
|
378
|
+les sources `config.js`
|
|
379
|
+
|
|
380
|
+### Sources
|
|
381
|
+
|
|
382
|
+- \[1\][cppcms.com
|
|
383
|
+ install\_wikipp](http://cppcms.com/wikipp/en/page/install_wikipp)
|
|
384
|
+- \[2\][stackoverflow
|
|
385
|
+ compiler-error-msgfmt-command-not-found](https://stackoverflow.com/questions/9500898/compiler-error-msgfmt-command-not-found)
|
|
386
|
+- \[3\][matt.scharley.ne socket et
|
|
387
|
+ socat](https://matt.scharley.me/2012/03/debugging-application-interactions-with-socat.html)
|
|
388
|
+- \[4\][cppcms.com
|
|
389
|
+ cppcms\_tut\_web\_server](http://cppcms.com/wikipp/en/page/cppcms_1x_tut_web_server_config)
|
|
390
|
+- \[5\][digitalocean.com
|
|
391
|
+ manage-systemd-services-and-units](https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units)
|
|
392
|
+:::
|
|
393
|
+
|
|
394
|
+::: {#20210311-audio-stream .billet data-tag="audio stream html5"}
|
|
395
|
+Lecteur web de flux audio
|
|
396
|
+-------------------------
|
|
397
|
+
|
|
398
|
+HTML5 introduit des lecteurs média par défaut, capabde ve lire des fluxs
|
|
399
|
+de média. Bien sûr, les navigateurs intègre cette norme de manière
|
|
400
|
+inégale. La balise audio prend les atrributs suivants :
|
|
401
|
+
|
|
402
|
+- `controls` : affiche les controles
|
|
403
|
+- `preload` : pré-charge autonmatiquement
|
|
404
|
+- `autoplay` : lance aucomatiquement de contenu
|
|
405
|
+
|
|
406
|
+La source du flux peu-être précisée en attribut (`src`) ou dans des
|
|
407
|
+sous-éléments de types `<source>`. Il est possible de donner plusieurs
|
|
408
|
+sources; en cas d'échec, le lecteur tentera la suivante. C'est
|
|
409
|
+indispensable pour assurer une compatibilité entre les navigateurs.
|
|
410
|
+Aucun format audio n'est compatible partout pour le moment. Dans
|
|
411
|
+l'exemple suivant, jqai une source ogg ec ure autre en mp3, ce qui
|
|
412
|
+devrait mancher sur Opéra, Firefox, et Chromium.
|
|
413
|
+
|
|
414
|
+` `
|
|
415
|
+
|
|
416
|
+ <audio controls preload autoplay>
|
|
417
|
+ <source src="https://server.de.stream/1.mp3" type="audio/mpeg">
|
|
418
|
+ <source src="https://server.de.stream/1.ogg" type="audio/ogg">
|
|
419
|
+ </audio>
|
|
420
|
+
|
|
421
|
+:::
|
|
422
|
+
|
|
423
|
+::: {#20210310-vlc-radio .billet data-tag="vlc nginx"}
|
|
424
|
+Faire une webradio avec VLC
|
|
425
|
+---------------------------
|
|
426
|
+
|
|
427
|
+On le dira jamais assez : VLC est magique. Je m\'attarderais pas sur
|
|
428
|
+tout ce que ce petit soft est capable de faire; c\'est très long. Ce qui
|
|
429
|
+nous intéresse ici c\'est sa capacité à être compdètement utilisé dans
|
|
430
|
+la console, et à pouvoir créer un flux audio ou vidéo sur le réseau. Par
|
|
431
|
+exemple, si mon adresse de réseau local est 192.168.1.2, et que je veux
|
|
432
|
+diffuser le fichier radio.mp4 :
|
|
433
|
+
|
|
434
|
+` `
|
|
435
|
+
|
|
436
|
+ vlc -vvv radio.mp4 --sout "#standard{access=http,mux=ogg,dst=192.168.1.2}"
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+Pour tester, il est possible d\'ouvrir un flux réseau depuis
|
|
440
|
+l\'interface graphique, et y écrire `http://192.168.1.2`
|
|
441
|
+
|
|
442
|
+Pour faire une webradio, je propose de diffuser le contenu sur une
|
|
443
|
+interface réseau local (loop), et de rediriger les demandes de
|
|
444
|
+connexions externe vers ce flux interne. Pour cela, suit le tuto pour
|
|
445
|
+ajouter un sous-réseau, et créer le fichier de configuration suivant
|
|
446
|
+(ici pour radio\@example.cccp). Lance la cammande précédante, mais
|
|
447
|
+remplace l\'adresse de diffusion par 127.0.0.1.1032:
|
|
448
|
+
|
|
449
|
+` `
|
|
450
|
+
|
|
451
|
+ server {
|
|
452
|
+ listen 80;
|
|
453
|
+ listen [::]:80;
|
|
454
|
+ server_name radio.example.com;
|
|
455
|
+
|
|
456
|
+ location / {
|
|
457
|
+ proxy_pass http://127.0.0.1:1032/;
|
|
458
|
+ }
|
|
459
|
+ }
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+Il est tout a fait possuble de faire passer le stream par une connexion
|
|
463
|
+https via nginx.
|
|
464
|
+
|
|
465
|
+Sources :
|
|
466
|
+---------
|
|
467
|
+
|
|
468
|
+- [wiki.videolan.org RTSP on demand
|
|
469
|
+ streaming](https://wiki.videolan.org/Documentation:Streaming_HowTo/Command_Line_Examples/#RTSP_on-demand_streaming)
|
|
470
|
+:::
|