|
@@ -3,10 +3,10 @@ Installer WikiPP
|
3
|
3
|
|
4
|
4
|
### Dépendences
|
5
|
5
|
|
6
|
|
-Le guide d\'installation est relativement bien fait¹ Cependant
|
7
|
|
-l\'emplacement des dépendences est un peu floue :
|
|
6
|
+Le guide d'installation est relativement bien fait¹ Cependant
|
|
7
|
+l'emplacement des dépendences est un peu floue :
|
8
|
8
|
|
9
|
|
-- cppCMS : l\'installation est déjà renseigner [ici](#cppcms)
|
|
9
|
+- cppCMS : l'installation est déjà renseigner [ici](#cppcms)
|
10
|
10
|
- CPPDB : il faut chopper le code et le compiler
|
11
|
11
|
|
12
|
12
|
|
|
@@ -23,10 +23,10 @@ l\'emplacement des dépendences est un peu floue :
|
23
|
23
|
- Gettext : est normalement disponible via le gestionnaire de packet
|
24
|
24
|
`apt install gettext`
|
25
|
25
|
|
26
|
|
-### Notes sur l\'installation
|
|
26
|
+### Notes sur l'installation
|
27
|
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 :
|
|
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
|
30
|
|
31
|
31
|
|
32
|
32
|
wget https://github.com/cppweb/wikipp.git
|
|
@@ -39,12 +39,12 @@ a un endroit, je remet la liste des commandes dans l\'ordre :
|
39
|
39
|
|
40
|
40
|
|
41
|
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
|
|
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
|
44
|
sont pour les moteurs mariadb ou mysql; réferes-toi sur le site¹ pour
|
45
|
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
|
|
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
|
48
|
`mysql -u root -p`.
|
49
|
49
|
|
50
|
50
|
|
|
@@ -57,7 +57,7 @@ base de données ; dans mon cas `sudo mariadb`, mais il peut s\'agir de
|
57
|
57
|
|
58
|
58
|
### Note sur la configuration
|
59
|
59
|
|
60
|
|
-Si tu doutes de l\'emplacement de l\'installation de wikipp, lance la
|
|
60
|
+Si tu doutes de l'emplacement de l'installation de wikipp, lance la
|
61
|
61
|
commande suivante :
|
62
|
62
|
|
63
|
63
|
|
|
@@ -65,7 +65,7 @@ commande suivante :
|
65
|
65
|
|
66
|
66
|
|
67
|
67
|
|
68
|
|
-Ignore le résultat dans `/usr`, il s\'agit de la base de donnée; dans la
|
|
68
|
+Ignore le résultat dans `/usr`, il s'agit de la base de donnée; dans la
|
69
|
69
|
suite je comsidère que ce répertoire est ` /usr/local/share/wikipp`. Une
|
70
|
70
|
fois obtenu, nous pouvons finaliser da base de donénes en important la
|
71
|
71
|
structure par défaut; souviens toi que je suis sur mariadb, adaptes à
|
|
@@ -96,7 +96,7 @@ permet de se connecter à la base de données. Dans mon cas :
|
96
|
96
|
|
97
|
97
|
|
98
|
98
|
|
99
|
|
-Il faut ensuite générer une clef privée pour l\'application, en fonction
|
|
99
|
+Il faut ensuite générer une clef privée pour l'application, en fonction
|
100
|
100
|
de la librairie utilisée.
|
101
|
101
|
|
102
|
102
|
#### Avec libgcrypt et openssl
|
|
@@ -112,7 +112,7 @@ copier son résultat ou en le redirigeant dans un fichier (i.e
|
112
|
112
|
|
113
|
113
|
|
114
|
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
|
|
115
|
+j'obtiens le bloc suivant dans le fichier de configuration, où «CLEF
|
116
|
116
|
PRIVÉE » finit les chaines de caractère générées :
|
117
|
117
|
|
118
|
118
|
|
|
@@ -156,11 +156,11 @@ génération est la configuration sont différentes :
|
156
|
156
|
|
157
|
157
|
#### Configuration du socket
|
158
|
158
|
|
159
|
|
-L\'executable de wikipp peut-être atteinds via différents types de
|
|
159
|
+L'executable de wikipp peut-être atteinds via différents types de
|
160
|
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
|
|
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
|
164
|
dans mes autres billets sur nginx.
|
165
|
165
|
|
166
|
166
|
|
|
@@ -172,17 +172,17 @@ dans mes autres billets sur nginx.
|
172
|
172
|
|
173
|
173
|
|
174
|
174
|
|
175
|
|
-Depuis ma machine, l\'adresse du wiki sera sur `http://127.0.0.89:8065`.
|
|
175
|
+Depuis ma machine, l'adresse du wiki sera sur `http://127.0.0.89:8065`.
|
176
|
176
|
|
177
|
177
|
#### Configuration du serveur web
|
178
|
178
|
|
179
|
179
|
Je me suis basé sur la doc officiel pour configurer le serveur nginx;
|
180
|
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
|
|
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
|
183
|
certificat SSL multi-domaine générer par certbot, la redirection de HTTP
|
184
|
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
|
|
185
|
+ces configurations; si tu n'en veux pas, ajoute simplement au bloc
|
186
|
186
|
`location ~ ^/wikipp.*$`. Il faut aussi que les fichiers
|
187
|
187
|
`/var/log/www/wiki/access.log` et `/var/log/www/wiki/error.log`
|
188
|
188
|
existent. Dans le fichie
|
|
@@ -253,10 +253,10 @@ existent. Dans le fichie
|
253
|
253
|
Après avoir fait un lien symbolique dans `/etc/nginx/sites-enabled/`,
|
254
|
254
|
redémarre nginx; avec systemd : `systemctl restart nginx`
|
255
|
255
|
|
256
|
|
-#### Droits d\'utilisations
|
|
256
|
+#### Droits d'utilisations
|
257
|
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
|
|
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
|
260
|
utilisé). Je te conseille de créer un utilisateur dédié, membre du group
|
261
|
261
|
www-data :
|
262
|
262
|
|
|
@@ -274,12 +274,12 @@ utilisateur, sinon va dedans (chez moi `/var/www/wiki`):
|
274
|
274
|
### Tester
|
275
|
275
|
|
276
|
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
|
|
277
|
+qu'utilisateur wikipp, après les avoir compilées, et lance la commande
|
278
|
278
|
suivante :
|
279
|
279
|
|
280
|
280
|
`wikipp -c config.js `
|
281
|
281
|
|
282
|
|
-Si tu as interdit de s\'identifier en tant que wikipp, utilise su:
|
|
282
|
+Si tu as interdit de s'identifier en tant que wikipp, utilise su:
|
283
|
283
|
|
284
|
284
|
`su -c "wikipp -c config.js"`
|
285
|
285
|
|
|
@@ -293,8 +293,8 @@ Ou si tu as déclaré ton nom de domaine :
|
293
|
293
|
|
294
|
294
|
#### Configuration de la racine
|
295
|
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
|
|
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
|
298
|
configuration nginx. Remplace la ligne :
|
299
|
299
|
|
300
|
300
|
`location ~ ^/wikipp.*$`
|
|
@@ -303,9 +303,9 @@ Par :
|
303
|
303
|
|
304
|
304
|
`location ~ ^/(?!(favicon\.ico|.*.css|robots\.txt|.*.js)) {`
|
305
|
305
|
|
306
|
|
-Relance nginx, et c\'est bon.
|
|
306
|
+Relance nginx, et c'est bon.
|
307
|
307
|
|
308
|
|
-Au lieu de lancer l\'application à partir du point wikipp, on la lance
|
|
308
|
+Au lieu de lancer l'application à partir du point wikipp, on la lance
|
309
|
309
|
toujours, sauf exceptions; ces exceptions étant les feuille de style
|
310
|
310
|
(.css), les scripts .js et le fichier pour les crawlers (robots.txt). Ça
|
311
|
311
|
ajoute une couche de sécurité; ce qui ne dispense bien sûr pas des
|
|
@@ -314,12 +314,12 @@ autres.
|
314
|
314
|
`mv /var/www/wiki/conf.js /var/www/wiki/conf.ini`
|
315
|
315
|
|
316
|
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
|
|
317
|
+serveur, puisqu'il est en .js. Je propose le le changer en conf.ini
|
318
|
318
|
|
319
|
319
|
#### Wikipp en tant que service
|
320
|
320
|
|
321
|
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
|
|
322
|
+plus simple est de créer un service; je part lu principe que t'es sur
|
323
|
323
|
systemd, regarde de la doc de ton gestionnaire de service pour adapter.
|
324
|
324
|
On va créer un fichier de service; remplace ton éditeur de texte :
|
325
|
325
|
|
|
@@ -342,7 +342,7 @@ On va créer un fichier de service; remplace ton éditeur de texte :
|
342
|
342
|
|
343
|
343
|
|
344
|
344
|
|
345
|
|
-Ensuite on donne l\'autorisation et on actualise les daemon :
|
|
345
|
+Ensuite on donne l'autorisation et on actualise les daemon :
|
346
|
346
|
|
347
|
347
|
|
348
|
348
|
chmod +x /etc/systemd/system/wiki.service
|
|
@@ -360,18 +360,18 @@ Et si tu veux que le service se lance automatiquement au démarrage⁵ :
|
360
|
360
|
|
361
|
361
|
#### Autres configurations
|
362
|
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
|
|
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
|
365
|
besoin, sauf pour les langues; le français étant absent par défaut.
|
366
|
366
|
|
367
|
|
-### Messages d\'erreurs
|
|
367
|
+### Messages d'erreurs
|
368
|
368
|
|
369
|
369
|
- `wikipp, error: system: Socket operation on non-socket (main.cpp:14)`
|
370
|
370
|
: Le socket est mal définit dans le fichier de configuration ou le
|
371
|
371
|
fichier de configuration est mal définit.
|
372
|
372
|
- `Failed to load skin:view, no shared object/dll found` : il manque
|
373
|
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.
|
|
374
|
+ l'execution n'a pas eu lieu dans le répertoire des sources.
|
375
|
375
|
|
376
|
376
|
La commande `wikipp` permet de lancer le logiciel. Il faut cependant
|
377
|
377
|
spécifier `-c` en option, pour le fichier de configuration fournit avec
|
|
@@ -390,81 +390,3 @@ les sources `config.js`
|
390
|
390
|
- \[5\][digitalocean.com
|
391
|
391
|
manage-systemd-services-and-units](https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units)
|
392
|
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
|
|
-:::
|