feat: add nix server provision
This commit is contained in:
117
flake.nix
117
flake.nix
@@ -1,22 +1,125 @@
|
||||
{
|
||||
description = "NodeiWest dev environment module";
|
||||
description = "NodeiWest company flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||
colmena.url = "github:zhaofengli/colmena";
|
||||
disko = {
|
||||
url = "github:nix-community/disko";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs =
|
||||
inputs:
|
||||
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
|
||||
systems = [
|
||||
inputs@{
|
||||
self,
|
||||
nixpkgs,
|
||||
colmena,
|
||||
disko,
|
||||
home-manager,
|
||||
...
|
||||
}:
|
||||
let
|
||||
lib = nixpkgs.lib;
|
||||
supportedSystems = [
|
||||
"aarch64-darwin"
|
||||
"x86_64-darwin"
|
||||
"x86_64-linux"
|
||||
];
|
||||
forAllSystems = lib.genAttrs supportedSystems;
|
||||
|
||||
flake = {
|
||||
homeManagerModules.default = ./modules/home.nix;
|
||||
mkPkgs =
|
||||
system:
|
||||
import nixpkgs {
|
||||
inherit system;
|
||||
};
|
||||
|
||||
mkHost =
|
||||
name:
|
||||
nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit inputs self;
|
||||
};
|
||||
modules = [
|
||||
disko.nixosModules.disko
|
||||
home-manager.nixosModules.home-manager
|
||||
self.nixosModules.common
|
||||
./hosts/${name}/configuration.nix
|
||||
];
|
||||
};
|
||||
in
|
||||
{
|
||||
homeManagerModules.default = ./modules/home.nix;
|
||||
homeManagerModules.helpers = ./modules/helpers/home.nix;
|
||||
nixosModules.common = ./modules/nixos/common.nix;
|
||||
|
||||
packages = forAllSystems (
|
||||
system:
|
||||
let
|
||||
pkgs = mkPkgs system;
|
||||
nodeiwestHelper = pkgs.callPackage ./pkgs/helpers { };
|
||||
in
|
||||
{
|
||||
colmena = colmena.packages.${system}.colmena;
|
||||
nodeiwest-helper = nodeiwestHelper;
|
||||
default = colmena.packages.${system}.colmena;
|
||||
}
|
||||
);
|
||||
|
||||
apps = forAllSystems (system: {
|
||||
colmena = {
|
||||
type = "app";
|
||||
program = "${colmena.packages.${system}.colmena}/bin/colmena";
|
||||
};
|
||||
nodeiwest-helper = {
|
||||
type = "app";
|
||||
program = "${self.packages.${system}.nodeiwest-helper}/bin/nodeiwest";
|
||||
};
|
||||
default = self.apps.${system}.colmena;
|
||||
});
|
||||
|
||||
nixosConfigurations = {
|
||||
vps1 = mkHost "vps1";
|
||||
};
|
||||
|
||||
colmena = {
|
||||
meta = {
|
||||
nixpkgs = mkPkgs "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit inputs self;
|
||||
};
|
||||
};
|
||||
|
||||
defaults =
|
||||
{ name, ... }:
|
||||
{
|
||||
networking.hostName = name;
|
||||
imports = [
|
||||
disko.nixosModules.disko
|
||||
home-manager.nixosModules.home-manager
|
||||
self.nixosModules.common
|
||||
];
|
||||
};
|
||||
|
||||
vps1 = {
|
||||
deployment = {
|
||||
targetHost = "100.101.167.118";
|
||||
targetUser = "root";
|
||||
tags = [
|
||||
"company"
|
||||
"edge"
|
||||
];
|
||||
};
|
||||
|
||||
imports = [ ./hosts/vps1/configuration.nix ];
|
||||
};
|
||||
};
|
||||
|
||||
colmenaHive = colmena.lib.makeHive self.outputs.colmena;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user