Compare commits
6 commits
d6d2aaa329
...
50ac68b6df
Author | SHA1 | Date | |
---|---|---|---|
50ac68b6df | |||
676ed31aad | |||
afb1c0efb4 | |||
fb9d892015 | |||
e92a34b76a | |||
92e293d863 |
258
flake.lock
258
flake.lock
|
@ -6,14 +6,15 @@
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
],
|
||||||
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1690228878,
|
"lastModified": 1723293904,
|
||||||
"narHash": "sha256-9Xe7JV0krp4RJC9W9W9WutZVlw6BlHTFMiUP/k48LQY=",
|
"narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=",
|
||||||
"owner": "ryantm",
|
"owner": "ryantm",
|
||||||
"repo": "agenix",
|
"repo": "agenix",
|
||||||
"rev": "d8c973fd228949736dedf61b7f8cc1ece3236792",
|
"rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -55,11 +56,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1673295039,
|
"lastModified": 1700795494,
|
||||||
"narHash": "sha256-AsdYgE8/GPwcelGgrntlijMg4t3hLFJFCRF3tL5WVjA=",
|
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "87b9d090ad39b25b2400029c64825fc2a8868943",
|
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -78,11 +79,11 @@
|
||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1704875591,
|
"lastModified": 1718194053,
|
||||||
"narHash": "sha256-eWRLbqRcrILgztU/m/k7CYLzETKNbv0OsT2GjkaNm8A=",
|
"narHash": "sha256-FaGrf7qwZ99ehPJCAwgvNY5sLCqQ3GDiE/6uLhxxwSY=",
|
||||||
"owner": "serokell",
|
"owner": "serokell",
|
||||||
"repo": "deploy-rs",
|
"repo": "deploy-rs",
|
||||||
"rev": "1776009f1f3fb2b5d236b84d9815f2edee463a9b",
|
"rev": "3867348fa92bc892eba5d9ddb2d7a97b9e127a8a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -109,16 +110,15 @@
|
||||||
"dirt-samples-src": {
|
"dirt-samples-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1588278411,
|
"lastModified": 1698439458,
|
||||||
"narHash": "sha256-h8vQxRym6QzNLOTZU7A43VCHuG0H77l+BFwXnC0L1CE=",
|
"narHash": "sha256-Mp8qBpsOvW9Zguv95Kv7EU6S3ICaF2aO02Wz6xGURtE=",
|
||||||
"owner": "tidalcycles",
|
"owner": "tidalcycles",
|
||||||
"repo": "dirt-samples",
|
"repo": "dirt-samples",
|
||||||
"rev": "66d432418c9a7d82cf049d9246adfa62f46df2a6",
|
"rev": "9a6dff8f9ec3cd55b287290cf04e01afa6b8f532",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "tidalcycles",
|
"owner": "tidalcycles",
|
||||||
"ref": "master",
|
|
||||||
"repo": "dirt-samples",
|
"repo": "dirt-samples",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -130,11 +130,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1690739034,
|
"lastModified": 1724031427,
|
||||||
"narHash": "sha256-roW02IaiQ3gnEEDMCDWL5YyN+C4nBf/te6vfL7rG0jk=",
|
"narHash": "sha256-o1HdAf+7IGv9M13R3c+zc/sJ0QgeEnhsvHBcodI4UpM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "4015740375676402a2ee6adebc3c30ea625b9a94",
|
"rev": "4e719b38fa7c85f4f65d0308ca7084c91e7bdd6d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -143,30 +143,6 @@
|
||||||
"type": "github"
|
"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-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -184,22 +160,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_2": {
|
"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,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1641205782,
|
"lastModified": 1641205782,
|
||||||
|
@ -245,42 +205,6 @@
|
||||||
"type": "github"
|
"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": {
|
"grasp": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_2",
|
||||||
|
@ -305,11 +229,11 @@
|
||||||
},
|
},
|
||||||
"hardware": {
|
"hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1691179816,
|
"lastModified": 1723310128,
|
||||||
"narHash": "sha256-WSMwqzU70ZMRHv1CUAfHEEKJuB0c9c9r0F+lJehXfSI=",
|
"narHash": "sha256-IiH8jG6PpR4h9TxSGMYh+2/gQiJW9MwehFvheSb5rPc=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "87e3122b67587492a617764f88c71991893fcf8a",
|
"rev": "c54cf53e022b0b3c1d3b8207aa0f9b194c24f0cf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -326,11 +250,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1682203081,
|
"lastModified": 1703113217,
|
||||||
"narHash": "sha256-kRL4ejWDhi0zph/FpebFYhzqlOBrk0Pl3dzGEKSAlEw=",
|
"narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "32d3e39c491e2f91152c84f8ad8b003420eab0a1",
|
"rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -346,45 +270,24 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1704099619,
|
"lastModified": 1720042825,
|
||||||
"narHash": "sha256-QRVMkdxLmv+aKGjcgeEg31xtJEIsYq4i1Kbyw5EPS6g=",
|
"narHash": "sha256-A0vrUB6x82/jvf17qPCpxaM+ulJnD8YZwH9Ci0BsAzE=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "7e398b3d76bc1503171b1364c9d4a07ac06f3851",
|
"rev": "e1391fb22e18a36f57e6999c7a9f966dc80ac073",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-23.11",
|
"ref": "release-24.05",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"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": {
|
"nix-matrix-appservices": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"devshell": "devshell",
|
"devshell": "devshell",
|
||||||
"flake-compat": "flake-compat_3",
|
"flake-compat": "flake-compat_2",
|
||||||
"nixlib": "nixlib",
|
"nixlib": "nixlib",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
|
@ -419,11 +322,11 @@
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1691179816,
|
"lastModified": 1723310128,
|
||||||
"narHash": "sha256-WSMwqzU70ZMRHv1CUAfHEEKJuB0c9c9r0F+lJehXfSI=",
|
"narHash": "sha256-IiH8jG6PpR4h9TxSGMYh+2/gQiJW9MwehFvheSb5rPc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "87e3122b67587492a617764f88c71991893fcf8a",
|
"rev": "c54cf53e022b0b3c1d3b8207aa0f9b194c24f0cf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -451,27 +354,27 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710420202,
|
"lastModified": 1723938990,
|
||||||
"narHash": "sha256-MvFKESbq4rUWuaf2RKPNYENaSZEw/jaCLo2gU6oREcM=",
|
"narHash": "sha256-9tUadhnZQbWIiYVXH8ncfGXGvkNq3Hag4RCBEMUk7MI=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "878ef7d9721bee9f81f8a80819f9211ad1f993da",
|
"rev": "c42fcfbdfeae23e68fc520f9182dde9f38ad1890",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-23.11",
|
"ref": "nixos-24.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1691214006,
|
"lastModified": 1724040334,
|
||||||
"narHash": "sha256-kdfBd+Y0DTOOdgSA6h6iIn403xVj4bzLnXqb7+yM6lQ=",
|
"narHash": "sha256-Ia4gRRmhFn4oJ4SJKJPDNPomsRRFWU+bqCK7yuiLW4E=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "963ad2d1bb0a8f59b2c23ab521d4dff2148aad16",
|
"rev": "24471a48600e18669d13d24c9640b9859357d2cf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -487,11 +390,19 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
<<<<<<< HEAD
|
||||||
|
"lastModified": 1723852814,
|
||||||
|
"narHash": "sha256-P0mYUxYH097oG5x0n84qABgk2tQfBLznwd1TGh5vgnk=",
|
||||||
|
"ref": "main",
|
||||||
|
"rev": "8de8ac0e086187a749c719893f3aa9c460978f9a",
|
||||||
|
"revCount": 1462,
|
||||||
|
=======
|
||||||
"lastModified": 1724050814,
|
"lastModified": 1724050814,
|
||||||
"narHash": "sha256-THf50ZcBPY6r7/cyvE8bxYDvrctHrWbYaMx4udr4OUM=",
|
"narHash": "sha256-THf50ZcBPY6r7/cyvE8bxYDvrctHrWbYaMx4udr4OUM=",
|
||||||
"ref": "main",
|
"ref": "main",
|
||||||
"rev": "7628c26fd92f684ab5c7572c63de4af8b4b3a7b4",
|
"rev": "7628c26fd92f684ab5c7572c63de4af8b4b3a7b4",
|
||||||
"revCount": 1464,
|
"revCount": 1464,
|
||||||
|
>>>>>>> d6d2aaa32916095c3e7e4aaafc1ffedea82095e8
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "ssh://gitea@git.sealight.xyz/aynish/kitaab"
|
"url": "ssh://gitea@git.sealight.xyz/aynish/kitaab"
|
||||||
},
|
},
|
||||||
|
@ -507,11 +418,9 @@
|
||||||
"basant": "basant",
|
"basant": "basant",
|
||||||
"deploy-rs": "deploy-rs",
|
"deploy-rs": "deploy-rs",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"eww": "eww",
|
|
||||||
"grasp": "grasp",
|
"grasp": "grasp",
|
||||||
"hardware": "hardware",
|
"hardware": "hardware",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
"llamacpp": "llamacpp",
|
|
||||||
"nix-matrix-appservices": "nix-matrix-appservices",
|
"nix-matrix-appservices": "nix-matrix-appservices",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
@ -525,17 +434,16 @@
|
||||||
},
|
},
|
||||||
"rust-overlay": {
|
"rust-overlay": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_4",
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1715912155,
|
"lastModified": 1724034091,
|
||||||
"narHash": "sha256-UXHk4dKvvm5mSuDDON3lXU5CHKiTRnIjA5mUtDOtKEU=",
|
"narHash": "sha256-b1g7w0sw+MDAhUAeCoX1vlTghsqcDZkxr+k9OZmxPa8=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "d3a96b08a7280a5753246129b462eed3662815d5",
|
"rev": "c7d36e0947826e0751a5214ffe82533fbc909bc0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -547,16 +455,15 @@
|
||||||
"superdirt-src": {
|
"superdirt-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1611740180,
|
"lastModified": 1697377840,
|
||||||
"narHash": "sha256-GtnqZeMFqFkVhgx2Exu0wY687cHa7mNnVCgjQd6fiIA=",
|
"narHash": "sha256-9qU9CHYAXbN1IE3xXDqGipuroifVaSVXj3c/cDfwM80=",
|
||||||
"owner": "musikinformatik",
|
"owner": "musikinformatik",
|
||||||
"repo": "superdirt",
|
"repo": "superdirt",
|
||||||
"rev": "7abb62e89649daa1232b9cbd6427241868abd30e",
|
"rev": "c7f32998572984705d340e7c1b9ed9ad998a39b6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "musikinformatik",
|
"owner": "musikinformatik",
|
||||||
"ref": "master",
|
|
||||||
"repo": "superdirt",
|
"repo": "superdirt",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -591,34 +498,19 @@
|
||||||
"type": "github"
|
"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": {
|
"tidal-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1654350756,
|
"lastModified": 1712519522,
|
||||||
"narHash": "sha256-tONM5SYYBca0orTLH1EUOilSC1FCluWrFt8AetUx+YQ=",
|
"narHash": "sha256-LbvxQmVxHElidCgvt+w0g1k+QQbNLebK46vtRCgsLeQ=",
|
||||||
"owner": "tidalcycles",
|
"owner": "tidalcycles",
|
||||||
"repo": "tidal",
|
"repo": "tidal",
|
||||||
"rev": "fda9c1ecb3722698935245e5409ef8ccdfca16c8",
|
"rev": "88f09edf6bef2228d5f530dea872b08a9d803066",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "tidalcycles",
|
"owner": "tidalcycles",
|
||||||
"ref": "main",
|
"ref": "v1.9.5",
|
||||||
"repo": "tidal",
|
"repo": "tidal",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -631,16 +523,15 @@
|
||||||
],
|
],
|
||||||
"superdirt-src": "superdirt-src",
|
"superdirt-src": "superdirt-src",
|
||||||
"tidal-src": "tidal-src",
|
"tidal-src": "tidal-src",
|
||||||
"utils": "utils_2",
|
|
||||||
"vim-tidal-src": "vim-tidal-src",
|
"vim-tidal-src": "vim-tidal-src",
|
||||||
"vowel-src": "vowel-src"
|
"vowel-src": "vowel-src"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1664760044,
|
"lastModified": 1723223284,
|
||||||
"narHash": "sha256-e5LGk/tDnphory1mYhADgPnVtShofY2w/3xY09jEE2A=",
|
"narHash": "sha256-NAT+g5nsaJZkpR0sCZjerd1xx233ZUdRH3ZWwZhzq/c=",
|
||||||
"owner": "mitchmindtree",
|
"owner": "mitchmindtree",
|
||||||
"repo": "tidalcycles.nix",
|
"repo": "tidalcycles.nix",
|
||||||
"rev": "3f3a820cd43709077d15a24fa6062de7d623a6bf",
|
"rev": "82f3e8e8d02eb9f0c9dfe9ab3773b825c6bc1982",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -651,11 +542,11 @@
|
||||||
},
|
},
|
||||||
"unstable": {
|
"unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1712163089,
|
"lastModified": 1723637854,
|
||||||
"narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=",
|
"narHash": "sha256-med8+5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "fd281bd6b7d3e32ddfa399853946f782553163b5",
|
"rev": "c3aa7b8938b17aebd2deecf7be0636000d62a2b9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -667,7 +558,7 @@
|
||||||
},
|
},
|
||||||
"utils": {
|
"utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1701680307,
|
"lastModified": 1701680307,
|
||||||
|
@ -683,34 +574,18 @@
|
||||||
"type": "github"
|
"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": {
|
"vim-tidal-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1664252474,
|
"lastModified": 1685703852,
|
||||||
"narHash": "sha256-hleiK2Q7xYndpB+tIbyyXIM2sk4NunUh9DPgMqmf/Wc=",
|
"narHash": "sha256-8gyk17YLeKpLpz3LRtxiwbpsIbZka9bb63nK5/9IUoA=",
|
||||||
"owner": "tidalcycles",
|
"owner": "tidalcycles",
|
||||||
"repo": "vim-tidal",
|
"repo": "vim-tidal",
|
||||||
"rev": "b07f5c12986fb837e055d7fcf0acf3b7e248148f",
|
"rev": "e440fe5bdfe07f805e21e6872099685d38e8b761",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "tidalcycles",
|
"owner": "tidalcycles",
|
||||||
"ref": "master",
|
|
||||||
"repo": "vim-tidal",
|
"repo": "vim-tidal",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -748,7 +623,6 @@
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "supercollider-quarks",
|
"owner": "supercollider-quarks",
|
||||||
"ref": "master",
|
|
||||||
"repo": "vowel",
|
"repo": "vowel",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
|
45
flake.nix
45
flake.nix
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
# Nixpkgs
|
# Nixpkgs
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||||
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
# ngipkgs-local.url = "path:/home/anish/usr/ngipkgs";
|
# ngipkgs-local.url = "path:/home/anish/usr/ngipkgs";
|
||||||
|
|
||||||
# Home manager
|
# 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";
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
hardware.url = "github:nixos/nixos-hardware";
|
hardware.url = "github:nixos/nixos-hardware";
|
||||||
|
|
||||||
|
@ -43,15 +43,8 @@
|
||||||
url = "github:oxalica/rust-overlay";
|
url = "github:oxalica/rust-overlay";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
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.url = "github:mitchmindtree/tidalcycles.nix";
|
||||||
tidalcycles.inputs.nixpkgs.follows = "unstable";
|
tidalcycles.inputs.nixpkgs.follows = "unstable";
|
||||||
llamacpp.url = "github:ggerganov/llama.cpp";
|
|
||||||
llamacpp.inputs.nixpkgs.follows = "unstable";
|
|
||||||
# TODO hundred rabbits software
|
# TODO hundred rabbits software
|
||||||
# TODO needs secrets
|
# TODO needs secrets
|
||||||
# dhyan.url = "git+ssh://gitea@git.sealight.xyz/aynish/dhyan?ref=main";
|
# dhyan.url = "git+ssh://gitea@git.sealight.xyz/aynish/dhyan?ref=main";
|
||||||
|
@ -76,8 +69,6 @@
|
||||||
, nur
|
, nur
|
||||||
, tidalcycles
|
, tidalcycles
|
||||||
, rust-overlay
|
, rust-overlay
|
||||||
, eww
|
|
||||||
, llamacpp
|
|
||||||
, vimwikicli
|
, vimwikicli
|
||||||
, ...
|
, ...
|
||||||
}@inputs:
|
}@inputs:
|
||||||
|
@ -94,9 +85,6 @@
|
||||||
unstable = unstable.legacyPackages.${prev.system};
|
unstable = unstable.legacyPackages.${prev.system};
|
||||||
deploy = deploy-rs.packages.${prev.system}.deploy-rs;
|
deploy = deploy-rs.packages.${prev.system}.deploy-rs;
|
||||||
};
|
};
|
||||||
llamaOverlay = final: prev: {
|
|
||||||
llama = llamacpp.packages.${prev.system}.default;
|
|
||||||
};
|
|
||||||
vimwikiOverlay = final: prev: {
|
vimwikiOverlay = final: prev: {
|
||||||
vimwiki-cli = vimwikicli.packages.${prev.system}.vimwiki-cli;
|
vimwiki-cli = vimwikicli.packages.${prev.system}.vimwiki-cli;
|
||||||
};
|
};
|
||||||
|
@ -105,7 +93,7 @@
|
||||||
inherit system;
|
inherit system;
|
||||||
config.allowUnfreePredicate = pkg: builtins.elem (nixpkgs.lib.getName pkg) [
|
config.allowUnfreePredicate = pkg: builtins.elem (nixpkgs.lib.getName pkg) [
|
||||||
"ripcord"
|
"ripcord"
|
||||||
"VCV-Rack"
|
"vcv-rack"
|
||||||
"SunVox"
|
"SunVox"
|
||||||
"renoise"
|
"renoise"
|
||||||
];
|
];
|
||||||
|
@ -120,7 +108,6 @@
|
||||||
nur.overlay
|
nur.overlay
|
||||||
nix-matrix-appservices.overlay
|
nix-matrix-appservices.overlay
|
||||||
unstableOverlay
|
unstableOverlay
|
||||||
llamaOverlay
|
|
||||||
vimwikiOverlay
|
vimwikiOverlay
|
||||||
self.overlays.additions
|
self.overlays.additions
|
||||||
self.overlays.modifications
|
self.overlays.modifications
|
||||||
|
@ -198,10 +185,13 @@
|
||||||
agenix.nixosModules.age
|
agenix.nixosModules.age
|
||||||
self.nixosModules.backup
|
self.nixosModules.backup
|
||||||
self.nixosModules.wireguard
|
self.nixosModules.wireguard
|
||||||
# self.nixosModules.blogg
|
|
||||||
basant.nixosModule
|
basant.nixosModule
|
||||||
# self.nixosModules.microbin
|
# self.nixosModules.microbin
|
||||||
disko.nixosModules.disko
|
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 {
|
box = nixpkgs.lib.nixosSystem rec {
|
||||||
specialArgs = { inherit inputs self; };
|
specialArgs = { inherit inputs self; };
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
|
@ -247,6 +224,7 @@
|
||||||
self.nixosModules.backup
|
self.nixosModules.backup
|
||||||
self.nixosModules.wireguard
|
self.nixosModules.wireguard
|
||||||
self.nixosModules.gonic
|
self.nixosModules.gonic
|
||||||
|
self.nixosModules.gpodder2go
|
||||||
self.nixosModules.wallabag
|
self.nixosModules.wallabag
|
||||||
self.nixosModules.ulogger-server
|
self.nixosModules.ulogger-server
|
||||||
grasp.nixosModule
|
grasp.nixosModule
|
||||||
|
@ -302,13 +280,6 @@
|
||||||
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.helix;
|
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;
|
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib;
|
||||||
|
|
|
@ -130,7 +130,7 @@
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableCompletion = true;
|
enableCompletion = true;
|
||||||
enableAutosuggestions = false;
|
autosuggestion.enable = false;
|
||||||
|
|
||||||
initExtra = ''
|
initExtra = ''
|
||||||
bindkey -v
|
bindkey -v
|
||||||
|
|
|
@ -102,9 +102,6 @@ in
|
||||||
".local/bin/mpv-ify".source = ./bin/mpv-ify;
|
".local/bin/mpv-ify".source = ./bin/mpv-ify;
|
||||||
".local/bin/bspswallow".source = ./bin/bspswallow;
|
".local/bin/bspswallow".source = ./bin/bspswallow;
|
||||||
".config/bspwm/terminals".text = "Kitty";
|
".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;
|
# ".local/bin/hotplug-monitor.sh".source = ./bin/hotplug-monitor.sh;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -126,7 +123,7 @@ in
|
||||||
|
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
platformTheme = "gtk";
|
platformTheme.name = "gtk";
|
||||||
style = { name = "qt5ct-style"; };
|
style = { name = "qt5ct-style"; };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -91,7 +91,7 @@
|
||||||
sound.enable = false;
|
sound.enable = false;
|
||||||
|
|
||||||
programs.gnupg.agent.enable = true;
|
programs.gnupg.agent.enable = true;
|
||||||
programs.gnupg.agent.pinentryFlavor = "curses";
|
programs.gnupg.agent.pinentryPackage = pkgs.pinentry-curses;
|
||||||
programs.gnupg.agent.enableSSHSupport = true;
|
programs.gnupg.agent.enableSSHSupport = true;
|
||||||
|
|
||||||
# This value determines the NixOS release with which your system is to be
|
# This value determines the NixOS release with which your system is to be
|
||||||
|
|
|
@ -24,7 +24,8 @@
|
||||||
# ../profiles/woodpecker-agent
|
# ../profiles/woodpecker-agent
|
||||||
# ../profiles/jellyfin
|
# ../profiles/jellyfin
|
||||||
../profiles/ulogger-server
|
../profiles/ulogger-server
|
||||||
../profiles/photoprism
|
../profiles/photoprism # Replace with immich
|
||||||
|
../profiles/gpodder
|
||||||
#../profiles/postgres_upgrade_script
|
#../profiles/postgres_upgrade_script
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -36,5 +36,5 @@
|
||||||
|
|
||||||
sound.enable = true;
|
sound.enable = true;
|
||||||
|
|
||||||
services.xserver.libinput.enable = true;
|
services.libinput.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.gnupg.agent.enable = true;
|
programs.gnupg.agent.enable = true;
|
||||||
programs.gnupg.agent.pinentryFlavor = "gnome3";
|
programs.gnupg.agent.pinentryPackage = pkgs.pinentry-gnome3;
|
||||||
|
|
||||||
fileSystems."/mnt/ftp" = {
|
fileSystems."/mnt/ftp" = {
|
||||||
device = "192.168.1.240:/home/ftp";
|
device = "192.168.1.240:/home/ftp";
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
|
@ -32,7 +32,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
pinentry-gnome
|
pinentry-gnome3
|
||||||
cached-nix-shell
|
cached-nix-shell
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,6 @@ in
|
||||||
feh
|
feh
|
||||||
sxiv
|
sxiv
|
||||||
xkblayout-state
|
xkblayout-state
|
||||||
vcv-rack
|
|
||||||
zathura
|
zathura
|
||||||
calibre
|
calibre
|
||||||
mpv
|
mpv
|
||||||
|
@ -87,7 +86,6 @@ in
|
||||||
rofi
|
rofi
|
||||||
rofimoji
|
rofimoji
|
||||||
rofi-calc
|
rofi-calc
|
||||||
# eww
|
|
||||||
obs-studio
|
obs-studio
|
||||||
lightdm
|
lightdm
|
||||||
dunst
|
dunst
|
||||||
|
@ -121,15 +119,15 @@ in
|
||||||
night = 3700;
|
night = 3700;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
displayManager.defaultSession = "none+bspwm";
|
||||||
xserver = {
|
xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# TODO should be xkb.layout
|
# TODO should be xkb.layout
|
||||||
layout = "us";
|
xkb.layout = "us";
|
||||||
# xkb.variant = "dvorak";
|
# xkb.variant = "dvorak";
|
||||||
desktopManager.wallpaper.mode = "fill";
|
desktopManager.wallpaper.mode = "fill";
|
||||||
displayManager = {
|
displayManager = {
|
||||||
# startx.enable = true;
|
# startx.enable = true;
|
||||||
defaultSession = "none+bspwm";
|
|
||||||
sessionCommands = ''
|
sessionCommands = ''
|
||||||
${pkgs.xorg.xrdb}/bin/xrdb -merge <<EOF
|
${pkgs.xorg.xrdb}/bin/xrdb -merge <<EOF
|
||||||
#define blk #1F2430
|
#define blk #1F2430
|
||||||
|
|
|
@ -39,6 +39,7 @@ let
|
||||||
"tracks.mossnet.lan"
|
"tracks.mossnet.lan"
|
||||||
"grasp.mossnet.lan"
|
"grasp.mossnet.lan"
|
||||||
"photos.mossnet.lan"
|
"photos.mossnet.lan"
|
||||||
|
"pod.mossnet.lan"
|
||||||
];
|
];
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
services.paperless = {
|
services.paperless = {
|
||||||
enable = false;
|
enable = false;
|
||||||
consumptionDirIsPublic = true;
|
consumptionDirIsPublic = true;
|
||||||
extraConfig.PAPERLESS_AUTO_LOGIN_USERNAME = "admin";
|
settings.PAPERLESS_AUTO_LOGIN_USERNAME = "admin";
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
|
@ -4,15 +4,14 @@
|
||||||
age.secrets.gitea-dbpass.file = "${self}/secrets/gitea-dbpass.age";
|
age.secrets.gitea-dbpass.file = "${self}/secrets/gitea-dbpass.age";
|
||||||
age.secrets.gitea-dbpass.owner = "gitea";
|
age.secrets.gitea-dbpass.owner = "gitea";
|
||||||
|
|
||||||
services.gitea = {
|
services.forgejo = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.forgejo;
|
|
||||||
appName = "Sealight Git Forge";
|
|
||||||
database = {
|
database = {
|
||||||
type = "postgres";
|
type = "postgres";
|
||||||
passwordFile = "/run/agenix/gitea-dbpass";
|
passwordFile = "/run/agenix/gitea-dbpass";
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
|
DEFAULT.APP_NAME = "Sealight Git Forge";
|
||||||
server = {
|
server = {
|
||||||
DOMAIN = "git.sealight.xyz";
|
DOMAIN = "git.sealight.xyz";
|
||||||
ROOT_URL = "https://git.sealight.xyz";
|
ROOT_URL = "https://git.sealight.xyz";
|
||||||
|
@ -24,6 +23,7 @@
|
||||||
repository = {
|
repository = {
|
||||||
DEFAULT_BRANCH = "main";
|
DEFAULT_BRANCH = "main";
|
||||||
};
|
};
|
||||||
|
service.DISABLE_REGISTRATION = true;
|
||||||
"markup.restructuredtext" = {
|
"markup.restructuredtext" = {
|
||||||
ENABLED = true;
|
ENABLED = true;
|
||||||
FILE_EXTENSIONS = ".rst";
|
FILE_EXTENSIONS = ".rst";
|
||||||
|
|
|
@ -5,16 +5,17 @@
|
||||||
music-path /mnt/two/music/
|
music-path /mnt/two/music/
|
||||||
podcast-path /data/podcasts
|
podcast-path /data/podcasts
|
||||||
cache-path /data/cache
|
cache-path /data/cache
|
||||||
|
playlists-path /data/playlists
|
||||||
'';
|
'';
|
||||||
mossnet.gonic.user = "headphones";
|
mossnet.gonic.user = "gonic";
|
||||||
mossnet.gonic.group = "audio";
|
mossnet.gonic.group = "audio";
|
||||||
networking.firewall.allowedTCPPorts = [ 4747 ];
|
networking.firewall.allowedTCPPorts = [ 4747 ];
|
||||||
|
|
||||||
users.users.gonic = {
|
users.users.gonic = {
|
||||||
uid = config.ids.uids.headphones;
|
# uid = config.ids.uids.headphones;
|
||||||
# isSystemUser = true;
|
# isSystemUser = true;
|
||||||
group = "audio";
|
group = "audio";
|
||||||
home = "/var/lib/headphones";
|
# home = "/var/lib/headphones";
|
||||||
createHome = true;
|
createHome = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,14 +68,10 @@ in
|
||||||
Group = cfg.group;
|
Group = cfg.group;
|
||||||
DevicePolicy = "closed";
|
DevicePolicy = "closed";
|
||||||
NoNewPrivileges = " yes";
|
NoNewPrivileges = " yes";
|
||||||
PrivateTmp = "yes";
|
|
||||||
PrivateUsers = "yes";
|
|
||||||
ProtectControlGroups = "yes";
|
ProtectControlGroups = "yes";
|
||||||
ProtectKernelModules = "yes";
|
ProtectKernelModules = "yes";
|
||||||
ProtectKernelTunables = "yes";
|
ProtectKernelTunables = "yes";
|
||||||
RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6";
|
RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6";
|
||||||
RestrictNamespaces = "yes";
|
|
||||||
RestrictRealtime = "yes";
|
|
||||||
SystemCallFilter = "~@clock @debug @module @mount @obsolete @privileged @reboot @setuid @swap";
|
SystemCallFilter = "~@clock @debug @module @mount @obsolete @privileged @reboot @setuid @swap";
|
||||||
ReadWritePaths = dataFolder;
|
ReadWritePaths = dataFolder;
|
||||||
StateDirectory = baseNameOf dataFolder;
|
StateDirectory = baseNameOf dataFolder;
|
||||||
|
|
16
hosts/profiles/gpodder/default.nix
Normal file
16
hosts/profiles/gpodder/default.nix
Normal 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;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -18,6 +18,7 @@
|
||||||
192.168.1.240 tracks.mossnet.lan
|
192.168.1.240 tracks.mossnet.lan
|
||||||
192.168.1.240 grasp.mossnet.lan
|
192.168.1.240 grasp.mossnet.lan
|
||||||
192.168.1.240 photos.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 mossnet.lan
|
||||||
# 10.0.69.4 links.mossnet.lan
|
# 10.0.69.4 links.mossnet.lan
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
services.rss-bridge = {
|
services.rss-bridge = {
|
||||||
enable = true;
|
enable = true;
|
||||||
virtualHost = "bridge.sealight.xyz";
|
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;
|
services.nginx.virtualHosts."bridge.sealight.xyz".forceSSL = true;
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
path = [
|
path = [
|
||||||
pkgs.git
|
pkgs.git
|
||||||
pkgs.coreutils
|
pkgs.coreutils
|
||||||
pkgs.nixUnstable
|
pkgs.nixVersions.latest
|
||||||
pkgs.openssh
|
pkgs.openssh
|
||||||
pkgs.deploy
|
pkgs.deploy
|
||||||
];
|
];
|
||||||
|
|
|
@ -36,11 +36,16 @@
|
||||||
publicKey = "gcdq86hhEUlqF2chqYB/F8pALyAMNFvwLycxBoHuoDs=";
|
publicKey = "gcdq86hhEUlqF2chqYB/F8pALyAMNFvwLycxBoHuoDs=";
|
||||||
allowedIPs = [ "10.0.69.5/32" ];
|
allowedIPs = [ "10.0.69.5/32" ];
|
||||||
}
|
}
|
||||||
# {
|
{
|
||||||
# # hyperplane
|
# hyperplane
|
||||||
# publicKey = "";
|
publicKey = "v+EUuM60yZLvBmdCG9GxfFAtSjS1VvbUWcyNb8emjDg=";
|
||||||
# allowedIPs = [ "10.0.69.6/32" ];
|
allowedIPs = [ "10.0.69.6/32" ];
|
||||||
# }
|
}
|
||||||
|
{
|
||||||
|
# work
|
||||||
|
publicKey = "/gv66s8DfppCCjaEN/jlc8z95IhEWPgDumykqKEl0QU=";
|
||||||
|
allowedIPs = [ "10.0.69.7/32" ];
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -147,7 +147,7 @@ cat > /mnt/etc/nixos/configuration.nix <<'endmsg'
|
||||||
sound.enable = true;
|
sound.enable = true;
|
||||||
hardware.pulseaudio.enable = true;
|
hardware.pulseaudio.enable = true;
|
||||||
|
|
||||||
services.xserver.libinput.enable = true;
|
services.libinput.enable = true;
|
||||||
|
|
||||||
# Hmmm maybe somewhere else?
|
# Hmmm maybe somewhere else?
|
||||||
users.users.anish = {
|
users.users.anish = {
|
||||||
|
|
|
@ -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"; };
|
|
||||||
}];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
|
@ -9,6 +9,6 @@
|
||||||
wireguard = import ./wireguard.nix;
|
wireguard = import ./wireguard.nix;
|
||||||
backup = import ./backup.nix;
|
backup = import ./backup.nix;
|
||||||
ulogger-server = import ./ulogger.nix;
|
ulogger-server = import ./ulogger.nix;
|
||||||
blogg = import ./blogging.nix;
|
gpodder2go = import ./gpodder2go.nix;
|
||||||
# microbin = import ./microbin.nix; # includide in 23.11
|
# microbin = import ./microbin.nix; # includide in 23.11
|
||||||
}
|
}
|
||||||
|
|
|
@ -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"; };
|
|
||||||
}];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
120
modules/nixos/gpodder2go.nix
Normal file
120
modules/nixos/gpodder2go.nix
Normal 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
|
||||||
|
# '';
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
plymouth-themes = pkgs.callPackage ./plymouth.nix { };
|
plymouth-themes = pkgs.callPackage ./plymouth.nix { };
|
||||||
tic-80 = pkgs.callPackage ./tic-80.nix { };
|
tic-80 = pkgs.callPackage ./tic-80.nix { };
|
||||||
fennel-ls = pkgs.callPackage ./fennel-ls.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
|
my-mautrix-discord = pkgs.callPackage ./mautrix-discord.nix { }; # Handled by matrix-appservices input
|
||||||
ulogger-server = pkgs.callPackage ./ulogger.nix { };
|
ulogger-server = pkgs.callPackage ./ulogger.nix { };
|
||||||
# Wallabag is now an overlay
|
# Wallabag is now an overlay
|
||||||
|
@ -13,5 +13,4 @@
|
||||||
my-wallabag = pkgs.callPackage ./wallabag.nix { };
|
my-wallabag = pkgs.callPackage ./wallabag.nix { };
|
||||||
mautrix-slack = pkgs.callPackage ./mautrix-slack.nix { };
|
mautrix-slack = pkgs.callPackage ./mautrix-slack.nix { };
|
||||||
gpodder2go = pkgs.callPackage ./gpodder2go.nix { };
|
gpodder2go = pkgs.callPackage ./gpodder2go.nix { };
|
||||||
ghost = pkgs.callPackage ./ghost { };
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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"
|
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
|
@ -1,16 +1,16 @@
|
||||||
{ lib, buildGoModule, fetchFromGitHub }:
|
{ lib, buildGoModule, fetchFromGitHub }:
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule {
|
||||||
name = "kobopatch";
|
name = "kobopatch";
|
||||||
version = "0.15.0";
|
version = "0.15.0";
|
||||||
|
|
||||||
vendorSha256 = "1i6srhyig4x8mywyc2l8wzzm1afvb7wxmjsr84c447sb1xss6p7x";
|
vendorHash = "sha256-1i6srhyig4x8mywyc2l8wzzm1afvb7wxmjsr84c447sb1xss6p7x";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "geek1011";
|
owner = "geek1011";
|
||||||
repo = "kobopatch";
|
repo = "kobopatch";
|
||||||
rev = "653070c67c83ec61884854efc4f8a3132d82a2e5";
|
rev = "653070c67c83ec61884854efc4f8a3132d82a2e5";
|
||||||
sha256 = "09hr3zh0w0f78cx40d2yydqv0mmjdh4iwdgia7sikraphvha85nn";
|
hash = "sha256-09hr3zh0w0f78cx40d2yydqv0mmjdh4iwdgia7sikraphvha85nn";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
|
Loading…
Reference in a new issue