Compare commits

...

6 commits

Author SHA1 Message Date
Anish Lakhwara 50ac68b6df Merge branch 'main' of git.sealight.xyz:aynish/helm 2024-08-19 22:17:40 -07:00
Anish Lakhwara 676ed31aad feat(box): gpodder deployed 2024-08-19 22:16:53 -07:00
Anish Lakhwara afb1c0efb4 update to 24.05 2024-08-19 21:29:41 -07:00
Anish Lakhwara fb9d892015 feat: gpodder2go module + pkg 2024-08-19 21:29:25 -07:00
Anish Lakhwara e92a34b76a delete failed blog attempt 2024-08-19 21:28:53 -07:00
Anish Lakhwara 92e293d863 feat(wireguard): add hyperplane and work 2024-08-18 18:55:28 -07:00
31 changed files with 248 additions and 620 deletions

View file

@ -6,14 +6,15 @@
"home-manager": "home-manager",
"nixpkgs": [
"nixpkgs"
]
],
"systems": "systems"
},
"locked": {
"lastModified": 1690228878,
"narHash": "sha256-9Xe7JV0krp4RJC9W9W9WutZVlw6BlHTFMiUP/k48LQY=",
"lastModified": 1723293904,
"narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=",
"owner": "ryantm",
"repo": "agenix",
"rev": "d8c973fd228949736dedf61b7f8cc1ece3236792",
"rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41",
"type": "github"
},
"original": {
@ -55,11 +56,11 @@
]
},
"locked": {
"lastModified": 1673295039,
"narHash": "sha256-AsdYgE8/GPwcelGgrntlijMg4t3hLFJFCRF3tL5WVjA=",
"lastModified": 1700795494,
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "87b9d090ad39b25b2400029c64825fc2a8868943",
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
"type": "github"
},
"original": {
@ -78,11 +79,11 @@
"utils": "utils"
},
"locked": {
"lastModified": 1704875591,
"narHash": "sha256-eWRLbqRcrILgztU/m/k7CYLzETKNbv0OsT2GjkaNm8A=",
"lastModified": 1718194053,
"narHash": "sha256-FaGrf7qwZ99ehPJCAwgvNY5sLCqQ3GDiE/6uLhxxwSY=",
"owner": "serokell",
"repo": "deploy-rs",
"rev": "1776009f1f3fb2b5d236b84d9815f2edee463a9b",
"rev": "3867348fa92bc892eba5d9ddb2d7a97b9e127a8a",
"type": "github"
},
"original": {
@ -109,16 +110,15 @@
"dirt-samples-src": {
"flake": false,
"locked": {
"lastModified": 1588278411,
"narHash": "sha256-h8vQxRym6QzNLOTZU7A43VCHuG0H77l+BFwXnC0L1CE=",
"lastModified": 1698439458,
"narHash": "sha256-Mp8qBpsOvW9Zguv95Kv7EU6S3ICaF2aO02Wz6xGURtE=",
"owner": "tidalcycles",
"repo": "dirt-samples",
"rev": "66d432418c9a7d82cf049d9246adfa62f46df2a6",
"rev": "9a6dff8f9ec3cd55b287290cf04e01afa6b8f532",
"type": "github"
},
"original": {
"owner": "tidalcycles",
"ref": "master",
"repo": "dirt-samples",
"type": "github"
}
@ -130,11 +130,11 @@
]
},
"locked": {
"lastModified": 1690739034,
"narHash": "sha256-roW02IaiQ3gnEEDMCDWL5YyN+C4nBf/te6vfL7rG0jk=",
"lastModified": 1724031427,
"narHash": "sha256-o1HdAf+7IGv9M13R3c+zc/sJ0QgeEnhsvHBcodI4UpM=",
"owner": "nix-community",
"repo": "disko",
"rev": "4015740375676402a2ee6adebc3c30ea625b9a94",
"rev": "4e719b38fa7c85f4f65d0308ca7084c91e7bdd6d",
"type": "github"
},
"original": {
@ -143,30 +143,6 @@
"type": "github"
}
},
"eww": {
"inputs": {
"flake-compat": "flake-compat_2",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": [
"rust-overlay"
]
},
"locked": {
"lastModified": 1690660426,
"narHash": "sha256-YUuH1BZ3G5dhHRZ1Z9XPXyorm8vV8G+jYbcdIGxOcOs=",
"owner": "elkowar",
"repo": "eww",
"rev": "dc3129aee2806823bdad87785f7ef80651d5245c",
"type": "github"
},
"original": {
"owner": "elkowar",
"repo": "eww",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
@ -184,22 +160,6 @@
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1650374568,
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1641205782,
@ -245,42 +205,6 @@
"type": "github"
}
},
"flake-utils_3": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1685518550,
"narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_4": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1705309234,
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"grasp": {
"inputs": {
"flake-utils": "flake-utils_2",
@ -305,11 +229,11 @@
},
"hardware": {
"locked": {
"lastModified": 1691179816,
"narHash": "sha256-WSMwqzU70ZMRHv1CUAfHEEKJuB0c9c9r0F+lJehXfSI=",
"lastModified": 1723310128,
"narHash": "sha256-IiH8jG6PpR4h9TxSGMYh+2/gQiJW9MwehFvheSb5rPc=",
"owner": "nixos",
"repo": "nixos-hardware",
"rev": "87e3122b67587492a617764f88c71991893fcf8a",
"rev": "c54cf53e022b0b3c1d3b8207aa0f9b194c24f0cf",
"type": "github"
},
"original": {
@ -326,11 +250,11 @@
]
},
"locked": {
"lastModified": 1682203081,
"narHash": "sha256-kRL4ejWDhi0zph/FpebFYhzqlOBrk0Pl3dzGEKSAlEw=",
"lastModified": 1703113217,
"narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "32d3e39c491e2f91152c84f8ad8b003420eab0a1",
"rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1",
"type": "github"
},
"original": {
@ -346,45 +270,24 @@
]
},
"locked": {
"lastModified": 1704099619,
"narHash": "sha256-QRVMkdxLmv+aKGjcgeEg31xtJEIsYq4i1Kbyw5EPS6g=",
"lastModified": 1720042825,
"narHash": "sha256-A0vrUB6x82/jvf17qPCpxaM+ulJnD8YZwH9Ci0BsAzE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "7e398b3d76bc1503171b1364c9d4a07ac06f3851",
"rev": "e1391fb22e18a36f57e6999c7a9f966dc80ac073",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-23.11",
"ref": "release-24.05",
"repo": "home-manager",
"type": "github"
}
},
"llamacpp": {
"inputs": {
"flake-utils": "flake-utils_3",
"nixpkgs": [
"unstable"
]
},
"locked": {
"lastModified": 1691180171,
"narHash": "sha256-ZmSRPACkLlPWtKfux9o+FB0mXZbINowyb0057ouAL/0=",
"owner": "ggerganov",
"repo": "llama.cpp",
"rev": "332311234a0aa2974b2450710e22e09d90dd6b0b",
"type": "github"
},
"original": {
"owner": "ggerganov",
"repo": "llama.cpp",
"type": "github"
}
},
"nix-matrix-appservices": {
"inputs": {
"devshell": "devshell",
"flake-compat": "flake-compat_3",
"flake-compat": "flake-compat_2",
"nixlib": "nixlib",
"nixpkgs": "nixpkgs"
},
@ -419,11 +322,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1691179816,
"narHash": "sha256-WSMwqzU70ZMRHv1CUAfHEEKJuB0c9c9r0F+lJehXfSI=",
"lastModified": 1723310128,
"narHash": "sha256-IiH8jG6PpR4h9TxSGMYh+2/gQiJW9MwehFvheSb5rPc=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "87e3122b67587492a617764f88c71991893fcf8a",
"rev": "c54cf53e022b0b3c1d3b8207aa0f9b194c24f0cf",
"type": "github"
},
"original": {
@ -451,27 +354,27 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1710420202,
"narHash": "sha256-MvFKESbq4rUWuaf2RKPNYENaSZEw/jaCLo2gU6oREcM=",
"lastModified": 1723938990,
"narHash": "sha256-9tUadhnZQbWIiYVXH8ncfGXGvkNq3Hag4RCBEMUk7MI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "878ef7d9721bee9f81f8a80819f9211ad1f993da",
"rev": "c42fcfbdfeae23e68fc520f9182dde9f38ad1890",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-23.11",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nur": {
"locked": {
"lastModified": 1691214006,
"narHash": "sha256-kdfBd+Y0DTOOdgSA6h6iIn403xVj4bzLnXqb7+yM6lQ=",
"lastModified": 1724040334,
"narHash": "sha256-Ia4gRRmhFn4oJ4SJKJPDNPomsRRFWU+bqCK7yuiLW4E=",
"owner": "nix-community",
"repo": "NUR",
"rev": "963ad2d1bb0a8f59b2c23ab521d4dff2148aad16",
"rev": "24471a48600e18669d13d24c9640b9859357d2cf",
"type": "github"
},
"original": {
@ -487,11 +390,19 @@
]
},
"locked": {
<<<<<<< HEAD
"lastModified": 1723852814,
"narHash": "sha256-P0mYUxYH097oG5x0n84qABgk2tQfBLznwd1TGh5vgnk=",
"ref": "main",
"rev": "8de8ac0e086187a749c719893f3aa9c460978f9a",
"revCount": 1462,
=======
"lastModified": 1724050814,
"narHash": "sha256-THf50ZcBPY6r7/cyvE8bxYDvrctHrWbYaMx4udr4OUM=",
"ref": "main",
"rev": "7628c26fd92f684ab5c7572c63de4af8b4b3a7b4",
"revCount": 1464,
>>>>>>> d6d2aaa32916095c3e7e4aaafc1ffedea82095e8
"type": "git",
"url": "ssh://gitea@git.sealight.xyz/aynish/kitaab"
},
@ -507,11 +418,9 @@
"basant": "basant",
"deploy-rs": "deploy-rs",
"disko": "disko",
"eww": "eww",
"grasp": "grasp",
"hardware": "hardware",
"home-manager": "home-manager_2",
"llamacpp": "llamacpp",
"nix-matrix-appservices": "nix-matrix-appservices",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2",
@ -525,17 +434,16 @@
},
"rust-overlay": {
"inputs": {
"flake-utils": "flake-utils_4",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1715912155,
"narHash": "sha256-UXHk4dKvvm5mSuDDON3lXU5CHKiTRnIjA5mUtDOtKEU=",
"lastModified": 1724034091,
"narHash": "sha256-b1g7w0sw+MDAhUAeCoX1vlTghsqcDZkxr+k9OZmxPa8=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "d3a96b08a7280a5753246129b462eed3662815d5",
"rev": "c7d36e0947826e0751a5214ffe82533fbc909bc0",
"type": "github"
},
"original": {
@ -547,16 +455,15 @@
"superdirt-src": {
"flake": false,
"locked": {
"lastModified": 1611740180,
"narHash": "sha256-GtnqZeMFqFkVhgx2Exu0wY687cHa7mNnVCgjQd6fiIA=",
"lastModified": 1697377840,
"narHash": "sha256-9qU9CHYAXbN1IE3xXDqGipuroifVaSVXj3c/cDfwM80=",
"owner": "musikinformatik",
"repo": "superdirt",
"rev": "7abb62e89649daa1232b9cbd6427241868abd30e",
"rev": "c7f32998572984705d340e7c1b9ed9ad998a39b6",
"type": "github"
},
"original": {
"owner": "musikinformatik",
"ref": "master",
"repo": "superdirt",
"type": "github"
}
@ -591,34 +498,19 @@
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tidal-src": {
"flake": false,
"locked": {
"lastModified": 1654350756,
"narHash": "sha256-tONM5SYYBca0orTLH1EUOilSC1FCluWrFt8AetUx+YQ=",
"lastModified": 1712519522,
"narHash": "sha256-LbvxQmVxHElidCgvt+w0g1k+QQbNLebK46vtRCgsLeQ=",
"owner": "tidalcycles",
"repo": "tidal",
"rev": "fda9c1ecb3722698935245e5409ef8ccdfca16c8",
"rev": "88f09edf6bef2228d5f530dea872b08a9d803066",
"type": "github"
},
"original": {
"owner": "tidalcycles",
"ref": "main",
"ref": "v1.9.5",
"repo": "tidal",
"type": "github"
}
@ -631,16 +523,15 @@
],
"superdirt-src": "superdirt-src",
"tidal-src": "tidal-src",
"utils": "utils_2",
"vim-tidal-src": "vim-tidal-src",
"vowel-src": "vowel-src"
},
"locked": {
"lastModified": 1664760044,
"narHash": "sha256-e5LGk/tDnphory1mYhADgPnVtShofY2w/3xY09jEE2A=",
"lastModified": 1723223284,
"narHash": "sha256-NAT+g5nsaJZkpR0sCZjerd1xx233ZUdRH3ZWwZhzq/c=",
"owner": "mitchmindtree",
"repo": "tidalcycles.nix",
"rev": "3f3a820cd43709077d15a24fa6062de7d623a6bf",
"rev": "82f3e8e8d02eb9f0c9dfe9ab3773b825c6bc1982",
"type": "github"
},
"original": {
@ -651,11 +542,11 @@
},
"unstable": {
"locked": {
"lastModified": 1712163089,
"narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=",
"lastModified": 1723637854,
"narHash": "sha256-med8+5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "fd281bd6b7d3e32ddfa399853946f782553163b5",
"rev": "c3aa7b8938b17aebd2deecf7be0636000d62a2b9",
"type": "github"
},
"original": {
@ -667,7 +558,7 @@
},
"utils": {
"inputs": {
"systems": "systems"
"systems": "systems_2"
},
"locked": {
"lastModified": 1701680307,
@ -683,34 +574,18 @@
"type": "github"
}
},
"utils_2": {
"locked": {
"lastModified": 1653893745,
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"vim-tidal-src": {
"flake": false,
"locked": {
"lastModified": 1664252474,
"narHash": "sha256-hleiK2Q7xYndpB+tIbyyXIM2sk4NunUh9DPgMqmf/Wc=",
"lastModified": 1685703852,
"narHash": "sha256-8gyk17YLeKpLpz3LRtxiwbpsIbZka9bb63nK5/9IUoA=",
"owner": "tidalcycles",
"repo": "vim-tidal",
"rev": "b07f5c12986fb837e055d7fcf0acf3b7e248148f",
"rev": "e440fe5bdfe07f805e21e6872099685d38e8b761",
"type": "github"
},
"original": {
"owner": "tidalcycles",
"ref": "master",
"repo": "vim-tidal",
"type": "github"
}
@ -748,7 +623,6 @@
},
"original": {
"owner": "supercollider-quarks",
"ref": "master",
"repo": "vowel",
"type": "github"
}

View file

@ -3,7 +3,7 @@
inputs = {
# Nixpkgs
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
@ -11,7 +11,7 @@
# ngipkgs-local.url = "path:/home/anish/usr/ngipkgs";
# Home manager
home-manager.url = "github:nix-community/home-manager/release-23.11";
home-manager.url = "github:nix-community/home-manager/release-24.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
hardware.url = "github:nixos/nixos-hardware";
@ -43,15 +43,8 @@
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
eww = {
url = "github:elkowar/eww";
inputs.nixpkgs.follows = "nixpkgs";
inputs.rust-overlay.follows = "rust-overlay";
};
tidalcycles.url = "github:mitchmindtree/tidalcycles.nix";
tidalcycles.inputs.nixpkgs.follows = "unstable";
llamacpp.url = "github:ggerganov/llama.cpp";
llamacpp.inputs.nixpkgs.follows = "unstable";
# TODO hundred rabbits software
# TODO needs secrets
# dhyan.url = "git+ssh://gitea@git.sealight.xyz/aynish/dhyan?ref=main";
@ -76,8 +69,6 @@
, nur
, tidalcycles
, rust-overlay
, eww
, llamacpp
, vimwikicli
, ...
}@inputs:
@ -94,9 +85,6 @@
unstable = unstable.legacyPackages.${prev.system};
deploy = deploy-rs.packages.${prev.system}.deploy-rs;
};
llamaOverlay = final: prev: {
llama = llamacpp.packages.${prev.system}.default;
};
vimwikiOverlay = final: prev: {
vimwiki-cli = vimwikicli.packages.${prev.system}.vimwiki-cli;
};
@ -105,7 +93,7 @@
inherit system;
config.allowUnfreePredicate = pkg: builtins.elem (nixpkgs.lib.getName pkg) [
"ripcord"
"VCV-Rack"
"vcv-rack"
"SunVox"
"renoise"
];
@ -120,7 +108,6 @@
nur.overlay
nix-matrix-appservices.overlay
unstableOverlay
llamaOverlay
vimwikiOverlay
self.overlays.additions
self.overlays.modifications
@ -198,10 +185,13 @@
agenix.nixosModules.age
self.nixosModules.backup
self.nixosModules.wireguard
# self.nixosModules.blogg
basant.nixosModule
# self.nixosModules.microbin
disko.nixosModules.disko
{
nixpkgs.flake.setNixPath = false;
nixpkgs.flake.setFlakeRegistry = false;
}
];
};
@ -224,19 +214,6 @@
];
};
cube = nixpkgs.lib.nixosSystem rec {
specialArgs = { inherit inputs self; };
system = "x86_64-linux";
pkgs = litePkgsFor.${system};
modules = [
./hosts/cube
agenix.nixosModules.age
self.nixosModules.backup
self.nixosModules.wireguard
basant.nixosModule
];
};
box = nixpkgs.lib.nixosSystem rec {
specialArgs = { inherit inputs self; };
system = "x86_64-linux";
@ -247,6 +224,7 @@
self.nixosModules.backup
self.nixosModules.wireguard
self.nixosModules.gonic
self.nixosModules.gpodder2go
self.nixosModules.wallabag
self.nixosModules.ulogger-server
grasp.nixosModule
@ -302,13 +280,6 @@
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.helix;
};
};
cube = {
hostname = "lakhwara.com";
profiles.system = {
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.cube;
};
};
};
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib;

View file

@ -130,7 +130,7 @@
programs.zsh = {
enable = true;
enableCompletion = true;
enableAutosuggestions = false;
autosuggestion.enable = false;
initExtra = ''
bindkey -v

View file

@ -102,9 +102,6 @@ in
".local/bin/mpv-ify".source = ./bin/mpv-ify;
".local/bin/bspswallow".source = ./bin/bspswallow;
".config/bspwm/terminals".text = "Kitty";
".config/eww/eww.yuck".source = ./eww/eww.yuck;
".config/eww/eww.scss".source = ./eww/eww.scss;
".config/eww/widgets.yuck".source = ./eww/widgets.yuck;
# ".local/bin/hotplug-monitor.sh".source = ./bin/hotplug-monitor.sh;
};
@ -126,7 +123,7 @@ in
qt = {
enable = true;
platformTheme = "gtk";
platformTheme.name = "gtk";
style = { name = "qt5ct-style"; };
};

View file

@ -91,7 +91,7 @@
sound.enable = false;
programs.gnupg.agent.enable = true;
programs.gnupg.agent.pinentryFlavor = "curses";
programs.gnupg.agent.pinentryPackage = pkgs.pinentry-curses;
programs.gnupg.agent.enableSSHSupport = true;
# This value determines the NixOS release with which your system is to be

View file

@ -24,7 +24,8 @@
# ../profiles/woodpecker-agent
# ../profiles/jellyfin
../profiles/ulogger-server
../profiles/photoprism
../profiles/photoprism # Replace with immich
../profiles/gpodder
#../profiles/postgres_upgrade_script
];

View file

@ -36,5 +36,5 @@
sound.enable = true;
services.xserver.libinput.enable = true;
services.libinput.enable = true;
}

View file

@ -33,7 +33,7 @@
};
programs.gnupg.agent.enable = true;
programs.gnupg.agent.pinentryFlavor = "gnome3";
programs.gnupg.agent.pinentryPackage = pkgs.pinentry-gnome3;
fileSystems."/mnt/ftp" = {
device = "192.168.1.240:/home/ftp";

View file

@ -1,18 +0,0 @@
{pkgs, ... }:
{
services.nginx = {
enable = true;
recommendedGzipSettings = true;
recommendedOptimisation = true;
recommendedProxySettings = true;
recommendedTlsSettings = true;
};
# Enables MySQL
services.mysql = {
enable = true;
package = pkgs.mariadb;
};
services."write.sealight.xyz".enable = true;
}

View file

@ -32,7 +32,7 @@ in
};
environment.systemPackages = with pkgs; [
pinentry-gnome
pinentry-gnome3
cached-nix-shell
];

View file

@ -77,7 +77,6 @@ in
feh
sxiv
xkblayout-state
vcv-rack
zathura
calibre
mpv
@ -87,7 +86,6 @@ in
rofi
rofimoji
rofi-calc
# eww
obs-studio
lightdm
dunst
@ -121,15 +119,15 @@ in
night = 3700;
};
};
displayManager.defaultSession = "none+bspwm";
xserver = {
enable = true;
# TODO should be xkb.layout
layout = "us";
xkb.layout = "us";
# xkb.variant = "dvorak";
desktopManager.wallpaper.mode = "fill";
displayManager = {
# startx.enable = true;
defaultSession = "none+bspwm";
sessionCommands = ''
${pkgs.xorg.xrdb}/bin/xrdb -merge <<EOF
#define blk #1F2430

View file

@ -39,6 +39,7 @@ let
"tracks.mossnet.lan"
"grasp.mossnet.lan"
"photos.mossnet.lan"
"pod.mossnet.lan"
];
in

View file

@ -4,7 +4,7 @@
services.paperless = {
enable = false;
consumptionDirIsPublic = true;
extraConfig.PAPERLESS_AUTO_LOGIN_USERNAME = "admin";
settings.PAPERLESS_AUTO_LOGIN_USERNAME = "admin";
};
environment.systemPackages = [

View file

@ -1,18 +0,0 @@
{pkgs, ... }:
{
services.nginx = {
enable = true;
recommendedGzipSettings = true;
recommendedOptimisation = true;
recommendedProxySettings = true;
recommendedTlsSettings = true;
};
# Enables MySQL
services.mysql = {
enable = true;
package = pkgs.mariadb;
};
services."write.sealight.xyz".enable = true;
}

View file

@ -4,15 +4,14 @@
age.secrets.gitea-dbpass.file = "${self}/secrets/gitea-dbpass.age";
age.secrets.gitea-dbpass.owner = "gitea";
services.gitea = {
services.forgejo = {
enable = true;
package = pkgs.forgejo;
appName = "Sealight Git Forge";
database = {
type = "postgres";
passwordFile = "/run/agenix/gitea-dbpass";
};
settings = {
DEFAULT.APP_NAME = "Sealight Git Forge";
server = {
DOMAIN = "git.sealight.xyz";
ROOT_URL = "https://git.sealight.xyz";
@ -24,6 +23,7 @@
repository = {
DEFAULT_BRANCH = "main";
};
service.DISABLE_REGISTRATION = true;
"markup.restructuredtext" = {
ENABLED = true;
FILE_EXTENSIONS = ".rst";

View file

@ -5,16 +5,17 @@
music-path /mnt/two/music/
podcast-path /data/podcasts
cache-path /data/cache
playlists-path /data/playlists
'';
mossnet.gonic.user = "headphones";
mossnet.gonic.user = "gonic";
mossnet.gonic.group = "audio";
networking.firewall.allowedTCPPorts = [ 4747 ];
users.users.gonic = {
uid = config.ids.uids.headphones;
# uid = config.ids.uids.headphones;
# isSystemUser = true;
group = "audio";
home = "/var/lib/headphones";
# home = "/var/lib/headphones";
createHome = true;
};
}

View file

@ -68,14 +68,10 @@ in
Group = cfg.group;
DevicePolicy = "closed";
NoNewPrivileges = " yes";
PrivateTmp = "yes";
PrivateUsers = "yes";
ProtectControlGroups = "yes";
ProtectKernelModules = "yes";
ProtectKernelTunables = "yes";
RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6";
RestrictNamespaces = "yes";
RestrictRealtime = "yes";
SystemCallFilter = "~@clock @debug @module @mount @obsolete @privileged @reboot @setuid @swap";
ReadWritePaths = dataFolder;
StateDirectory = baseNameOf dataFolder;

View file

@ -0,0 +1,16 @@
{
services.gpodder.enable = true;
networking.firewall.allowedTCPPorts = [ 3005 ];
services.nginx.virtualHosts."pod.mossnet.lan" = {
extraConfig = "client_max_body_size 20M;";
locations."/" = {
extraConfig = ''
proxy_pass http://localhost:3005/;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
'';
};
};
}

View file

@ -18,6 +18,7 @@
192.168.1.240 tracks.mossnet.lan
192.168.1.240 grasp.mossnet.lan
192.168.1.240 photos.mossnet.lan
192.168.1.240 pod.mossnet.lan
'';
# 10.0.69.4 mossnet.lan
# 10.0.69.4 links.mossnet.lan

View file

@ -3,7 +3,7 @@
services.rss-bridge = {
enable = true;
virtualHost = "bridge.sealight.xyz";
whitelist = [ "Facebook" "Bandcamp" "Twitter" "Telegram" "Instagram" "Reddit" ];
config.system.enabled_bridges = [ "Facebook" "Bandcamp" "Twitter" "Telegram" "Instagram" "Reddit" ];
};
services.nginx.virtualHosts."bridge.sealight.xyz".forceSSL = true;

View file

@ -6,7 +6,7 @@
path = [
pkgs.git
pkgs.coreutils
pkgs.nixUnstable
pkgs.nixVersions.latest
pkgs.openssh
pkgs.deploy
];

View file

@ -36,11 +36,16 @@
publicKey = "gcdq86hhEUlqF2chqYB/F8pALyAMNFvwLycxBoHuoDs=";
allowedIPs = [ "10.0.69.5/32" ];
}
# {
# # hyperplane
# publicKey = "";
# allowedIPs = [ "10.0.69.6/32" ];
# }
{
# hyperplane
publicKey = "v+EUuM60yZLvBmdCG9GxfFAtSjS1VvbUWcyNb8emjDg=";
allowedIPs = [ "10.0.69.6/32" ];
}
{
# work
publicKey = "/gv66s8DfppCCjaEN/jlc8z95IhEWPgDumykqKEl0QU=";
allowedIPs = [ "10.0.69.7/32" ];
}
];
};
}

View file

@ -147,7 +147,7 @@ cat > /mnt/etc/nixos/configuration.nix <<'endmsg'
sound.enable = true;
hardware.pulseaudio.enable = true;
services.xserver.libinput.enable = true;
services.libinput.enable = true;
# Hmmm maybe somewhere else?
users.users.anish = {

View file

@ -1,148 +0,0 @@
{ options, lib, config, pkgs, ... }:
let
# domain for the Ghost blog
serverName = "write.sealight.xyz";
# port on which the Ghost service runs
port = 1357;
# user used to run the Ghost service
userName = builtins.replaceStrings [ "." ] [ "_" ] serverName;
# MySQL database used by Ghost
dbName = userName;
# MySQL user used by Ghost
dbUser = userName;
# directory used to save the blog content
dataDir = "/var/lib/${userName}";
# Ghost package we created in the section above
ghost = import ./ghost { inherit pkgs; };
# script that sets up the Ghost content directory
setupScript = pkgs.writeScript "${serverName}-setup.sh" ''
#! ${pkgs.stdenv.shell} -e
chmod g+s "${dataDir}"
[[ ! -d "${dataDir}/content" ]] && cp -r "${ghost}/content" "${dataDir}/content"
chown -R "${userName}":"${userName}" "${dataDir}/content"
chmod -R +w "${dataDir}/content"
ln -f -s "/etc/${serverName}.json" "${dataDir}/config.production.json"
[[ -d "${dataDir}/current" ]] && rm "${dataDir}/current"
ln -f -s "${ghost}/current" "${dataDir}/current"
[[ -d "${dataDir}/content/themes/casper" ]] && rm "${dataDir}/content/themes/casper"
ln -f -s "${ghost}/current/content/themes/casper" "${dataDir}/content/themes/casper"
'';
databaseService = "mysql.service";
serviceConfig = config.services."${serverName}";
options = { enable = lib.mkEnableOption "${serverName} service"; };
in {
options.services.${serverName} = options;
config = lib.mkIf serviceConfig.enable {
# Creates the user and group
users.users.${userName} = {
isSystemUser = true;
group = userName;
createHome = true;
home = dataDir;
};
users.groups.${userName} = { };
# Creates the Ghost config
environment.etc."${serverName}.json".text = ''
{
"url": "https://${serverName}",
"server": {
"port": ${port},
"host": "0.0.0.0"
},
"database": {
"client": "mysql",
"connection": {
"host": "localhost",
"user": "${dbUser}",
"database": "${dbName}",
"password": "",
"socketPath": "/run/mysqld/mysqld.sock"
}
},
"mail": {
"transport": "sendmail"
},
"logging": {
"transports": ["stdout"]
},
"paths": {
"contentPath": "${dataDir}/content"
}
}
'';
# Sets up the Systemd service
systemd.services."${serverName}" = {
enable = true;
description = "${serverName} ghost blog";
restartIfChanged = true;
restartTriggers =
[ ghost config.environment.etc."${serverName}.json".source ];
requires = [ databaseService ];
after = [ databaseService ];
path = [ pkgs.nodejs pkgs.vips ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = userName;
Group = userName;
WorkingDirectory = dataDir;
# Executes the setup script before start
ExecStartPre = setupScript;
# Runs Ghost with node
ExecStart = "${pkgs.nodejs}/bin/node current/index.js";
# Sandboxes the Systemd service
AmbientCapabilities = [ ];
CapabilityBoundingSet = [ ];
KeyringMode = "private";
LockPersonality = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateMounts = true;
PrivateTmp = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectSystem = "full";
RemoveIPC = true;
RestrictAddressFamilies = [ ];
RestrictNamespaces = true;
RestrictRealtime = true;
};
environment = { NODE_ENV = "production"; };
};
# Sets up the blog virtual host on NGINX
services.nginx.virtualHosts.${serverName} = {
# Sets up Lets Encrypt SSL certificates for the blog
forceSSL = true;
enableACME = true;
locations."/" = { proxyPass = "http://127.0.0.1:${toString port}"; };
extraConfig = ''
charset UTF-8;
add_header Strict-Transport-Security "max-age=2592000; includeSubDomains" always;
add_header Referrer-Policy "strict-origin-when-cross-origin";
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options nosniff;
'';
};
# Sets up MySQL database and user for Ghost
services.mysql = {
ensureDatabases = [ dbName ];
ensureUsers = [{
name = dbUser;
ensurePermissions = { "${dbName}.*" = "ALL PRIVILEGES"; };
}];
};
};
}

View file

@ -9,6 +9,6 @@
wireguard = import ./wireguard.nix;
backup = import ./backup.nix;
ulogger-server = import ./ulogger.nix;
blogg = import ./blogging.nix;
gpodder2go = import ./gpodder2go.nix;
# microbin = import ./microbin.nix; # includide in 23.11
}

View file

@ -1,148 +0,0 @@
{ options, lib, config, pkgs, ... }:
let
# domain for the Ghost blog
serverName = "write.sealight.xyz";
# port on which the Ghost service runs
port = 1357;
# user used to run the Ghost service
userName = builtins.replaceStrings [ "." ] [ "_" ] serverName;
# MySQL database used by Ghost
dbName = userName;
# MySQL user used by Ghost
dbUser = userName;
# directory used to save the blog content
dataDir = "/var/lib/${userName}";
# Ghost package we created in the section above
ghost = import ./ghost { inherit pkgs; };
# script that sets up the Ghost content directory
setupScript = pkgs.writeScript "${serverName}-setup.sh" ''
#! ${pkgs.stdenv.shell} -e
chmod g+s "${dataDir}"
[[ ! -d "${dataDir}/content" ]] && cp -r "${ghost}/content" "${dataDir}/content"
chown -R "${userName}":"${userName}" "${dataDir}/content"
chmod -R +w "${dataDir}/content"
ln -f -s "/etc/${serverName}.json" "${dataDir}/config.production.json"
[[ -d "${dataDir}/current" ]] && rm "${dataDir}/current"
ln -f -s "${ghost}/current" "${dataDir}/current"
[[ -d "${dataDir}/content/themes/casper" ]] && rm "${dataDir}/content/themes/casper"
ln -f -s "${ghost}/current/content/themes/casper" "${dataDir}/content/themes/casper"
'';
databaseService = "mysql.service";
serviceConfig = config.services."${serverName}";
options = { enable = lib.mkEnableOption "${serverName} service"; };
in {
options.services.${serverName} = options;
config = lib.mkIf serviceConfig.enable {
# Creates the user and group
users.users.${userName} = {
isSystemUser = true;
group = userName;
createHome = true;
home = dataDir;
};
users.groups.${userName} = { };
# Creates the Ghost config
environment.etc."${serverName}.json".text = ''
{
"url": "https://${serverName}",
"server": {
"port": ${port},
"host": "0.0.0.0"
},
"database": {
"client": "mysql",
"connection": {
"host": "localhost",
"user": "${dbUser}",
"database": "${dbName}",
"password": "",
"socketPath": "/run/mysqld/mysqld.sock"
}
},
"mail": {
"transport": "sendmail"
},
"logging": {
"transports": ["stdout"]
},
"paths": {
"contentPath": "${dataDir}/content"
}
}
'';
# Sets up the Systemd service
systemd.services."${serverName}" = {
enable = true;
description = "${serverName} ghost blog";
restartIfChanged = true;
restartTriggers =
[ ghost config.environment.etc."${serverName}.json".source ];
requires = [ databaseService ];
after = [ databaseService ];
path = [ pkgs.nodejs pkgs.vips ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = userName;
Group = userName;
WorkingDirectory = dataDir;
# Executes the setup script before start
ExecStartPre = setupScript;
# Runs Ghost with node
ExecStart = "${pkgs.nodejs}/bin/node current/index.js";
# Sandboxes the Systemd service
AmbientCapabilities = [ ];
CapabilityBoundingSet = [ ];
KeyringMode = "private";
LockPersonality = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateMounts = true;
PrivateTmp = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectSystem = "full";
RemoveIPC = true;
RestrictAddressFamilies = [ ];
RestrictNamespaces = true;
RestrictRealtime = true;
};
environment = { NODE_ENV = "production"; };
};
# Sets up the blog virtual host on NGINX
services.nginx.virtualHosts.${serverName} = {
# Sets up Lets Encrypt SSL certificates for the blog
forceSSL = true;
enableACME = true;
locations."/" = { proxyPass = "http://127.0.0.1:${toString port}"; };
extraConfig = ''
charset UTF-8;
add_header Strict-Transport-Security "max-age=2592000; includeSubDomains" always;
add_header Referrer-Policy "strict-origin-when-cross-origin";
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options nosniff;
'';
};
# Sets up MySQL database and user for Ghost
services.mysql = {
ensureDatabases = [ dbName ];
ensureUsers = [{
name = dbUser;
ensurePermissions = { "${dbName}.*" = "ALL PRIVILEGES"; };
}];
};
};
}

View file

@ -0,0 +1,120 @@
{ self, config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.gpodder;
in
{
options = {
services.gpodder = {
enable = mkEnableOption "A gpodder instance";
user = mkOption {
type = types.str;
default = "gpodder";
description = "User account under which gpodder runs.";
};
group = mkOption {
type = types.str;
default = "gpodder";
description = "Group account under which gpodder runs.";
};
hostname = mkOption {
type = types.str;
description = "Hostname of your gpodder service";
};
dataFolder = mkOption {
type = types.str;
default = "/var/lib/gpodder";
description = "State director";
};
VERIFIER_SECRET_KEY = mkOption {
type = types.str;
default = "satnheiycglsrcgaecrlufg";
description = "Verifer Secret";
};
};
};
config = mkIf cfg.enable {
systemd.services.gpodder = {
description = "gpodder2go A gpodder instance";
after = [ "remote-fs.target" "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${pkgs.gpodder2go}/bin/gpodder2go serve";
Environment = [
"VERIFIER_SECRET_KEY=${cfg.VERIFIER_SECRET_KEY}"
];
WorkingDirectory = cfg.dataFolder;
TimeoutStopSec = " 20 ";
KillMode = " process ";
RestartSec = " 10 ";
User = cfg.user;
Group = cfg.group;
DevicePolicy = " closed ";
NoNewPrivileges = " yes ";
PrivateTmp = " yes ";
PrivateUsers = " yes ";
ProtectControlGroups = " yes ";
ProtectKernelModules = " yes ";
ProtectKernelTunables = " yes ";
RestrictAddressFamilies = "
AF_UNIX
AF_INET
AF_INET6 ";
RestrictNamespaces = " yes ";
RestrictRealtime = " yes ";
SystemCallFilter = "~@clock @debug @module @mount @obsolete @privileged @reboot @setuid @swap";
ReadWritePaths = cfg.dataFolder;
StateDirectory = baseNameOf cfg.dataFolder;
};
};
users.users = optionalAttrs (cfg.user == "gpodder") ({
gpodder = {
description = "gpodder service user";
name = cfg.user;
group = cfg.group;
isSystemUser = true;
};
});
users.groups = optionalAttrs (cfg.group == "gpodder") ({
gpodder = { };
});
# systemd.services.gpodder-install = {
# description = "gpodder install service";
# wantedBy = [ "multi-user.target" ];
# before = [ "gpodder.service" ];
# path = with pkgs; [ gpodder2go ];
# serviceConfig = {
# User = cfg.user;
# Type = "oneshot";
# CacheDirectory = "gpodder";
# # Stores sessions.
# CacheDirectoryMode = "700";
# ConfigurationDirectory = "gpodder";
# LogsDirectory = "gpodder";
# StateDirectory = "gpodder";
# };
# script = ''
# if [ ! -f "${cfg.dataFolder}/installed" ]; then
# ${pkgs.gpodder2go}/bin/gpodder2go init
# touch "${cfg.dataFolder}/installed"
# fi
# '';
# };
};
}

View file

@ -5,7 +5,7 @@
plymouth-themes = pkgs.callPackage ./plymouth.nix { };
tic-80 = pkgs.callPackage ./tic-80.nix { };
fennel-ls = pkgs.callPackage ./fennel-ls.nix { };
kobopatch = pkgs.callPackage ./kobopatch.nix { };
# kobopatch = pkgs.callPackage ./kobopatch.nix { };
my-mautrix-discord = pkgs.callPackage ./mautrix-discord.nix { }; # Handled by matrix-appservices input
ulogger-server = pkgs.callPackage ./ulogger.nix { };
# Wallabag is now an overlay
@ -13,5 +13,4 @@
my-wallabag = pkgs.callPackage ./wallabag.nix { };
mautrix-slack = pkgs.callPackage ./mautrix-slack.nix { };
gpodder2go = pkgs.callPackage ./gpodder2go.nix { };
ghost = pkgs.callPackage ./ghost { };
}

View file

@ -1,9 +0,0 @@
source "$stdenv"/setup
export HOME=$(mktemp -d)
npm install --loglevel=info --logs-max=0 "ghost-cli@$ghostCliVersion"
mkdir --parents "$out"/
node_modules/ghost-cli/bin/ghost install "$version" --db=sqlite3 \
--no-enable --no-prompt --no-stack --no-setup --no-start --dir "$out"

View file

@ -1,11 +0,0 @@
{ pkgs }:
let
pname = "ghost";
version = "5.8.0";
in pkgs.stdenv.mkDerivation {
inherit pname version;
buildInputs = with pkgs; [ nodejs yarn vips ];
ghostCliVersion = "1.21.1";
builder = ./builder.sh;
}

View file

@ -1,16 +1,16 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
buildGoModule {
name = "kobopatch";
version = "0.15.0";
vendorSha256 = "1i6srhyig4x8mywyc2l8wzzm1afvb7wxmjsr84c447sb1xss6p7x";
vendorHash = "sha256-1i6srhyig4x8mywyc2l8wzzm1afvb7wxmjsr84c447sb1xss6p7x";
src = fetchFromGitHub {
owner = "geek1011";
repo = "kobopatch";
rev = "653070c67c83ec61884854efc4f8a3132d82a2e5";
sha256 = "09hr3zh0w0f78cx40d2yydqv0mmjdh4iwdgia7sikraphvha85nn";
hash = "sha256-09hr3zh0w0f78cx40d2yydqv0mmjdh4iwdgia7sikraphvha85nn";
};
meta = with lib; {