mirror of
https://github.com/rzuasti/oott.git
synced 2026-07-08 19:21:54 +02:00
62 lines
1.8 KiB
Nix
62 lines
1.8 KiB
Nix
{
|
|
description = "OOTT - An easy to setup and use network device monitoring service";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "nixpkgs/nixos-unstable";
|
|
};
|
|
|
|
outputs = {
|
|
self,
|
|
nixpkgs,
|
|
nix,
|
|
}: let
|
|
# System types to support.
|
|
supportedSystems = ["x86_64-linux"];
|
|
|
|
# Helper function to generate an attrset '{ x86_64-linux = f "x86_64-linux"; ... }'.
|
|
forEachSystem = nixpkgs.lib.genAttrs supportedSystems;
|
|
|
|
# Package overlays to include
|
|
overlayList = [self.overlays.default];
|
|
|
|
# Nixpkgs instantiated for supported system types.
|
|
pkgsBySystem = forEachSystem (system:
|
|
import nixpkgs {
|
|
inherit system;
|
|
overlays = overlayList;
|
|
});
|
|
in rec {
|
|
# A Nixpkgs overlay that provides a 'oott' package.
|
|
overlays.default = final: prev: {oott = final.callPackage ./nix/package.nix {};};
|
|
|
|
# Package definition
|
|
packages = forEachSystem (system: {
|
|
oott = pkgsBySystem.${system}.oott;
|
|
default = pkgsBySystem.${system}.oott;
|
|
|
|
# Docker image generation
|
|
# use via 'nix build .#dockerImage'
|
|
dockerImage = with pkgsBySystem.${system};
|
|
dockerTools.buildLayeredImage {
|
|
# Based on the official nixos image
|
|
fromImage = dockerTools.pullImage {
|
|
imageName = "nixos/nix";
|
|
imageDigest = "sha256:d5cce2440bda1f966357732c06d86cb92368069fb52dfb6b2bae8725eea488a5";
|
|
sha256 = "sha256-4+99v7Jej0dY0zv8iJLtFiulCsw90ZnGwtjTaGu2L+c=";
|
|
finalImageTag = "2.33.1";
|
|
finalImageName = "nix";
|
|
};
|
|
name = "oott";
|
|
tag = "latest";
|
|
contents = [oott curl bash openssl cacert];
|
|
config = {
|
|
Cmd = ["${oott}/bin/oott" "--config" "/config/oott.toml"];
|
|
};
|
|
};
|
|
});
|
|
|
|
# Modules definition
|
|
nixosModules = import ./nix/modules {overlays = overlayList;};
|
|
};
|
|
}
|