forked from cloud-gouv/securix
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdefault.nix
More file actions
58 lines (51 loc) · 1.4 KB
/
default.nix
File metadata and controls
58 lines (51 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# SPDX-FileCopyrightText: 2025 Ryan Lahfa <ryan.lahfa.ext@numerique.gouv.fr>
#
# SPDX-License-Identifier: MIT
{
sources ? import ./npins,
pkgs ? import sources.nixpkgs { },
securix ? ../securix,
mainDisk ? "/dev/nvme0n1",
}:
let
securix = import securix {
edition = "my-team";
defaultTags = [ "my-team" ];
inherit mainDisk pkgs;
};
inherit (pkgs) lib;
in
rec {
users = securix.lib.readInventory ./inventory;
vpn-profiles = import ./vpn-profiles { inherit lib; };
# Base system is provided.
terminals = securix.lib.mkTerminals users vpn-profiles (
{ lib, ... }:
{
imports = [
# Any custom module here...
];
securix = {
# Le terminal est multi-opérateur
users.allowAnyOperator = true;
# Autorise une GUI configurable par l'inventaire.
graphical-interface.enable = true;
# Pré-configure des points WiFi par défaut.
preconfigured-wifi-stations.enable = true;
# Configure l'agent TPM2 pour SSH.
ssh.tpm-agent = {
hostKeys = true;
sshKeys = true;
};
# Configure le VPN pour chaque opérateur
# avec un pare-feu strict.
vpn = {
enable = true;
firewall.enable = true;
pskSecretsPath = "your secret path to your PSK.";
};
};
}
);
docs = securix.lib.mkDocs { inherit users terminals vpn-profiles; };
}