forked from tangled.org/core
Monorepo for Tangled — https://tangled.org
1{ 2 nixpkgs, 3 self, 4}: 5nixpkgs.lib.nixosSystem { 6 system = "x86_64-linux"; 7 modules = [ 8 self.nixosModules.knot 9 self.nixosModules.spindle 10 ({ 11 config, 12 pkgs, 13 ... 14 }: { 15 virtualisation = { 16 memorySize = 2048; 17 diskSize = 10 * 1024; 18 cores = 2; 19 forwardPorts = [ 20 # ssh 21 { 22 from = "host"; 23 host.port = 2222; 24 guest.port = 22; 25 } 26 # knot 27 { 28 from = "host"; 29 host.port = 6000; 30 guest.port = 6000; 31 } 32 # spindle 33 { 34 from = "host"; 35 host.port = 6555; 36 guest.port = 6555; 37 } 38 ]; 39 }; 40 services.getty.autologinUser = "root"; 41 environment.systemPackages = with pkgs; [curl vim git]; 42 systemd.tmpfiles.rules = let 43 u = config.services.tangled-knot.gitUser; 44 g = config.services.tangled-knot.gitUser; 45 in [ 46 "d /var/lib/knot 0770 ${u} ${g} - -" # Create the directory first 47 "f+ /var/lib/knot/secret 0660 ${u} ${g} - KNOT_SERVER_SECRET=168c426fa6d9829fcbe85c96bdf144e800fb9737d6ca87f21acc543b1aa3e440" 48 ]; 49 services.tangled-knot = { 50 enable = true; 51 server = { 52 secretFile = "/var/lib/knot/secret"; 53 hostname = "localhost:6000"; 54 listenAddr = "0.0.0.0:6000"; 55 }; 56 }; 57 services.tangled-spindle = { 58 enable = true; 59 server = { 60 owner = "did:plc:qfpnj4og54vl56wngdriaxug"; 61 hostname = "localhost:6555"; 62 listenAddr = "0.0.0.0:6555"; 63 dev = true; 64 }; 65 }; 66 }) 67 ]; 68}