jitsi: configuration du service #2

Merged
korenstin merged 3 commits from jitsi into main 2025-10-07 21:25:48 +02:00
8 changed files with 113 additions and 3 deletions

View file

@ -19,7 +19,7 @@ l'infrastructure d'Aurore et se décompose en plusieurs parties :
Dans Nix, l'ensemble des fichiers est écrit dans `/nix/store`, ce qui est Dans Nix, l'ensemble des fichiers est écrit dans `/nix/store`, ce qui est
accessible et donc visible par tous les programmes (et tous les utilisateur⋅ices). accessible et donc visible par tous les programmes (et tous les utilisateur⋅ices).
De plus, l'ensemble des fichiers de configurations se trouvent sur un repo git De plus, l'ensemble des fichiers de configurations se trouvent sur un repo git
publique. Pour ces deux raisons, il est préférable de chiffrer les secrets à public. Pour ces deux raisons, il est préférable de chiffrer les secrets à
l'aide de [agenix](https://github.com/ryantm/agenix). Plus de détails sont l'aide de [agenix](https://github.com/ryantm/agenix). Plus de détails sont
disponibles dans [secrets](./secrets). disponibles dans [secrets](./secrets).

View file

@ -1,6 +1,10 @@
{ ... }: { ... }:
{ {
imports = [
./jitsi.nix
Review

Ajouter un ./nginx.nix avec des paramètres par défaut souhaitable

Ajouter un `./nginx.nix` avec des paramètres par défaut souhaitable
];
networking = { networking = {
hostName = "jitsi"; hostName = "jitsi";
domain = "pub.infra.auro.re"; domain = "pub.infra.auro.re";

40
hosts/vm/jitsi/jitsi.nix Normal file
View file

@ -0,0 +1,40 @@
{ ... }:
{
services = {
jitsi-meet = {
v-lafeychine marked this conversation as resolved
Review

Il faudrait ajouter services.jitsi-meet.nginx.enable = true ainsi que services.jitsi-meet.videobridge.enable, même si true par défaut afin de l'expliciter.

Il faudrait ajouter `services.jitsi-meet.nginx.enable = true` ainsi que `services.jitsi-meet.videobridge.enable`, même si `true` par défaut afin de l'expliciter.
enable = true;
hostName = "jitsi-ng.auro.re";
nginx.enable = true;
videobridge.enable = true;
config = {
liveStreaming.enabled = true;
};
};
jitsi-videobridge = {
enable = true;
openFirewall = true;
colibriRestApi = true;
};
# Monitoring
prometheus.exporters.jitsi = {
enable = true;
openFirewall = true;
};
};
networking.firewall.allowedTCPPorts = [ 80 443 ];
security.acme = {
acceptTerms = true;
defaults.email = "tech.aurore@lists.crans.org";
};
nixpkgs.config.permittedInsecurePackages = [
"jitsi-meet-1.0.8043"
];
}

View file

@ -7,6 +7,7 @@
./nix.nix ./nix.nix
./ntp.nix ./ntp.nix
./programs.nix ./programs.nix
./prometheus-node-exporter.nix
./ssh.nix ./ssh.nix
./tmp.nix ./tmp.nix
]; ];

View file

@ -0,0 +1,54 @@
{ config, ... }:
let
port = config.services.prometheus.exporters.node.port;
in
{
networking.firewall.allowedTCPPorts = [ port ];
services.prometheus.exporters.node = {
enable = true;
enabledCollectors = [
"arp"
"bonding"
"buddyinfo"
"cgroups"
"conntrack"
"cpu"
"cpu_vulnerabilities"
"cpufreq"
"diskstats"
"dmi"
"edac"
"entropy"
"filesystem"
"hwmon"
"interrupts"
"loadavg"
"meminfo"
"netclass"
"netdev"
"netstat"
"nvme"
"os"
"powersupplyclass"
"pressure"
"qdisc"
"rapl"
"schedstat"
"sockstat"
"softnet"
"stat"
"systemd"
"thermal_zone"
"time"
"timex"
"udp_queues"
"uname"
"vmstat"
"watchdog"
"zfs"
"zoneinfo"
];
};
}

View file

@ -3,6 +3,7 @@
{ {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
./nginx.nix
./virtualisation.nix ./virtualisation.nix
]; ];
} }

10
profiles/vm/nginx.nix Normal file
View file

@ -0,0 +1,10 @@
{ ... }:
{
services.nginx = {
recommendedTlsSettings = true;
recommendedOptimisation = true;
recommendedGzipSettings = true;
recommendedProxySettings = true;
};
}

View file

@ -5,8 +5,8 @@ NixOS et notamment de ne pas les copier les secrets dans `/nix/store`, qui est
visible par tout le monde (dit "_world readable_"), c'est-à-dire par tous les visible par tout le monde (dit "_world readable_"), c'est-à-dire par tous les
processus et tous les utilisateur⋅ices. processus et tous les utilisateur⋅ices.
Pour plus d'informations sur agenix, veuillez vous référer à la [documentation Pour plus d'informations sur agenix, veuillez vous réferer à la [documentation
officielle](https://github.com/ryantm/agenix) officielle](https://github.com/ryantm/agenix).
## Pré-requis ## Pré-requis