# See how this flake is used in ./usage.sh { description = "hbs2-container"; inputs = { extra-container.url = "github:erikarvstedt/extra-container"; nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; hbs2.url = "github:voidlizard/hbs2/injecting-tcp"; hbs2.inputs.nixpkgs.follows = "nixpkgs"; home-manager.url = "github:nix-community/home-manager"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { extra-container, nixpkgs, home-manager, ... }@inputs: extra-container.inputs.flake-utils.lib.eachSystem extra-container.lib.supportedSystems (system: { packages.default = extra-container.lib.buildContainers { # The system of the container host inherit system; # Only set this if the `system.stateVersion` of your container # host is < 22.05 # legacyInstallDirs = true; # Optional: Set nixpkgs. # If unset, the nixpkgs input of extra-container flake is used nixpkgs = inputs.nixpkgs; # home-manager.homeConfigurations = { # # FIXME replace with your username@hostname # "root@minipig" = home-manager.lib.homeManagerConfiguration { # pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance # extraSpecialArgs = { inherit inputs; }; # Pass flake inputs to our config # # > Our main home-manager configuration file < # modules = [ ./home/home.nix ]; # }; # }; # Set this to disable `nix run` support # addRunner = false; config = { containers.hbs2-test = { extra.addressPrefix = "10.250.0"; config = { pkgs, ... }: { users.users.hbs2 = { isNormalUser = true; home = "/home/hbs2"; }; systemd.services.hello = { wantedBy = [ "multi-user.target" ]; script = '' while true; do echo hello | ${pkgs.netcat}/bin/nc -lN 50 done ''; }; networking.firewall.enable = false; environment.systemPackages = with pkgs; [ inputs.hbs2.packages.${pkgs.system}.default screen tshark tmux gitFull iptables ]; environment.etc = { "tmux.conf".source = ./tmux.conf; }; # environment.xdg.data."hbs2/wtf" = { # text = "pwned"; # }; environment.etc."hbs2-peer/key" = { text = '' # hbs2 credentials file # keep it private rmbTHUgv7NPkygrgEbPWTjQbVTx9uwWJ7sJVQRKK7ygM73q5Q7JVYhpwfytK kzoNq65jn1zDCUUMwLFzXeu4ETjG4bhYNM7FHU9xY4VdwEww156iJeoydJ2y j1u3RJEr8kosBH2DR8XMY6Mj8s ''; }; environment.etc."hbs2-peer/config" = { text = '' listen "0.0.0.0:7351" listen-tcp "0.0.0.0:3003" rpc "127.0.0.1:13331" http-port 5001 key "./key" storage "/root/.local/share/hbs2" accept-block-announce * download-log "/tmp/download-log" bootstrap-dns "bootstrap.hbs2.net" known-peer "10.250.0.1:7354" known-peer "10.250.0.1:7351" ; poll reflog 1 "2YNGdnDBnciF1Kgmx1EZTjKUp1h5pvYAjrHoApbArpeX" ''; }; }; }; }; }; }); }