mirror of
https://github.com/YunoHost-Apps/galene_ynh.git
synced 2024-09-03 18:36:31 +02:00
parent
b9a6b8ae75
commit
c1e78c3e61
16 changed files with 167 additions and 108 deletions
29
README.md
29
README.md
|
@ -15,7 +15,17 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
Galène (or Galene) is a videoconference server (an “SFU”) that is easy to deploy and that requires moderate server resources. It was originally designed for lectures and conferences (where a single speaker streams audio and video to hundreds or thousands of users), but later evolved to be useful for student practicals (where users are divided into many small groups), and meetings (where a dozen users interact with each other).
|
Galène is a videoconference server (an “SFU”) that is easy to deploy and that requires moderate server resources. It was originally designed for lectures and conferences (where a single speaker streams audio and video to hundreds or thousands of users), but later evolved to be useful for student practicals (where users are divided into many small groups), and meetings (where a dozen users interact with each other).
|
||||||
|
|
||||||
|
### Client features:
|
||||||
|
|
||||||
|
- multiparty audio and video
|
||||||
|
- text chat
|
||||||
|
- reasonably good support for mobile (Android and iPhone/iPad)
|
||||||
|
- screen and window sharing, including sharing multiple windows simultaneously (not on mobile)
|
||||||
|
- streaming video and audio from disk
|
||||||
|
- activity detection
|
||||||
|
|
||||||
|
|
||||||
**Shipped version:** 0.4.0~ynh1
|
**Shipped version:** 0.4.0~ynh1
|
||||||
|
|
||||||
|
@ -33,14 +43,14 @@ Galène (or Galene) is a videoconference server (an “SFU”) that is easy to d
|
||||||
|
|
||||||
#### Creating and configuring groups
|
#### Creating and configuring groups
|
||||||
|
|
||||||
Groups are defined by JSON files located in the *Galène* folder (`/opt/yunohost/galene/groups`). Each group is represented by a `GroupName.json` file.
|
Groups are defined by JSON files located in the folder `/home/yunohost.app/galene/groups`. Each group is represented by a `GroupName.json` file.
|
||||||
To create a new group, you need to create a `GroupNameExample.json` file (you can also make subfolder groups, and the groups will be accessible with `https://domain.tld/group/subfolder/GroupName`). Various configuration options are available (see https://github.com/YunoHost-Apps/galene_ynh/wiki/Configuration-file).
|
To create a new group, you need to create a `GroupNameExample.json` file (you can also make subfolder groups, and the groups will be accessible with `https://domain.tld/group/subfolder/GroupName`). Various configuration options are available (see https://github.com/YunoHost-Apps/galene_ynh/wiki/Configuration-file).
|
||||||
|
|
||||||
*NB: spaces are supported in group file names.*
|
*NB: Spaces are supported in group file names.*
|
||||||
|
|
||||||
### Configuring your TURN server
|
### Configuring your TURN server
|
||||||
|
|
||||||
#### Using *Galène*'s TURN server
|
#### Using *Galène*'s internal TURN server
|
||||||
Galène comes with a built-in TURN server that should work out-of-the-box.
|
Galène comes with a built-in TURN server that should work out-of-the-box.
|
||||||
- If your server is behind NAT, allow incoming traffic to TCP port `8443` (or whatever is configured with the `-http` option in `/etc/systemd/system/galene.service`) and TCP/UDP port `1194` (or whatever is configured with the `-turn` option in `/etc/systemd/system/galene.service`)
|
- If your server is behind NAT, allow incoming traffic to TCP port `8443` (or whatever is configured with the `-http` option in `/etc/systemd/system/galene.service`) and TCP/UDP port `1194` (or whatever is configured with the `-turn` option in `/etc/systemd/system/galene.service`)
|
||||||
|
|
||||||
|
@ -64,14 +74,21 @@ Galène comes with a built-in TURN server that should work out-of-the-box.
|
||||||
|
|
||||||
To check if the TURN server is up and running, type `/relay-test` in the chat box. If the TURN server is properly configured, you should see a message saying that the relay test has been successful.
|
To check if the TURN server is up and running, type `/relay-test` in the chat box. If the TURN server is properly configured, you should see a message saying that the relay test has been successful.
|
||||||
|
|
||||||
|
You can also install Galène with an external TURN server with this branch: https://github.com/YunoHost-Apps/galene_ynh/tree/galene+turn
|
||||||
|
|
||||||
### Server Statistics page
|
### Server Statistics page
|
||||||
|
|
||||||
Some statistics are available under `/opt/yunohost/galene/stats.json`, with a human-readable version at `domain.ltd/stats.html`. This is only available to the server administrator.
|
Statistics are available under `/var/www/galene/stats.json`, with a human-readable version at `domain.ltd/stats.html`. This is only available to the server administrator.
|
||||||
|
|
||||||
|
### How do I record my lecture?
|
||||||
|
|
||||||
|
Make sure allow-recording is set in your group configuration. Log-in as an operator, then say `/record` before you start your lecture. Don't forget to say `/unrecord` at the end. You will find your recordings under `https://server.example.com/recordings/groupname/`. The video recordings are stored in `/home/yunohost.app/galene/recordings` folder.
|
||||||
|
|
||||||
|
|
||||||
## Documentation and resources
|
## Documentation and resources
|
||||||
|
|
||||||
* Official app website: https://galene.org/
|
* Official app website: https://galene.org/
|
||||||
* Official user documentation: https://yunohost.org/en/app_galene
|
* Official user documentation: https://galene.org/faq.html
|
||||||
* Official admin documentation: https://galene.org/
|
* Official admin documentation: https://galene.org/
|
||||||
* Upstream app code repository: https://github.com/jech/galene
|
* Upstream app code repository: https://github.com/jech/galene
|
||||||
* YunoHost documentation for this app: https://yunohost.org/app_galene
|
* YunoHost documentation for this app: https://yunohost.org/app_galene
|
||||||
|
|
29
README_fr.md
29
README_fr.md
|
@ -11,7 +11,16 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour
|
||||||
|
|
||||||
## Vue d'ensemble
|
## Vue d'ensemble
|
||||||
|
|
||||||
Galène (ou Galene) est un serveur de visioconférence (un « SFU ») facile à déployer et qui nécessite des ressources serveur modérées. Il a été conçu à l'origine pour les cours et les conférences (où un seul orateur diffuse de l'audio et de la vidéo à des centaines ou des milliers d'utilisateurs), mais a évolué par la suite pour être utile pour les travaux pratiques des étudiants (où les utilisateurs sont divisés en plusieurs petits groupes) et les réunions (où un douzaine d'utilisateurs interagissent entre eux).
|
Galène est un serveur de visioconférence (un « SFU ») facile à déployer et qui nécessite des ressources serveur modérées. Il a été conçu à l'origine pour les cours et les conférences (où un seul orateur diffuse de l'audio et de la vidéo à des centaines ou des milliers d'utilisateurs), mais a évolué par la suite pour être utile pour les travaux pratiques des étudiants (où les utilisateurs sont divisés en plusieurs petits groupes) et les réunions (où un douzaine d'utilisateurs interagissent entre eux).
|
||||||
|
|
||||||
|
### Fonctionnalités client :
|
||||||
|
|
||||||
|
- audio et vidéo multipartites
|
||||||
|
- chat textuel
|
||||||
|
- assez bonne prise en charge pour mobile (Android et iPhone/iPad)
|
||||||
|
- partage d'écran et de fenêtre, y compris le partage de plusieurs fenêtres simultanément (pas sur mobile)
|
||||||
|
- streaming vidéo et audio à partir du disque
|
||||||
|
- détection d'activité
|
||||||
|
|
||||||
|
|
||||||
**Version incluse :** 0.4.0~ynh1
|
**Version incluse :** 0.4.0~ynh1
|
||||||
|
@ -30,7 +39,7 @@ Les salles de réunion *Galène* sont appelées « groupes ». Tout groupe est a
|
||||||
|
|
||||||
#### Ajouter et configurer des groupes
|
#### Ajouter et configurer des groupes
|
||||||
|
|
||||||
Les groupes sont définis par des fichiers JSON situés dans le dossier *Galène* (`/opt/yunohost/galene/groups`). Chaque groupe est représenté par un fichier `GroupName.json`.
|
Les groupes sont définis par des fichiers JSON situés dans le dossier `/home/yunohost.app/galene/groups`. Chaque groupe est représenté par un fichier `GroupName.json`.
|
||||||
Pour créer un nouveau groupe, vous devez créer un fichier `GroupNameExample.json` (vous pouvez également créer un sous-dossier, et les groupes seront accessibles avec` https://domain.tld/group/subfolder/GroupName`). Différentes options de configurations sont disponibles (voir https://github.com/YunoHost-Apps/galene_ynh/wiki/Configuration-file).
|
Pour créer un nouveau groupe, vous devez créer un fichier `GroupNameExample.json` (vous pouvez également créer un sous-dossier, et les groupes seront accessibles avec` https://domain.tld/group/subfolder/GroupName`). Différentes options de configurations sont disponibles (voir https://github.com/YunoHost-Apps/galene_ynh/wiki/Configuration-file).
|
||||||
|
|
||||||
*NB : les espaces sont pris en charge dans les noms de fichiers de groupe.*
|
*NB : les espaces sont pris en charge dans les noms de fichiers de groupe.*
|
||||||
|
@ -43,7 +52,7 @@ Galène est livré avec un serveur TURN intégré qui devrait fonctionner imméd
|
||||||
|
|
||||||
#### Utilisation de votre propre serveur TURN
|
#### Utilisation de votre propre serveur TURN
|
||||||
- Installez [coturn_ynh](https://github.com/YunoHost-Apps/coturn_ynh).
|
- Installez [coturn_ynh](https://github.com/YunoHost-Apps/coturn_ynh).
|
||||||
- Ajoutez `/opt/yunohost/galene/data/ice-servers.json` avec ces lignes et changez `turn.example.org` et `secret`
|
- Ajoutez `/var/www/galene/data/ice-servers.json` avec ces lignes et changez `turn.example.org` et `secret`
|
||||||
|
|
||||||
```
|
```
|
||||||
[
|
[
|
||||||
|
@ -57,18 +66,24 @@ Galène est livré avec un serveur TURN intégré qui devrait fonctionner imméd
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
- définir l'option de virage de `/etc/systemd/system/galene.service` sur `-turn auto` (ou `-turn ""` pour désactiver le serveur TURN intégré).
|
- Dans `/etc/systemd/system/galene.service` changer l'option `-turn auto` (ou `-turn ""` pour désactiver le serveur TURN intégré).
|
||||||
|
|
||||||
Pour vérifier si le serveur TURN est opérationnel, tapez `/relay-test` dans la boîte de dialogue ; si le serveur TURN est correctement configuré, vous devriez voir un message indiquant que le test du relai a réussi.
|
Pour vérifier si le serveur TURN est opérationnel, tapez `/relay-test` dans la boîte de dialogue du chat de *Galène* ; si le serveur TURN est correctement configuré, vous devriez voir un message indiquant que le test du relai a réussi.
|
||||||
|
|
||||||
|
Vous pouvez également installer *Galène* avec un serveur TURN externe avec cette branch : https://github.com/YunoHost-Apps/galene_ynh/tree/galene+turn
|
||||||
|
|
||||||
### Statistiques du serveur
|
### Statistiques du serveur
|
||||||
|
|
||||||
Certaines statistiques sont disponibles sous `/opt/yunohost/galene/stats.json`, avec une version lisible sur `domain.ltd/stats.html`. Ceci n'est disponible que pour l'administrateur du serveur.
|
Les statistiques sont disponibles sous `/var/www/galene/stats.json`, avec une version lisible sur `domain.ltd/stats.html`. Cette page n'est disponible que pour l'administrateur du serveur.
|
||||||
|
|
||||||
|
### Comment enregistrer ma conférence ?
|
||||||
|
|
||||||
|
Assurez-vous que l'autorisation d'enregistrement est définie dans la configuration de votre groupe. Connectez-vous en tant qu'opérateur, puis dites `/record` dans la fenêtre de chat avant de commencer la visio. N'oubliez pas de dire `/unrecord` à la fin. Vous trouverez vos enregistrements sous `https://server.example.com/recordings/groupname/`. Les enregistrements vidéo sont stockés dans le dossier `/home/yunohost.app/galene/recordings`.
|
||||||
|
|
||||||
## Documentations et ressources
|
## Documentations et ressources
|
||||||
|
|
||||||
* Site officiel de l'app : https://galene.org/
|
* Site officiel de l'app : https://galene.org/
|
||||||
* Documentation officielle utilisateur : https://yunohost.org/en/app_galene
|
* Documentation officielle utilisateur : https://galene.org/faq.html
|
||||||
* Documentation officielle de l'admin : https://galene.org/
|
* Documentation officielle de l'admin : https://galene.org/
|
||||||
* Dépôt de code officiel de l'app : https://github.com/jech/galene
|
* Dépôt de code officiel de l'app : https://github.com/jech/galene
|
||||||
* Documentation YunoHost pour cette app : https://yunohost.org/app_galene
|
* Documentation YunoHost pour cette app : https://yunohost.org/app_galene
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
is_public=1
|
is_public=1
|
||||||
password="password"
|
password="password"
|
||||||
group_name="public with space"
|
group_name="public with space"
|
||||||
|
group_description="My public space"
|
||||||
; Checks
|
; Checks
|
||||||
pkg_linter=1
|
pkg_linter=1
|
||||||
setup_sub_dir=0
|
setup_sub_dir=0
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
__ADMIN__:__PASSWORD__
|
|
|
@ -8,40 +8,8 @@ Type=simple
|
||||||
WorkingDirectory=__FINALPATH__/
|
WorkingDirectory=__FINALPATH__/
|
||||||
User=__APP__
|
User=__APP__
|
||||||
Group=__APP__
|
Group=__APP__
|
||||||
ExecStart=__FINALPATH__/galene -turn __PUBLIC_IP4__:__TURN_PORT__ -udp-range 49152-65535
|
ExecStart=__FINALPATH__/galene -turn __PUBLIC_IP4__:__TURN_PORT__ -udp-range 49152-65535 -groups /home/yunohost.app/__APP__/groups -recordings /home/yunohost.app/__APP__/recordings
|
||||||
LimitNOFILE=65536
|
LimitNOFILE=65536
|
||||||
StandardOutput=append:/var/log/__APP__/__APP__.log
|
|
||||||
StandardError=inherit
|
|
||||||
|
|
||||||
# Sandboxing options to harden security
|
|
||||||
# Depending on specificities of your service/app, you may need to tweak these
|
|
||||||
# .. but this should be a good baseline
|
|
||||||
# Details for these options: https://www.freedesktop.org/software/systemd/man/systemd.exec.html
|
|
||||||
NoNewPrivileges=yes
|
|
||||||
PrivateTmp=yes
|
|
||||||
PrivateDevices=yes
|
|
||||||
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
|
|
||||||
RestrictNamespaces=yes
|
|
||||||
RestrictRealtime=yes
|
|
||||||
DevicePolicy=closed
|
|
||||||
ProtectSystem=full
|
|
||||||
ProtectControlGroups=yes
|
|
||||||
ProtectKernelModules=yes
|
|
||||||
ProtectKernelTunables=yes
|
|
||||||
LockPersonality=yes
|
|
||||||
SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap
|
|
||||||
|
|
||||||
# Denying access to capabilities that should not be relevant for webapps
|
|
||||||
# Doc: https://man7.org/linux/man-pages/man7/capabilities.7.html
|
|
||||||
CapabilityBoundingSet=~CAP_RAWIO CAP_MKNOD
|
|
||||||
CapabilityBoundingSet=~CAP_AUDIT_CONTROL CAP_AUDIT_READ CAP_AUDIT_WRITE
|
|
||||||
CapabilityBoundingSet=~CAP_SYS_BOOT CAP_SYS_TIME CAP_SYS_MODULE CAP_SYS_PACCT
|
|
||||||
CapabilityBoundingSet=~CAP_LEASE CAP_LINUX_IMMUTABLE CAP_IPC_LOCK
|
|
||||||
CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_WAKE_ALARM
|
|
||||||
CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG
|
|
||||||
CapabilityBoundingSet=~CAP_MAC_ADMIN CAP_MAC_OVERRIDE
|
|
||||||
CapabilityBoundingSet=~CAP_NET_ADMIN CAP_NET_BROADCAST CAP_NET_RAW
|
|
||||||
CapabilityBoundingSet=~CAP_SYS_ADMIN CAP_SYS_PTRACE CAP_SYSLOG
|
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|
|
@ -1 +1,10 @@
|
||||||
Galène (or Galene) is a videoconference server (an “SFU”) that is easy to deploy and that requires moderate server resources. It was originally designed for lectures and conferences (where a single speaker streams audio and video to hundreds or thousands of users), but later evolved to be useful for student practicals (where users are divided into many small groups), and meetings (where a dozen users interact with each other).
|
Galène is a videoconference server (an “SFU”) that is easy to deploy and that requires moderate server resources. It was originally designed for lectures and conferences (where a single speaker streams audio and video to hundreds or thousands of users), but later evolved to be useful for student practicals (where users are divided into many small groups), and meetings (where a dozen users interact with each other).
|
||||||
|
|
||||||
|
### Client features:
|
||||||
|
|
||||||
|
- multiparty audio and video
|
||||||
|
- text chat
|
||||||
|
- reasonably good support for mobile (Android and iPhone/iPad)
|
||||||
|
- screen and window sharing, including sharing multiple windows simultaneously (not on mobile)
|
||||||
|
- streaming video and audio from disk
|
||||||
|
- activity detection
|
||||||
|
|
|
@ -1 +1,10 @@
|
||||||
Galène (ou Galene) est un serveur de visioconférence (un « SFU ») facile à déployer et qui nécessite des ressources serveur modérées. Il a été conçu à l'origine pour les cours et les conférences (où un seul orateur diffuse de l'audio et de la vidéo à des centaines ou des milliers d'utilisateurs), mais a évolué par la suite pour être utile pour les travaux pratiques des étudiants (où les utilisateurs sont divisés en plusieurs petits groupes) et les réunions (où un douzaine d'utilisateurs interagissent entre eux).
|
Galène est un serveur de visioconférence (un « SFU ») facile à déployer et qui nécessite des ressources serveur modérées. Il a été conçu à l'origine pour les cours et les conférences (où un seul orateur diffuse de l'audio et de la vidéo à des centaines ou des milliers d'utilisateurs), mais a évolué par la suite pour être utile pour les travaux pratiques des étudiants (où les utilisateurs sont divisés en plusieurs petits groupes) et les réunions (où un douzaine d'utilisateurs interagissent entre eux).
|
||||||
|
|
||||||
|
### Fonctionnalités client :
|
||||||
|
|
||||||
|
- audio et vidéo multipartites
|
||||||
|
- chat textuel
|
||||||
|
- assez bonne prise en charge pour mobile (Android et iPhone/iPad)
|
||||||
|
- partage d'écran et de fenêtre, y compris le partage de plusieurs fenêtres simultanément (pas sur mobile)
|
||||||
|
- streaming vidéo et audio à partir du disque
|
||||||
|
- détection d'activité
|
||||||
|
|
|
@ -4,14 +4,14 @@
|
||||||
|
|
||||||
#### Creating and configuring groups
|
#### Creating and configuring groups
|
||||||
|
|
||||||
Groups are defined by JSON files located in the *Galène* folder (`/opt/yunohost/galene/groups`). Each group is represented by a `GroupName.json` file.
|
Groups are defined by JSON files located in the folder `/home/yunohost.app/galene/groups`. Each group is represented by a `GroupName.json` file.
|
||||||
To create a new group, you need to create a `GroupNameExample.json` file (you can also make subfolder groups, and the groups will be accessible with `https://domain.tld/group/subfolder/GroupName`). Various configuration options are available (see https://github.com/YunoHost-Apps/galene_ynh/wiki/Configuration-file).
|
To create a new group, you need to create a `GroupNameExample.json` file (you can also make subfolder groups, and the groups will be accessible with `https://domain.tld/group/subfolder/GroupName`). Various configuration options are available (see https://github.com/YunoHost-Apps/galene_ynh/wiki/Configuration-file).
|
||||||
|
|
||||||
*NB: spaces are supported in group file names.*
|
*NB: Spaces are supported in group file names.*
|
||||||
|
|
||||||
### Configuring your TURN server
|
### Configuring your TURN server
|
||||||
|
|
||||||
#### Using *Galène*'s TURN server
|
#### Using *Galène*'s internal TURN server
|
||||||
Galène comes with a built-in TURN server that should work out-of-the-box.
|
Galène comes with a built-in TURN server that should work out-of-the-box.
|
||||||
- If your server is behind NAT, allow incoming traffic to TCP port `8443` (or whatever is configured with the `-http` option in `/etc/systemd/system/galene.service`) and TCP/UDP port `1194` (or whatever is configured with the `-turn` option in `/etc/systemd/system/galene.service`)
|
- If your server is behind NAT, allow incoming traffic to TCP port `8443` (or whatever is configured with the `-http` option in `/etc/systemd/system/galene.service`) and TCP/UDP port `1194` (or whatever is configured with the `-turn` option in `/etc/systemd/system/galene.service`)
|
||||||
|
|
||||||
|
@ -35,6 +35,13 @@ Galène comes with a built-in TURN server that should work out-of-the-box.
|
||||||
|
|
||||||
To check if the TURN server is up and running, type `/relay-test` in the chat box. If the TURN server is properly configured, you should see a message saying that the relay test has been successful.
|
To check if the TURN server is up and running, type `/relay-test` in the chat box. If the TURN server is properly configured, you should see a message saying that the relay test has been successful.
|
||||||
|
|
||||||
|
You can also install Galène with an external TURN server with this branch: https://github.com/YunoHost-Apps/galene_ynh/tree/galene+turn
|
||||||
|
|
||||||
### Server Statistics page
|
### Server Statistics page
|
||||||
|
|
||||||
Some statistics are available under `/opt/yunohost/galene/stats.json`, with a human-readable version at `domain.ltd/stats.html`. This is only available to the server administrator.
|
Statistics are available under `/var/www/galene/stats.json`, with a human-readable version at `domain.ltd/stats.html`. This is only available to the server administrator.
|
||||||
|
|
||||||
|
### How do I record my lecture?
|
||||||
|
|
||||||
|
Make sure allow-recording is set in your group configuration. Log-in as an operator, then say `/record` before you start your lecture. Don't forget to say `/unrecord` at the end. You will find your recordings under `https://server.example.com/recordings/groupname/`. The video recordings are stored in `/home/yunohost.app/galene/recordings` folder.
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ Les salles de réunion *Galène* sont appelées « groupes ». Tout groupe est a
|
||||||
|
|
||||||
#### Ajouter et configurer des groupes
|
#### Ajouter et configurer des groupes
|
||||||
|
|
||||||
Les groupes sont définis par des fichiers JSON situés dans le dossier *Galène* (`/opt/yunohost/galene/groups`). Chaque groupe est représenté par un fichier `GroupName.json`.
|
Les groupes sont définis par des fichiers JSON situés dans le dossier `/home/yunohost.app/galene/groups`. Chaque groupe est représenté par un fichier `GroupName.json`.
|
||||||
Pour créer un nouveau groupe, vous devez créer un fichier `GroupNameExample.json` (vous pouvez également créer un sous-dossier, et les groupes seront accessibles avec` https://domain.tld/group/subfolder/GroupName`). Différentes options de configurations sont disponibles (voir https://github.com/YunoHost-Apps/galene_ynh/wiki/Configuration-file).
|
Pour créer un nouveau groupe, vous devez créer un fichier `GroupNameExample.json` (vous pouvez également créer un sous-dossier, et les groupes seront accessibles avec` https://domain.tld/group/subfolder/GroupName`). Différentes options de configurations sont disponibles (voir https://github.com/YunoHost-Apps/galene_ynh/wiki/Configuration-file).
|
||||||
|
|
||||||
*NB : les espaces sont pris en charge dans les noms de fichiers de groupe.*
|
*NB : les espaces sont pris en charge dans les noms de fichiers de groupe.*
|
||||||
|
@ -17,7 +17,7 @@ Galène est livré avec un serveur TURN intégré qui devrait fonctionner imméd
|
||||||
|
|
||||||
#### Utilisation de votre propre serveur TURN
|
#### Utilisation de votre propre serveur TURN
|
||||||
- Installez [coturn_ynh](https://github.com/YunoHost-Apps/coturn_ynh).
|
- Installez [coturn_ynh](https://github.com/YunoHost-Apps/coturn_ynh).
|
||||||
- Ajoutez `/opt/yunohost/galene/data/ice-servers.json` avec ces lignes et changez `turn.example.org` et `secret`
|
- Ajoutez `/var/www/galene/data/ice-servers.json` avec ces lignes et changez `turn.example.org` et `secret`
|
||||||
|
|
||||||
```
|
```
|
||||||
[
|
[
|
||||||
|
@ -31,10 +31,16 @@ Galène est livré avec un serveur TURN intégré qui devrait fonctionner imméd
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
- définir l'option de virage de `/etc/systemd/system/galene.service` sur `-turn auto` (ou `-turn ""` pour désactiver le serveur TURN intégré).
|
- Dans `/etc/systemd/system/galene.service` changer l'option `-turn auto` (ou `-turn ""` pour désactiver le serveur TURN intégré).
|
||||||
|
|
||||||
Pour vérifier si le serveur TURN est opérationnel, tapez `/relay-test` dans la boîte de dialogue ; si le serveur TURN est correctement configuré, vous devriez voir un message indiquant que le test du relai a réussi.
|
Pour vérifier si le serveur TURN est opérationnel, tapez `/relay-test` dans la boîte de dialogue du chat de *Galène* ; si le serveur TURN est correctement configuré, vous devriez voir un message indiquant que le test du relai a réussi.
|
||||||
|
|
||||||
|
Vous pouvez également installer *Galène* avec un serveur TURN externe avec cette branch : https://github.com/YunoHost-Apps/galene_ynh/tree/galene+turn
|
||||||
|
|
||||||
### Statistiques du serveur
|
### Statistiques du serveur
|
||||||
|
|
||||||
Certaines statistiques sont disponibles sous `/opt/yunohost/galene/stats.json`, avec une version lisible sur `domain.ltd/stats.html`. Ceci n'est disponible que pour l'administrateur du serveur.
|
Les statistiques sont disponibles sous `/var/www/galene/stats.json`, avec une version lisible sur `domain.ltd/stats.html`. Cette page n'est disponible que pour l'administrateur du serveur.
|
||||||
|
|
||||||
|
### Comment enregistrer ma conférence ?
|
||||||
|
|
||||||
|
Assurez-vous que l'autorisation d'enregistrement est définie dans la configuration de votre groupe. Connectez-vous en tant qu'opérateur, puis dites `/record` dans la fenêtre de chat avant de commencer la visio. N'oubliez pas de dire `/unrecord` à la fin. Vous trouverez vos enregistrements sous `https://server.example.com/recordings/groupname/`. Les enregistrements vidéo sont stockés dans le dossier `/home/yunohost.app/galene/recordings`.
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
"website": "https://galene.org/",
|
"website": "https://galene.org/",
|
||||||
"demo": "https://galene.org:8443/",
|
"demo": "https://galene.org:8443/",
|
||||||
"admindoc": "https://galene.org/",
|
"admindoc": "https://galene.org/",
|
||||||
"userdoc": "https://yunohost.org/en/app_galene",
|
"userdoc": "https://galene.org/faq.html",
|
||||||
"code": "https://github.com/jech/galene"
|
"code": "https://github.com/jech/galene"
|
||||||
},
|
},
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|
|
@ -13,9 +13,6 @@ source /usr/share/yunohost/helpers
|
||||||
# MANAGE SCRIPT FAILURE
|
# MANAGE SCRIPT FAILURE
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
ynh_clean_setup () {
|
|
||||||
ynh_clean_check_starting
|
|
||||||
}
|
|
||||||
# Exit if an error occurs during the execution of the script
|
# Exit if an error occurs during the execution of the script
|
||||||
ynh_abort_if_errors
|
ynh_abort_if_errors
|
||||||
|
|
||||||
|
@ -28,6 +25,7 @@ app=$YNH_APP_INSTANCE_NAME
|
||||||
|
|
||||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||||
|
datadir=$(ynh_app_setting_get --app=$app --key=datadir)
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# DECLARE DATA AND CONF FILES TO BACKUP
|
# DECLARE DATA AND CONF FILES TO BACKUP
|
||||||
|
@ -40,6 +38,12 @@ ynh_print_info --message="Declaring files to be backed up..."
|
||||||
|
|
||||||
ynh_backup --src_path="$final_path"
|
ynh_backup --src_path="$final_path"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# BACKUP THE DATA DIR
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
ynh_backup --src_path="$datadir" --is_big
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# BACKUP THE NGINX CONFIGURATION
|
# BACKUP THE NGINX CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
|
@ -9,8 +9,6 @@
|
||||||
source _common.sh
|
source _common.sh
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
ynh_abort_if_errors
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RETRIEVE ARGUMENTS
|
# RETRIEVE ARGUMENTS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -110,7 +108,7 @@ fi
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Starting a systemd service..." --weight=3
|
ynh_script_progression --message="Starting a systemd service..." --weight=3
|
||||||
|
|
||||||
ynh_systemd_action --service_name=$app --action=start --log_path="/var/log/$app/$app.log"
|
ynh_systemd_action --service_name=$app --action=start --log_path="systemd"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RELOAD NGINX
|
# RELOAD NGINX
|
||||||
|
|
|
@ -101,15 +101,11 @@ chown -R $app:www-data "$final_path"
|
||||||
# CREATE DATA AND GROUPS FOLDER
|
# CREATE DATA AND GROUPS FOLDER
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# Define app's data directory
|
|
||||||
data="$final_path/data"
|
|
||||||
# Create data folder
|
# Create data folder
|
||||||
mkdir -p "$data"
|
mkdir -p "$final_path/data"
|
||||||
|
echo '$admin:$password' > "$final_path/data/passwd"
|
||||||
# Define app's groups directory
|
chmod 400 "$final_path/data/passwd"
|
||||||
groups="$final_path/groups"
|
chown $app: "$final_path/data/passwd"
|
||||||
# Create groups folder
|
|
||||||
mkdir -p "$groups"
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# NGINX CONFIGURATION
|
# NGINX CONFIGURATION
|
||||||
|
@ -119,6 +115,20 @@ ynh_script_progression --message="Configuring NGINX web server..." --weight=2
|
||||||
# Create a dedicated NGINX config
|
# Create a dedicated NGINX config
|
||||||
ynh_add_nginx_config
|
ynh_add_nginx_config
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# CREATE DATA DIRECTORY
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Creating a data directory..." --weight=1
|
||||||
|
|
||||||
|
datadir=/home/yunohost.app/$app
|
||||||
|
ynh_app_setting_set --app=$app --key=datadir --value=$datadir
|
||||||
|
|
||||||
|
mkdir -p $datadir/{groups,recordings}
|
||||||
|
|
||||||
|
chmod 750 "$datadir"
|
||||||
|
chmod -R o-rwx "$datadir"
|
||||||
|
chown -R $app:www-data "$datadir"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP SYSTEMD
|
# SETUP SYSTEMD
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -133,11 +143,8 @@ ynh_add_systemd_config
|
||||||
# MODIFY A CONFIG FILES
|
# MODIFY A CONFIG FILES
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
ynh_add_config --template="../conf/passwd" --destination="$final_path/data/passwd"
|
# Create a group name config
|
||||||
|
ynh_add_config --template="../conf/groupname.json" --destination="$datadir/groups/$group_name.json"
|
||||||
chmod 400 "$final_path/data/passwd"
|
|
||||||
chown $app "$final_path/data/passwd"
|
|
||||||
ynh_add_config --template="../conf/groupname.json" --destination="$final_path/groups/$group_name.json"
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# INTEGRATE SERVICE IN YUNOHOST
|
# INTEGRATE SERVICE IN YUNOHOST
|
||||||
|
@ -152,7 +159,7 @@ yunohost service add $app --description="Videoconferencing server" --log="/var/l
|
||||||
ynh_script_progression --message="Starting a systemd service..." --weight=1
|
ynh_script_progression --message="Starting a systemd service..." --weight=1
|
||||||
|
|
||||||
# Start a systemd service
|
# Start a systemd service
|
||||||
ynh_systemd_action --service_name=$app --action=start --log_path="/var/log/$app/$app.log"
|
ynh_systemd_action --service_name=$app --action=start --log_path="systemd"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP SSOWAT
|
# SETUP SSOWAT
|
||||||
|
|
|
@ -20,6 +20,7 @@ domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||||
port=$(ynh_app_setting_get --app=$app --key=port)
|
port=$(ynh_app_setting_get --app=$app --key=port)
|
||||||
turn_port=$(ynh_app_setting_get --app=$app --key=turn_port)
|
turn_port=$(ynh_app_setting_get --app=$app --key=turn_port)
|
||||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||||
|
datadir=$(ynh_app_setting_get --app=$app --key=datadir)
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# STANDARD REMOVE
|
# STANDARD REMOVE
|
||||||
|
@ -50,6 +51,19 @@ ynh_script_progression --message="Removing app main directory..." --weight=2
|
||||||
# Remove the app directory securely
|
# Remove the app directory securely
|
||||||
ynh_secure_remove --file="$final_path"
|
ynh_secure_remove --file="$final_path"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# REMOVE DATA DIR
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
YNH_APP_PURGE=1
|
||||||
|
|
||||||
|
# Remove the app data directory with the command `yunohost app remove --purge`
|
||||||
|
if [ "${YNH_APP_PURGE:-0}" -eq 1 ]
|
||||||
|
then
|
||||||
|
ynh_script_progression --message="Removing $app data directory..." --weight=2
|
||||||
|
ynh_secure_remove --file="$datadir"
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# REMOVE NGINX CONFIGURATION
|
# REMOVE NGINX CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
|
@ -14,9 +14,6 @@ source /usr/share/yunohost/helpers
|
||||||
# MANAGE SCRIPT FAILURE
|
# MANAGE SCRIPT FAILURE
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
ynh_clean_setup () {
|
|
||||||
ynh_clean_check_starting
|
|
||||||
}
|
|
||||||
# Exit if an error occurs during the execution of the script
|
# Exit if an error occurs during the execution of the script
|
||||||
ynh_abort_if_errors
|
ynh_abort_if_errors
|
||||||
|
|
||||||
|
@ -68,6 +65,19 @@ chmod 750 "$final_path"
|
||||||
chmod -R o-rwx "$final_path"
|
chmod -R o-rwx "$final_path"
|
||||||
chown -R $app:www-data "$final_path"
|
chown -R $app:www-data "$final_path"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# RESTORE THE DATA DIRECTORY
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Restoring the data directory..." --weight=1
|
||||||
|
|
||||||
|
ynh_restore_file --origin_path="$datadir" --not_mandatory
|
||||||
|
|
||||||
|
mkdir -p $datadir/{groups,recordings}
|
||||||
|
|
||||||
|
chmod 750 "$datadir"
|
||||||
|
chmod -R o-rwx "$datadir"
|
||||||
|
chown -R $app:www-data "$datadir"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RESTORE SYSTEMD
|
# RESTORE SYSTEMD
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -88,7 +98,7 @@ yunohost service add $app --description="Videoconferencing server" --log="/var/l
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Starting a systemd service..." --weight=3
|
ynh_script_progression --message="Starting a systemd service..." --weight=3
|
||||||
|
|
||||||
ynh_systemd_action --service_name=$app --action=start --log_path="/var/log/$app/$app.log"
|
ynh_systemd_action --service_name=$app --action=start --log_path="systemd"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# GENERIC FINALIZATION
|
# GENERIC FINALIZATION
|
||||||
|
|
|
@ -31,6 +31,20 @@ architecture=$(ynh_detect_arch)
|
||||||
|
|
||||||
upgrade_type=$(ynh_check_app_version_changed)
|
upgrade_type=$(ynh_check_app_version_changed)
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." --weight=1
|
||||||
|
|
||||||
|
# Backup the current version of the app
|
||||||
|
ynh_backup_before_upgrade
|
||||||
|
ynh_clean_setup () {
|
||||||
|
# Restore it if the upgrade fails
|
||||||
|
ynh_restore_upgradebackup
|
||||||
|
}
|
||||||
|
# Exit if an error occurs during the execution of the script
|
||||||
|
ynh_abort_if_errors
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# ENSURE DOWNWARD COMPATIBILITY
|
# ENSURE DOWNWARD COMPATIBILITY
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -56,18 +70,12 @@ if ynh_legacy_permissions_exists; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
|
# CREATE DEDICATED USER
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." --weight=1
|
ynh_script_progression --message="Making sure dedicated system user exists..." --weight=1
|
||||||
|
|
||||||
# Backup the current version of the app
|
# Create a dedicated user (if not existing)
|
||||||
ynh_backup_before_upgrade
|
ynh_system_user_create --username=$app --home_dir="$final_path"
|
||||||
ynh_clean_setup () {
|
|
||||||
# Restore it if the upgrade fails
|
|
||||||
ynh_restore_upgradebackup
|
|
||||||
}
|
|
||||||
# Exit if an error occurs during the execution of the script
|
|
||||||
ynh_abort_if_errors
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# STANDARD UPGRADE STEPS
|
# STANDARD UPGRADE STEPS
|
||||||
|
@ -90,19 +98,14 @@ then
|
||||||
# tmpdir="$(mktemp -d)"
|
# tmpdir="$(mktemp -d)"
|
||||||
|
|
||||||
# # Backup the config file in the temp dir
|
# # Backup the config file in the temp dir
|
||||||
# cp -ar "$final_path/groups" "$tmpdir/groups"
|
|
||||||
# cp -ar "$final_path/data/passwd" "$tmpdir/passwd"
|
# cp -ar "$final_path/data/passwd" "$tmpdir/passwd"
|
||||||
|
|
||||||
# # Remove the app directory securely
|
# # Remove the app directory securely
|
||||||
# ynh_secure_remove --file="$final_path"
|
# ynh_secure_remove --file="$final_path"
|
||||||
|
|
||||||
ynh_setup_source --dest_dir="$final_path" --source_id="$architecture" --keep="$final_path/groups $final_path/data/passwd"
|
ynh_setup_source --dest_dir="$final_path" --source_id="$architecture" --keep="$final_path/data/passwd"
|
||||||
|
|
||||||
# # Create data and groups folder
|
|
||||||
# mkdir -p "$final_path/data" "$final_path/groups"
|
|
||||||
|
|
||||||
# # Copy the admin saved settings from tmp directory to final path
|
# # Copy the admin saved settings from tmp directory to final path
|
||||||
# cp -ar "$tmpdir/groups" "$final_path/groups"
|
|
||||||
# cp -ar "$tmpdir/passwd" "$final_path/data/passwd"
|
# cp -ar "$tmpdir/passwd" "$final_path/data/passwd"
|
||||||
|
|
||||||
# # Remove the tmp directory securely
|
# # Remove the tmp directory securely
|
||||||
|
@ -121,14 +124,6 @@ ynh_script_progression --message="Upgrading NGINX web server configuration..." -
|
||||||
# Create a dedicated NGINX config
|
# Create a dedicated NGINX config
|
||||||
ynh_add_nginx_config
|
ynh_add_nginx_config
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# CREATE DEDICATED USER
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Making sure dedicated system user exists..." --weight=1
|
|
||||||
|
|
||||||
# Create a dedicated user (if not existing)
|
|
||||||
ynh_system_user_create --username=$app --home_dir="$final_path"
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP SYSTEMD
|
# SETUP SYSTEMD
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -151,7 +146,7 @@ yunohost service add $app --description="Videoconferencing server" --log="/var/l
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Starting a systemd service..." --weight=1
|
ynh_script_progression --message="Starting a systemd service..." --weight=1
|
||||||
|
|
||||||
ynh_systemd_action --service_name=$app --action=start --log_path="/var/log/$app/$app.log"
|
ynh_systemd_action --service_name=$app --action=start --log_path="systemd"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RELOAD NGINX
|
# RELOAD NGINX
|
||||||
|
|
Loading…
Reference in a new issue