Added disko config

This commit is contained in:
jeirmeister 2025-09-12 13:46:30 -07:00
parent 4dafb111b9
commit 2c61985a3b

104
flake.nix
View file

@ -1,3 +1,32 @@
{
description = "BTCPay server, NBXplorer, Bitcoin Core, etc. as a NixOS system/container image with disko";
inputs = {
nix-bitcoin.url = "github:fort-nix/nix-bitcoin/release";
nixpkgs.follows = "nix-bitcoin/nixpkgs";
nixos-generators.url = "github:nix-community/nixos-generators";
flake-utils.url = "github:numtide/flake-utils";
disko.url = "github:nix-community/disko";
disko.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = {
self,
nixpkgs,
nix-bitcoin,
nixos-generators,
flake-utils,
disko,
...
}: let
system = "x86_64-linux";
pkgs = import nixpkgs {inherit system;};
in {
nixosConfigurations.btc-pay-server = pkgs.lib.nixosSystem {
inherit system;
modules = [
nix-bitcoin.nixosModules.default
disko.nixosModules.default
({ ({
config, config,
pkgs, pkgs,
@ -8,7 +37,60 @@
nix-bitcoin.generateSecrets = true; nix-bitcoin.generateSecrets = true;
# Enable core services disko.devices = {
disk.root = {
device = "/dev/sda";
format = "gpt";
partitions = {
ESP = {
size = "512M";
type = "EF00";
format = "vfat";
content = {
type = "filesystem";
mountpoint = "/boot";
};
};
root = {
size = "100%";
content = {
type = "lvm_pv";
vg = "root_vg";
};
};
};
};
lvm_vg.root_vg = {
type = "lvm_vg";
lvs = {
root = {
size = "100%FREE";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
mountOptions = ["defaults"];
};
};
};
};
disk.data = {
device = "/dev/sdb";
format = "gpt";
partitions = {
data = {
size = "100%";
type = "8300"; # Linux filesystem
format = "xfs";
mountpoint = "/var/lib/bitcoind";
options = ["noatime"];
};
};
growPartition = true; # Enables growpart for resizing
};
};
growpart.enable = true; # Enables the growpart service
services.bitcoind = { services.bitcoind = {
enable = true; enable = true;
dataDir = "/var/lib/bitcoind"; dataDir = "/var/lib/bitcoind";
@ -52,7 +134,6 @@
lightningBackend = "clightning"; lightningBackend = "clightning";
}; };
# Firewall: Open necessary ports
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [
config.services.btcpayserver.port config.services.btcpayserver.port
config.services.bitcoind.port config.services.bitcoind.port
@ -60,7 +141,6 @@
22 22
]; ];
# SSH setup
services.openssh = { services.openssh = {
enable = true; enable = true;
settings = { settings = {
@ -77,3 +157,21 @@
system.stateVersion = "25.05"; system.stateVersion = "25.05";
}) })
];
};
devShells = flake-utils.lib.eachDefaultSystem (system: let
pkgs = import nixpkgs {inherit system;};
in {
default = pkgs.mkShell {
buildInputs = [
nixos-generators.packages.${system}.nixos-generate
pkgs.just
];
shellHook = ''
echo "💚 Devshell ready: nixos-generate, just available."
'';
};
});
};
}