dotfiles/flake.nix
Magic_RB 30ba25f277
Enable InfluxDB provider and provision Grafana
Signed-off-by: Magic_RB <magic_rb@redalder.org>
2023-05-02 14:41:55 +02:00

214 lines
7.3 KiB
Nix

# SPDX-FileCopyrightText: 2022 Richard Brežák <richard@brezak.sk>
#
# SPDX-License-Identifier: LGPL-3.0-or-later
{
inputs = {
nixpkgs-stable.url = "github:NixOS/nixpkgs?ref=nixos-22.11";
nixpkgs.url = "sourcehut:~magic_rb/nixpkgs";
nixpkgs-master.url = "github:NixOS/nixpkgs?ref=master";
nixpkgs-hashicorp.url = "sourcehut:~magic_rb/nixpkgs?ref=nixos-unstable";
nixpkgs-firefox.url = "github:NixOS/nixpkgs?ref=nixos-unstable";
nixpkgs-discord.url = "github:NixOS/nixpkgs?ref=nixos-unstable";
nixinate.url = "github:MagicRB/nixinate";
nixinate.inputs.nixpkgs.follows = "nixpkgs";
home-manager.url = "github:nix-community/home-manager?ref=master";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
home-manager.inputs.utils.follows = "flake-utils";
nixng.url = "github:nix-community/NixNG";
nixng.inputs.nixpkgs.follows = "nixpkgs";
poetry2nix.url = "github:nix-community/poetry2nix";
poetry2nix.inputs.nixpkgs.follows = "nixpkgs";
poetry2nix.inputs.flake-utils.follows = "flake-utils";
nix.url = "github:NixOS/nix";
nix.inputs.nixpkgs.follows = "nixpkgs";
deploy-rs.url = "github:serokell/deploy-rs";
deploy-rs.inputs.nixpkgs.follows = "nixpkgs";
deploy-rs.inputs.utils.follows = "flake-utils";
deploy-rs.inputs.flake-compat.follows = "flake-compat";
nomad-driver-containerd-nix.url = "github:MagicRB/nomad-driver-containerd-nix"; # "git+https://gitea.redalder.org/Magic_RB/nomad-driver-containerd-nix";
nomad-driver-containerd-nix.inputs.nixpkgs.follows = "nixpkgs";
nix-gaming.url = "github:fufexan/nix-gaming";
nix-gaming.inputs.nixpkgs.follows = "nixpkgs";
emacs-overlay.url = "github:nix-community/emacs-overlay";
emacs-overlay.inputs.nixpkgs.follows = "nixpkgs";
emacs-overlay.inputs.flake-utils.follows = "flake-utils";
flake-parts.url = "github:hercules-ci/flake-parts";
flake-utils.url = "github:numtide/flake-utils";
dream2nix.url = "github:nix-community/dream2nix";
dream2nix.inputs.nixpkgs.follows = "nixpkgs";
dream2nix.inputs.alejandra.follows = "alejandra";
dream2nix.inputs.pre-commit-hooks.follows = "pre-commit-hooks";
dream2nix.inputs.flake-utils-pre-commit.follows = "flake-utils";
alejandra.url = "github:kamadorueda/alejandra";
alejandra.inputs.nixpkgs.follows = "nixpkgs";
alejandra.inputs.fenix.follows = "fenix";
alejandra.inputs.flakeCompat.follows = "flake-compat";
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs";
pre-commit-hooks.inputs.flake-utils.follows = "flake-utils";
nil.url = "github:oxalica/nil";
nil.inputs.nixpkgs.follows = "nixpkgs";
nil.inputs.flake-utils.follows = "flake-utils";
serokell-nix.url = "github:serokell/serokell.nix?ref=magicrb-allow-wildcards-with-no-main";
serokell-nix.inputs.flake-compat.follows = "flake-compat";
serokell-nix.inputs.gitignore-nix.follows = "gitignore-nix";
webcord.url = "github:SpacingBat3/WebCord";
webcord.flake = false;
fenix.url = "github:nix-community/fenix";
fenix.flake = false;
devshell.url = "github:numtide/devshell";
devshell.flake = false;
gomod2nix.url = "github:tweag/gomod2nix";
gomod2nix.flake = false;
mach-nix.url = "github:DavHau/mach-nix";
mach-nix.flake = false;
crane.url = "github:ipetkov/crane";
crane.flake = false;
flake-compat.url = "github:edolstra/flake-compat";
flake-compat.flake = false;
emacs.url = "sourcehut:~magic_rb/emacs?rev=1298d1db189bf434e54a792d3a6746237881f251";
emacs.flake = false;
vtermModule.url = "github:akermu/emacs-libvterm";
vtermModule.flake = false;
secret.url = "path:///var/empty";
secret.flake = false;
qmk.url = "https://github.com/qmk/qmk_firmware";
qmk.flake = false;
qmk.type = "git";
qmk.ref = "master";
qmk.submodules = true;
bootloadHID.url = "github:whiteneon/bootloadHID";
bootloadHID.flake = false;
hidapitester.url = "github:todbot/hidapitester";
hidapitester.flake = false;
yusdacra-dotfiles.url = "github:yusdacra/nixos-config";
yusdacra-dotfiles.flake = false;
fufexan-dotfiles.url = "github:fufexan/dotfiles";
fufexan-dotfiles.flake = false;
ical2org.url = "git+https://git.sr.ht/~magic_rb/ical2orgpy";
ical2org.flake = false;
udp-over-tcp.url = "github:mullvad/udp-over-tcp";
udp-over-tcp.flake = false;
gitignore-nix.url = "github:hercules-ci/gitignore.nix";
gitignore-nix.flake = false;
uterranix.url = "path:///home/main/uterranix";
uterranix.inputs.flake-parts.follows = "flake-parts";
uterranix.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = inputs@{
self,
flake-parts,
nixpkgs,
nixinate,
...
}:
let
systems = ["x86_64-linux" "aarch64-linux"];
flake =
flake-parts.lib.mkFlake
{
inherit inputs;
specialArgs = {
roots.nixos = ./. + "/nixos";
roots.flake = ./.;
roots.home-manager = ./. + "/home-manager";
};
}
{
inherit systems;
imports = [
inputs.uterranix.flakeModule
./modules
];
uterranix.config = ./terranix/default.nix;
uterranix.terraform = pkgs:
let
hpkgs = inputs.nixpkgs-hashicorp.legacyPackages.${pkgs.stdenv.system};
in
hpkgs.terraform.withPlugins (p:
[
p.consul
((p.nomad.override {
hash = "sha256-oHY+jM4JQgLlE1wd+/H9H8H2g0e9ZuxI6OMlz3Izfjg=";
vendorHash = "sha256-zVU7zhKfWmFLdhsK9oQkSxCW7B7ctzD/B0DvzU+Wnyg=";
mkProviderGoModule =
(args:
hpkgs.buildGoModule (args // {
overrideModAttrs = old: {
preBuild = ''
go get github.com/hashicorp/nomad
go get github.com/hashicorp/nomad/api
'';
postInstall = ''
cp go.mod go.sum $out/
'';
};
}));
}).overrideAttrs (old: {
postConfigure = ''
cp vendor/{go.mod,go.sum} .
'';
}))
p.local
(p.vault.overrideAttrs (old: { patches = [ ./0001-Allow-null-in-authMountTuneSchema.patch ]; }))
p.random
p.null
(hpkgs.terraform.plugins.mkProvider {
owner = "MagicRB";
repo = "terraform-provider-influxdb-v2";
rev = "4f10e465f9526b47d1ef97a8f2e109aa85a7d647";
version = "0.4.6";
hash = "sha256-/IQoA1CwYIafHbHKSZq7pZKFxefgd09fm0lnBW3r11Q=";
vendorHash = "sha256-g7Njs7psHFFSWk44CiV+blLrzpnB+L9HgMTx3lLMA8Q=";
provider-source-address = "registry.terraform.io/MagicRB/influxdb-v2";
})
]
);
};
in
flake // {
apps = nixpkgs.lib.genAttrs systems (system:
(nixinate.nixinate.${system} self)
// flake.apps.${system}
);
};
}