feat(sni-proxy): init
This commit is contained in:
parent
138ea89bbc
commit
930c1bd90a
7 changed files with 127 additions and 0 deletions
|
@ -8,6 +8,7 @@ lib.extra.mkConfig {
|
|||
enabledServices = [
|
||||
# List of services to enable
|
||||
"unbound"
|
||||
"nginx"
|
||||
];
|
||||
|
||||
extraConfig = { };
|
||||
|
|
BIN
machines/labcore01/kfet/favicon.png
Normal file
BIN
machines/labcore01/kfet/favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.5 KiB |
93
machines/labcore01/kfet/index.html
Normal file
93
machines/labcore01/kfet/index.html
Normal file
|
@ -0,0 +1,93 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<title>Ouverture K-Fêt</title>
|
||||
<style>
|
||||
#main {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: 15vw;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-content: center;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.red {
|
||||
background-color: red;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.orange {
|
||||
background-color: orange;
|
||||
color: black;
|
||||
}
|
||||
|
||||
|
||||
.green {
|
||||
background-color: green;
|
||||
color: white;
|
||||
}
|
||||
|
||||
#main > p {
|
||||
overflow: hidden;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.orange > #orange {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.green > #green {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.red > #red {
|
||||
display: block;
|
||||
}
|
||||
|
||||
</style>
|
||||
<link rel="manifest" href="manifest.webmanifest" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="main" class="orange">
|
||||
<p id="orange">Non défini</p>
|
||||
<p id="red">Fermé</p>
|
||||
<p id="green">Ouvert</p>
|
||||
</div>
|
||||
<script>
|
||||
// Créer une connexion WebSocket
|
||||
const socket = new WebSocket('wss://kfet.sinavir.fr/ws/');
|
||||
const div = document.getElementById("main");
|
||||
|
||||
// Écouter les messages
|
||||
socket.addEventListener('message', function (event) {
|
||||
console.log('Voici un message du serveur', event.data);
|
||||
switch (JSON.parse(event.data).status) {
|
||||
case "opened":
|
||||
div.className = "green";
|
||||
document.title = "🟢 Ouvert | K-Fêt";
|
||||
break;
|
||||
case "closed":
|
||||
div.className = "red";
|
||||
document.title = "🔴 Fermé | K-Fêt";
|
||||
break;
|
||||
default:
|
||||
div.className = "orange";
|
||||
document.title = "🟠 Indéfini | K-Fêt";
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
8
machines/labcore01/nginx.nix
Normal file
8
machines/labcore01/nginx.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
dgn-web.enable = true;
|
||||
services.nginx.virtualHosts."kfet.lab.dgnum.eu" = {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
root = ./kfet;
|
||||
};
|
||||
}
|
|
@ -9,6 +9,7 @@ lib.extra.mkConfig {
|
|||
# List of services to enable
|
||||
"networking"
|
||||
"wireguard"
|
||||
"nginx-sni"
|
||||
];
|
||||
|
||||
extraConfig = { };
|
||||
|
|
21
machines/router02/nginx-sni.nix
Normal file
21
machines/router02/nginx-sni.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ meta, ... }:
|
||||
let
|
||||
# Beware, jool will not translate. Prefer ipv6 proxy target
|
||||
machines = builtins.mapAttrs (
|
||||
host: { site, ... }: "v6.${host}.${site}.infra.lab.dgnum.eu:443"
|
||||
) meta.nodes;
|
||||
in
|
||||
{
|
||||
dgn-web.enable = true;
|
||||
services.nginx = {
|
||||
sni-proxy = {
|
||||
preStreamConfig = ''
|
||||
resolver 127.0.0.53;
|
||||
'';
|
||||
enable = true;
|
||||
redirects = {
|
||||
"kfet.lab.dgnum.eu" = machines.labcore01;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -9,6 +9,9 @@
|
|||
++ [
|
||||
"${sources."microvm.nix"}/nixos-modules/host"
|
||||
(import sources.proxmox-nixos).nixosModules.declarative-vms
|
||||
]
|
||||
++ (import sources.nix-modules { inherit lib; }).importModules [
|
||||
"services/nginx-sni"
|
||||
];
|
||||
|
||||
dgn-notify.enable = false;
|
||||
|
|
Loading…
Reference in a new issue