Giving up on LXC, switching to VM config

This commit is contained in:
jeirmeister 2025-09-12 13:30:59 -07:00
parent 81939bd533
commit 4dafb111b9

View file

@ -1,28 +1,3 @@
{
description = "BTCPay server, NBXplorer, Bitcoin Core, etc. as a NixOS system/container image";
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";
};
outputs = {
self,
nixpkgs,
nix-bitcoin,
nixos-generators,
flake-utils,
...
}: let
system = "x86_64-linux";
pkgs = import nixpkgs {inherit system;};
in {
nixosConfigurations.btc-pay-server = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
nix-bitcoin.nixosModules.default
({ ({
config, config,
pkgs, pkgs,
@ -33,6 +8,7 @@
nix-bitcoin.generateSecrets = true; nix-bitcoin.generateSecrets = true;
# Enable core services
services.bitcoind = { services.bitcoind = {
enable = true; enable = true;
dataDir = "/var/lib/bitcoind"; dataDir = "/var/lib/bitcoind";
@ -76,15 +52,7 @@
lightningBackend = "clightning"; lightningBackend = "clightning";
}; };
# Relax seccomp and namespaces for BTCPayServer to avoid SIGSYS in LXC # Firewall: Open necessary ports
systemd.services.btcpayserver.serviceConfig = {
SystemCallFilter = [];
PrivateMounts = false;
ProtectSystem = lib.mkForce false; # Overrides nix-bitcoin's "strict" value
};
boot.isContainer = true;
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [
config.services.btcpayserver.port config.services.btcpayserver.port
config.services.bitcoind.port config.services.bitcoind.port
@ -92,6 +60,7 @@
22 22
]; ];
# SSH setup
services.openssh = { services.openssh = {
enable = true; enable = true;
settings = { settings = {
@ -106,32 +75,5 @@
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAaV7JtUWkWrjo5FfCcpTCCEY/OJ+T1mJOLbe4avg0XH sysadmin@skrybit.io" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAaV7JtUWkWrjo5FfCcpTCCEY/OJ+T1mJOLbe4avg0XH sysadmin@skrybit.io"
]; ];
systemd.suppressedSystemUnits = [
"dev-mqueue.mount"
"sys-kernel-debug.mount"
"sys-fs-fuse-connections.mount"
];
system.stateVersion = "25.05"; system.stateVersion = "25.05";
}) })
];
};
# Your devShell remains the same
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."
'';
};
}
);
};
}