forked from pub-solar/os
teutat3s
2f0b24b3a9
The override did not work and the resulting python penv was broken (e.g. missing the bench, erpnext, frappe packages).
194 lines
5.5 KiB
Nix
194 lines
5.5 KiB
Nix
{
|
|
description = "A highly structured configuration database.";
|
|
|
|
nixConfig.extra-experimental-features = "nix-command flakes";
|
|
|
|
inputs = {
|
|
# Track channels with commits tested and built by hydra
|
|
nixos.url = "github:nixos/nixpkgs/nixos-23.05";
|
|
latest.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
|
|
flake-compat.url = "github:edolstra/flake-compat";
|
|
flake-compat.flake = false;
|
|
|
|
digga.url = "github:pub-solar/digga/fix/bootstrap-iso";
|
|
digga.inputs.nixpkgs.follows = "nixos";
|
|
digga.inputs.nixlib.follows = "nixos";
|
|
digga.inputs.home-manager.follows = "home";
|
|
digga.inputs.deploy.follows = "deploy";
|
|
digga.inputs.darwin.follows = "darwin";
|
|
digga.inputs.flake-compat.follows = "flake-compat";
|
|
|
|
home.url = "github:nix-community/home-manager/release-23.05";
|
|
home.inputs.nixpkgs.follows = "nixos";
|
|
|
|
darwin.url = "github:LnL7/nix-darwin";
|
|
darwin.inputs.nixpkgs.follows = "nixos";
|
|
|
|
deploy.url = "github:serokell/deploy-rs";
|
|
deploy.inputs.nixpkgs.follows = "nixos";
|
|
deploy.inputs.flake-compat.follows = "flake-compat";
|
|
|
|
agenix.url = "github:ryantm/agenix";
|
|
agenix.inputs.nixpkgs.follows = "nixos";
|
|
agenix.inputs.darwin.follows = "darwin";
|
|
|
|
nixos-hardware.url = "github:nixos/nixos-hardware";
|
|
|
|
nvfetcher.url = "github:berberman/nvfetcher";
|
|
nvfetcher.inputs.nixpkgs.follows = "nixos";
|
|
nvfetcher.inputs.flake-compat.follows = "flake-compat";
|
|
|
|
erpnext.url = "git+https://git.pub.solar/axeman/erpnext-nix?ref=main";
|
|
erpnext.inputs.nixpkgs.follows = "nixos";
|
|
erpnext.inputs.agenix.follows = "agenix";
|
|
};
|
|
|
|
outputs = {
|
|
self,
|
|
digga,
|
|
nixos,
|
|
home,
|
|
nixos-hardware,
|
|
agenix,
|
|
deploy,
|
|
nvfetcher,
|
|
erpnext,
|
|
...
|
|
} @ inputs:
|
|
digga.lib.mkFlake
|
|
{
|
|
inherit self inputs;
|
|
|
|
channelsConfig = {
|
|
# allowUnfree = true;
|
|
};
|
|
|
|
supportedSystems = ["x86_64-linux" "aarch64-linux" "aarch64-darwin"];
|
|
|
|
channels = {
|
|
nixos = {
|
|
imports = [(digga.lib.importOverlays ./overlays)];
|
|
overlays = [
|
|
(self: super: {
|
|
deploy-rs = {
|
|
inherit (inputs.nixos.legacyPackages.x86_64-linux) deploy-rs;
|
|
lib = inputs.deploy.lib.x86_64-linux;
|
|
};
|
|
})
|
|
];
|
|
};
|
|
latest = {};
|
|
};
|
|
|
|
lib = import ./lib {lib = digga.lib // nixos.lib;};
|
|
|
|
sharedOverlays = [
|
|
(final: prev: {
|
|
__dontExport = true;
|
|
lib = prev.lib.extend (lfinal: lprev: {
|
|
our = self.lib;
|
|
});
|
|
})
|
|
agenix.overlays.default
|
|
erpnext.overlays.default
|
|
erpnext.overlays.pythonOverlay
|
|
nvfetcher.overlays.default
|
|
|
|
(import ./pkgs)
|
|
];
|
|
|
|
nixos = {
|
|
hostDefaults = {
|
|
system = "x86_64-linux";
|
|
channelName = "nixos";
|
|
imports = [(digga.lib.importExportableModules ./modules)];
|
|
modules = [
|
|
{lib.our = self.lib;}
|
|
# FIXME: upstream module causes a huge number of unnecessary
|
|
# dependencies to be pulled in for all systems -- many of them are
|
|
# graphical. should only be imported as needed.
|
|
# digga.nixosModules.bootstrapIso
|
|
digga.nixosModules.nixConfig
|
|
home.nixosModules.home-manager
|
|
agenix.nixosModules.age
|
|
];
|
|
};
|
|
|
|
imports = [(digga.lib.importHosts ./hosts)];
|
|
hosts = {
|
|
# Set host-specific properties here
|
|
bootstrap = {
|
|
modules = [
|
|
digga.nixosModules.bootstrapIso
|
|
];
|
|
};
|
|
PubSolarOS = {
|
|
tests = [
|
|
#(import ./tests/first-test.nix {
|
|
# pkgs = nixos.legacyPackages.x86_64-linux;
|
|
# lib = nixos.lib;
|
|
#})
|
|
];
|
|
};
|
|
pioneer-momo-koeln = {
|
|
modules = [
|
|
erpnext.nixosModules.erpnext
|
|
];
|
|
};
|
|
};
|
|
importables = rec {
|
|
profiles =
|
|
digga.lib.rakeLeaves ./profiles
|
|
// {
|
|
users = digga.lib.rakeLeaves ./users;
|
|
};
|
|
suites = with profiles; rec {
|
|
base = [base-user cachix users.root users.barkeeper];
|
|
|
|
pioneer-momo-koeln = base;
|
|
};
|
|
};
|
|
};
|
|
|
|
home = {
|
|
imports = [(digga.lib.importExportableModules ./users/modules)];
|
|
modules = [];
|
|
importables = rec {
|
|
profiles = digga.lib.rakeLeaves ./users/profiles;
|
|
suites = with profiles; rec {
|
|
base = [direnv git];
|
|
};
|
|
};
|
|
users = {
|
|
barkeeper = {suites, ...}: {
|
|
imports = suites.base;
|
|
|
|
home.stateVersion = "22.05";
|
|
};
|
|
}; # digga.lib.importers.rakeLeaves ./users/hm;
|
|
};
|
|
|
|
devshell = ./shell;
|
|
|
|
homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations;
|
|
|
|
deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations {
|
|
pioneer-momo-koeln = {
|
|
hostname = "80.244.242.4";
|
|
sshUser = "barkeeper";
|
|
};
|
|
#example = {
|
|
# hostname = "example.com:22";
|
|
# sshUser = "bartender";
|
|
# fastConnect = true;
|
|
# profilesOrder = ["system" "direnv"];
|
|
# profiles.direnv = {
|
|
# user = "bartender";
|
|
# path = self.pkgs.x86_64-linux.nixos.deploy-rs.lib.x86_64-linux.activate.home-manager self.homeConfigurationsPortable.x86_64-linux.bartender;
|
|
# };
|
|
#};
|
|
};
|
|
};
|
|
}
|