summary refs log tree commit diff
path: root/flake.nix
blob: 49639b52689c07752af3b5679452ccd1e9f901f9 (plain) (blame)
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
59
{
  inputs = {
    nixpkgs = {
      type = "github";
      owner = "NixOS";
      repo = "nixpkgs";
      ref = "nixos-25.05";
    };
  };

  outputs = { self, nixpkgs, ... }@attrs:
  let supportedSystems = [ "aarch64-linux" "x86_64-linux" ];
      forAllPkgs = f:
        nixpkgs.lib.genAttrs supportedSystems
            (system: f (import nixpkgs { inherit system; }));
  in {
    nixosModules.default = { ... }: {
      imports = [
        ./options.nix
        ./services/common/database.nix
        ./services/documents.nix
        ./services/mattermost.nix
        ./services/frontend/common.nix
        ./services/frontend/haproxy.nix
        ./services/frontend/web-server.nix
        ./services/accounts/openldap.nix
        ./wrappers/haproxy.nix
      ];
    };

    packages = forAllPkgs (pkgs: {
      documentation = pkgs.stdenv.mkDerivation rec {
        name = "smalltech-documentation";
        version = "1.0";

        src = ./.;

        nativeBuildInputs = with pkgs; [ mkdocs ];

        buildPhase = ''
          ls -al
          ${pkgs.mkdocs}/bin/mkdocs build -f docs/mkdocs.yml
        '';

        installPhase = ''
          rm $out/mkdocs.yml
        '';
      };
    });

    devShells = forAllPkgs (pkgs: {
      default = pkgs.mkShell {
        buildInputs = with pkgs; [
          mkdocs
        ];
      };
    });
  };
}