mirror of
https://github.com/nmasur/dotfiles
synced 2025-07-06 20:10:14 +00:00
Compare commits
1 Commits
nixd
...
eblume-mol
Author | SHA1 | Date | |
---|---|---|---|
068cdbf5d4 |
6
.github/workflows/update.yml
vendored
6
.github/workflows/update.yml
vendored
@ -3,7 +3,7 @@ name: Update Flake
|
|||||||
on:
|
on:
|
||||||
workflow_dispatch: # allows manual triggering
|
workflow_dispatch: # allows manual triggering
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '33 3 * * 6' # runs weekly on Saturday at 03:33
|
- cron: '33 3 * * 0' # runs weekly on Sunday at 03:33
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
@ -19,14 +19,12 @@ jobs:
|
|||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
- name: Install Nix
|
- name: Install Nix
|
||||||
uses: DeterminateSystems/nix-installer-action@v11
|
uses: DeterminateSystems/nix-installer-action@v11
|
||||||
with:
|
|
||||||
nix-package-url: https://releases.nixos.org/nix/nix-2.18.4/nix-2.18.4-x86_64-linux.tar.xz
|
|
||||||
- name: Check Nixpkgs Inputs
|
- name: Check Nixpkgs Inputs
|
||||||
uses: DeterminateSystems/flake-checker-action@v7
|
uses: DeterminateSystems/flake-checker-action@v7
|
||||||
- name: Add Nix Cache
|
- name: Add Nix Cache
|
||||||
uses: DeterminateSystems/magic-nix-cache-action@v6
|
uses: DeterminateSystems/magic-nix-cache-action@v6
|
||||||
- name: Update flake.lock
|
- name: Update flake.lock
|
||||||
uses: DeterminateSystems/update-flake-lock@v23
|
uses: DeterminateSystems/update-flake-lock@v21
|
||||||
id: update
|
id: update
|
||||||
with:
|
with:
|
||||||
pr-title: "Update flake.lock" # Title of PR to be created
|
pr-title: "Update flake.lock" # Title of PR to be created
|
||||||
|
245
flake.lock
generated
245
flake.lock
generated
@ -3,11 +3,11 @@
|
|||||||
"baleia-nvim-src": {
|
"baleia-nvim-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1721805312,
|
"lastModified": 1717182435,
|
||||||
"narHash": "sha256-qA1x5kplP2I8bURO0I4R0gt/zeznu9hQQ+XHptLGuwc=",
|
"narHash": "sha256-duI3myrJSvmtjF9n7NVrVOsuSo1O3JEypA5ghBHsULc=",
|
||||||
"owner": "m00qek",
|
"owner": "m00qek",
|
||||||
"repo": "baleia.nvim",
|
"repo": "baleia.nvim",
|
||||||
"rev": "1b25eac3ac03659c3d3af75c7455e179e5f197f7",
|
"rev": "4d3b27dbec65a44ceecd9306f605a980bcf4e9b1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -87,11 +87,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728385805,
|
"lastModified": 1718662658,
|
||||||
"narHash": "sha256-mUd38b0vhB7yzgAjNOaFz7VY9xIVzlbn3P2wjGBcVV0=",
|
"narHash": "sha256-AKG7BsqtVWDlefgzyKz7vjaKTLi4+bmTSBhowbQoZtM=",
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "48b50b3b137be5cfb9f4d006835ce7c3fe558ccc",
|
"rev": "29b3096a6e283d7e6779187244cb2a3942239fdf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -108,11 +108,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728687662,
|
"lastModified": 1718846788,
|
||||||
"narHash": "sha256-D9TChzb00eTG1YWBx8eN2s6lJJnBjB5Y7RpxkAzGvyQ=",
|
"narHash": "sha256-9dtXYtEkmXoUJV+PGLqscqF7qTn4AIhAKpFWRFU2NYs=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "bdbdb725d632863bdedb80baabf21327614dd237",
|
"rev": "e1174d991944a01eaaa04bc59c6281edca4c0e6e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -145,11 +145,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728694479,
|
"lastModified": 1718930737,
|
||||||
"narHash": "sha256-NFFW6RrOTBuIk29LKtAO3MU5Y0ll7zAp9Skd9HvCGfs=",
|
"narHash": "sha256-+nKJ/VP6X+hirXqRry3GzdNn4OJvOdB4nRnJY22ixFw=",
|
||||||
"owner": "bandithedoge",
|
"owner": "bandithedoge",
|
||||||
"repo": "nixpkgs-firefox-darwin",
|
"repo": "nixpkgs-firefox-darwin",
|
||||||
"rev": "8a3143c1ce147481db4463e71bc3b7002e6ebc56",
|
"rev": "087919070dffc9798a8cb753e97babe287f06c25",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -231,11 +231,11 @@
|
|||||||
"systems": "systems_3"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726560853,
|
"lastModified": 1710146030,
|
||||||
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -244,30 +244,14 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gh-collaborators": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1717117275,
|
|
||||||
"narHash": "sha256-x3p2bHL6U8gWanXnTTJGgA9x4Ixy9AOZiBbfcfn5VVw=",
|
|
||||||
"owner": "katiem0",
|
|
||||||
"repo": "gh-collaborators",
|
|
||||||
"rev": "4dfcd0b5c2e31f2d0fbfd4b83fdfae787a5e6ff8",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "katiem0",
|
|
||||||
"repo": "gh-collaborators",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hmts-nvim-src": {
|
"hmts-nvim-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1727357627,
|
"lastModified": 1715076655,
|
||||||
"narHash": "sha256-8FJlLw5LApQs7S8xEh2UE9wdYCAweZTbvgozCGPfQJc=",
|
"narHash": "sha256-vDTqJQzLyg0nmlC+CrLnPkYti1rPxmvRW8eQq/9Zg+M=",
|
||||||
"owner": "calops",
|
"owner": "calops",
|
||||||
"repo": "hmts.nvim",
|
"repo": "hmts.nvim",
|
||||||
"rev": "1ecb68b9f89abdb23d2754f9d69f90eab2d33eaa",
|
"rev": "19a91816c123173a4551a6a04f2882338f20db1d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -283,11 +267,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728685293,
|
"lastModified": 1718983978,
|
||||||
"narHash": "sha256-1WowL96pksT/XCi+ZXHgqiQ9NiU5oxWuNIQYWqOoEYc=",
|
"narHash": "sha256-lp6stESwTLBZUQ5GBivxwNehShmBp4jqeX/1xahM61w=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "2b13611eaed8326789f76f70d21d06fbb14e3e47",
|
"rev": "c559542f0aa87971a7f4c1b3478fe33cc904b902",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -307,11 +291,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1727470707,
|
"lastModified": 1718893255,
|
||||||
"narHash": "sha256-BqkwZ2mvzn+COdfIuzllSzWmiaBwQktt4sw9slfwM70=",
|
"narHash": "sha256-NdSDGdz5eU/EcnGn8ECP1V+mn5hyGOZQ4ybv2bWTpuk=",
|
||||||
"owner": "hraban",
|
"owner": "hraban",
|
||||||
"repo": "mac-app-util",
|
"repo": "mac-app-util",
|
||||||
"rev": "9c6bbe2a6a7ec647d03f64f0fadb874284f59eac",
|
"rev": "1857b26aceaf64c2b6a357eb83cf34139b6365cc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -323,53 +307,52 @@
|
|||||||
"nextcloud-cookbook": {
|
"nextcloud-cookbook": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1719431638,
|
"lastModified": 1702545935,
|
||||||
"narHash": "sha256-a8ekMnEzudHGiqHF53jPtgsVTOTc2QLuPg6YtTw5h68=",
|
"narHash": "sha256-19LN1nYJJ0RMWj6DrYPvHzocTyhMfYdpdhBFch3fpHE=",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://github.com/christianlupus-nextcloud/cookbook-releases/releases/download/v0.11.1/cookbook-0.11.1.tar.gz"
|
"url": "https://github.com/christianlupus-nextcloud/cookbook-releases/releases/download/v0.11.0/cookbook-0.11.0.tar.gz"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://github.com/christianlupus-nextcloud/cookbook-releases/releases/download/v0.11.1/cookbook-0.11.1.tar.gz"
|
"url": "https://github.com/christianlupus-nextcloud/cookbook-releases/releases/download/v0.11.0/cookbook-0.11.0.tar.gz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nextcloud-external": {
|
"nextcloud-external": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710338675,
|
"lastModified": 1699624334,
|
||||||
"narHash": "sha256-bJJ/dVmE1o04QCyrxD0sko0okRsnxJmT6sOTOmBiifs=",
|
"narHash": "sha256-RCL2RP5twRDLxI/KfAX6QLYQOzqZmSWsfrC5ZQIwTD4=",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://github.com/nextcloud-releases/external/releases/download/v5.4.0/external-v5.4.0.tar.gz"
|
"url": "https://github.com/nextcloud-releases/external/releases/download/v5.3.1/external-v5.3.1.tar.gz"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://github.com/nextcloud-releases/external/releases/download/v5.4.0/external-v5.4.0.tar.gz"
|
"url": "https://github.com/nextcloud-releases/external/releases/download/v5.3.1/external-v5.3.1.tar.gz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nextcloud-news": {
|
"nextcloud-news": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718102703,
|
"lastModified": 1703426420,
|
||||||
"narHash": "sha256-XNGjf7SWgJYFdVNOh3ED0jxSG0GJwWImVQq4cJT1Lo4=",
|
"narHash": "sha256-AENBJH/bEob5JQvw4WEi864mdLYJ5Mqe78HJH6ceCpI=",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://github.com/nextcloud/news/releases/download/25.0.0-alpha7/news.tar.gz"
|
"url": "https://github.com/nextcloud/news/releases/download/25.0.0-alpha3/news.tar.gz"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://github.com/nextcloud/news/releases/download/25.0.0-alpha7/news.tar.gz"
|
"url": "https://github.com/nextcloud/news/releases/download/25.0.0-alpha3/news.tar.gz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nextcloud-snappymail": {
|
"nextcloud-snappymail": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728704544,
|
"narHash": "sha256-7oJEJ6t6iS/pcnSHashf1AkOEf+gKizpQHBy9XwY4Yo=",
|
||||||
"narHash": "sha256-WwCRAZzxYWUpOy6iVTDpVIr/DrkJkQGjgIdVWNfCH3Q=",
|
"type": "file",
|
||||||
"type": "tarball",
|
"url": "https://github.com/nmasur/snappymail-nextcloud/releases/download/v2.36.1/snappymail-2.36.1-nextcloud.tar.gz"
|
||||||
"url": "https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz"
|
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "file",
|
||||||
"url": "https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz"
|
"url": "https://github.com/nmasur/snappymail-nextcloud/releases/download/v2.36.1/snappymail-2.36.1-nextcloud.tar.gz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nix2vim": {
|
"nix2vim": {
|
||||||
@ -380,11 +363,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1727867024,
|
"lastModified": 1718621825,
|
||||||
"narHash": "sha256-yimXLupF3hG57imRMpqWho/Wstcj7P8Yh8t0SBiX+dQ=",
|
"narHash": "sha256-bSfjwRgKKpLyjEDPRAF1hlJKc7QDoqopalHwNCB/eAA=",
|
||||||
"owner": "gytis-ivaskevicius",
|
"owner": "gytis-ivaskevicius",
|
||||||
"repo": "nix2vim",
|
"repo": "nix2vim",
|
||||||
"rev": "da26caae6c7776eedbc6514a0f57f1ccd6a759ed",
|
"rev": "1db11dbf8a4d124e02244fa5c4ff219b672a8e5b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -395,11 +378,11 @@
|
|||||||
},
|
},
|
||||||
"nixlib": {
|
"nixlib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728176478,
|
"lastModified": 1712450863,
|
||||||
"narHash": "sha256-px3Q0W//c+mZ4kPMXq4poztsjtXM1Ja1rN+825YMDUQ=",
|
"narHash": "sha256-K6IkdtMtq9xktmYPj0uaYc8NsIqHuaAoRBaMgu9Fvrw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs.lib",
|
"repo": "nixpkgs.lib",
|
||||||
"rev": "b61309c3c1b6013d36299bc8285612865b3b9e4c",
|
"rev": "3c62b6a12571c9a7f65ab037173ee153d539905f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -416,11 +399,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728522165,
|
"lastModified": 1718025593,
|
||||||
"narHash": "sha256-UQpsJ0Ev6JBGsCYRlS2oOVvb+eWcDD0xTV3RVlqbeVU=",
|
"narHash": "sha256-WZ1gdKq/9u1Ns/oXuNsDm+W0salonVA0VY1amw8urJ4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-generators",
|
"repo": "nixos-generators",
|
||||||
"rev": "40c8d30c490414910fc63626ad1b67af7db40cd3",
|
"rev": "35c20ba421dfa5059e20e0ef2343c875372bdcf3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -431,11 +414,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728492678,
|
"lastModified": 1718895438,
|
||||||
"narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=",
|
"narHash": "sha256-k3JqJrkdoYwE3fHE6xGDY676AYmyh4U2Zw+0Bwe5DLU=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7",
|
"rev": "d603719ec6e294f034936c0d0dc06f689d91b6c3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -461,29 +444,13 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1728627514,
|
|
||||||
"narHash": "sha256-r+SF9AnHrTg+bk6YszoKfV9lgyw+yaFUQe0dOjI0Z2o=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "c505ebf777526041d792a49d5f6dd4095ea391a7",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-24.05",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nur": {
|
"nur": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728704557,
|
"lastModified": 1719001822,
|
||||||
"narHash": "sha256-HnYBB+oE+03rNDzTTVazBcysPOu5udRpTOGpP7/A5Ow=",
|
"narHash": "sha256-rbEP1CTzYvdSAKf1a729De9t8GMIrZ5GmD+PdYCnrgg=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nur",
|
"repo": "nur",
|
||||||
"rev": "1d143f52b0a046924ee7fe74bce0bd2e10e07c3d",
|
"rev": "e7edcaeae9db01224266febe88eb7d3411055636",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -495,11 +462,11 @@
|
|||||||
"nvim-lint-src": {
|
"nvim-lint-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728582620,
|
"lastModified": 1717789608,
|
||||||
"narHash": "sha256-wfui4kE3oxveCJPjJfkJSbE69zVTeAsasDdfJkElmn8=",
|
"narHash": "sha256-LNYFxAM9lQNNOIOc+IgKgbSRp2U09B/9HivSCwMyUpQ=",
|
||||||
"owner": "mfussenegger",
|
"owner": "mfussenegger",
|
||||||
"repo": "nvim-lint",
|
"repo": "nvim-lint",
|
||||||
"rev": "f707b3ae50417067fa63fdfe179b0bff6b380da1",
|
"rev": "941fa1220a61797a51f3af9ec6b7d74c8c7367ce",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -528,11 +495,11 @@
|
|||||||
"nvim-tree-lua-src": {
|
"nvim-tree-lua-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728614821,
|
"lastModified": 1717900986,
|
||||||
"narHash": "sha256-WYtu+jtsQSFqruTxdzkHE9UQJBE2TGoNoFar36AAoqo=",
|
"narHash": "sha256-7KO3wPW65IH4m0jEoyFScNiAVwrlNHU+p0H55AuwlWk=",
|
||||||
"owner": "kyazdani42",
|
"owner": "kyazdani42",
|
||||||
"repo": "nvim-tree.lua",
|
"repo": "nvim-tree.lua",
|
||||||
"rev": "5ad87620ec9d1190d15c88171a3f0122bc16b0fe",
|
"rev": "2086e564c4d23fea714e8a6d63b881e551af2f41",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -544,16 +511,16 @@
|
|||||||
"nvim-treesitter-src": {
|
"nvim-treesitter-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1705679158,
|
"lastModified": 1718957498,
|
||||||
"narHash": "sha256-zAyiitJIgOCZTB0CmgNt0MHENM70SOHLIoWrVwOJKFg=",
|
"narHash": "sha256-GEuKEAZxLGMkyjdJGzrIKNR1X10RHlACC6s1lNOq7aw=",
|
||||||
"owner": "nvim-treesitter",
|
"owner": "nvim-treesitter",
|
||||||
"repo": "nvim-treesitter",
|
"repo": "nvim-treesitter",
|
||||||
"rev": "f197a15b0d1e8d555263af20add51450e5aaa1f0",
|
"rev": "b967bbc27b564001c3d3b8ea93444cf6d0b21d23",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nvim-treesitter",
|
"owner": "nvim-treesitter",
|
||||||
"ref": "v0.9.2",
|
"ref": "master",
|
||||||
"repo": "nvim-treesitter",
|
"repo": "nvim-treesitter",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@ -600,7 +567,6 @@
|
|||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"fidget-nvim-src": "fidget-nvim-src",
|
"fidget-nvim-src": "fidget-nvim-src",
|
||||||
"firefox-darwin": "firefox-darwin",
|
"firefox-darwin": "firefox-darwin",
|
||||||
"gh-collaborators": "gh-collaborators",
|
|
||||||
"hmts-nvim-src": "hmts-nvim-src",
|
"hmts-nvim-src": "hmts-nvim-src",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"mac-app-util": "mac-app-util",
|
"mac-app-util": "mac-app-util",
|
||||||
@ -612,7 +578,6 @@
|
|||||||
"nixos-generators": "nixos-generators",
|
"nixos-generators": "nixos-generators",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-caddy": "nixpkgs-caddy",
|
"nixpkgs-caddy": "nixpkgs-caddy",
|
||||||
"nixpkgs-stable": "nixpkgs-stable",
|
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"nvim-lint-src": "nvim-lint-src",
|
"nvim-lint-src": "nvim-lint-src",
|
||||||
"nvim-lspconfig-src": "nvim-lspconfig-src",
|
"nvim-lspconfig-src": "nvim-lspconfig-src",
|
||||||
@ -620,10 +585,8 @@
|
|||||||
"nvim-treesitter-src": "nvim-treesitter-src",
|
"nvim-treesitter-src": "nvim-treesitter-src",
|
||||||
"ren": "ren",
|
"ren": "ren",
|
||||||
"rep": "rep",
|
"rep": "rep",
|
||||||
"snipe-nvim-src": "snipe-nvim-src",
|
|
||||||
"telescope-nvim-src": "telescope-nvim-src",
|
"telescope-nvim-src": "telescope-nvim-src",
|
||||||
"telescope-project-nvim-src": "telescope-project-nvim-src",
|
"telescope-project-nvim-src": "telescope-project-nvim-src",
|
||||||
"tiny-inline-diagnostic-nvim-src": "tiny-inline-diagnostic-nvim-src",
|
|
||||||
"toggleterm-nvim-src": "toggleterm-nvim-src",
|
"toggleterm-nvim-src": "toggleterm-nvim-src",
|
||||||
"tree-sitter-bash": "tree-sitter-bash",
|
"tree-sitter-bash": "tree-sitter-bash",
|
||||||
"tree-sitter-ini": "tree-sitter-ini",
|
"tree-sitter-ini": "tree-sitter-ini",
|
||||||
@ -637,22 +600,6 @@
|
|||||||
"zenyd-mpv-scripts": "zenyd-mpv-scripts"
|
"zenyd-mpv-scripts": "zenyd-mpv-scripts"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"snipe-nvim-src": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1724418876,
|
|
||||||
"narHash": "sha256-G4g/OzyXhDhX84HkxlhFSy6E+EAGxH+HL1Bw5s5FWHE=",
|
|
||||||
"owner": "leath-dub",
|
|
||||||
"repo": "snipe.nvim",
|
|
||||||
"rev": "f1abd4aaaef6398b45dcddc9f1a40dd982f732b0",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "leath-dub",
|
|
||||||
"repo": "snipe.nvim",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems": {
|
"systems": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
@ -718,11 +665,11 @@
|
|||||||
"telescope-project-nvim-src": {
|
"telescope-project-nvim-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725880250,
|
"lastModified": 1701464478,
|
||||||
"narHash": "sha256-wO/cm5PT1L0hFr/CX466w0UimoFg/tWrDK8T0QeKZMU=",
|
"narHash": "sha256-touMCltcnqkrQYV1NtNeWLQeFVGt+WM3aIWIdKilA7w=",
|
||||||
"owner": "nvim-telescope",
|
"owner": "nvim-telescope",
|
||||||
"repo": "telescope-project.nvim",
|
"repo": "telescope-project.nvim",
|
||||||
"rev": "796200876bb0fe8157b8eb1ce03d927d3827a052",
|
"rev": "1aaf16580a614601a7f7077d9639aeb457dc5559",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -731,35 +678,19 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tiny-inline-diagnostic-nvim-src": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1726582328,
|
|
||||||
"narHash": "sha256-NBcUVUSnk2TlbSr/vFTbp3Rh35ms8lAcfDqpmE1KTq4=",
|
|
||||||
"owner": "rachartier",
|
|
||||||
"repo": "tiny-inline-diagnostic.nvim",
|
|
||||||
"rev": "1a83e7ce5c9d0ae4d89fc5c812b55ff8ed1d39e7",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "rachartier",
|
|
||||||
"repo": "tiny-inline-diagnostic.nvim",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"toggleterm-nvim-src": {
|
"toggleterm-nvim-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1721232722,
|
"lastModified": 1713792255,
|
||||||
"narHash": "sha256-hJ6nBCgSyYF1pY4lX+b8WZd49i5F6BwOmrl7xVSIwRw=",
|
"narHash": "sha256-mM5bGgAemsRJD9U6U5K6ia5qb8NaTusM99x6xrtEBfw=",
|
||||||
"owner": "akinsho",
|
"owner": "akinsho",
|
||||||
"repo": "toggleterm.nvim",
|
"repo": "toggleterm.nvim",
|
||||||
"rev": "48be57eaba817f038d61bbf64d2c597f578c0827",
|
"rev": "066cccf48a43553a80a210eb3be89a15d789d6e6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "akinsho",
|
"owner": "akinsho",
|
||||||
"ref": "v2.12.0",
|
"ref": "v2.11.0",
|
||||||
"repo": "toggleterm.nvim",
|
"repo": "toggleterm.nvim",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@ -767,11 +698,11 @@
|
|||||||
"tree-sitter-bash": {
|
"tree-sitter-bash": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725407033,
|
"lastModified": 1715005250,
|
||||||
"narHash": "sha256-xqiUJhl7nfOlS6wBYWpmrGLCvWoJCA5fz8DCX85Lxog=",
|
"narHash": "sha256-rCuQbnQAOnQWKYreNH80nlL+0A1qbWbjMvtczcoWPrY=",
|
||||||
"owner": "tree-sitter",
|
"owner": "tree-sitter",
|
||||||
"repo": "tree-sitter-bash",
|
"repo": "tree-sitter-bash",
|
||||||
"rev": "c8713e50f0bd77d080832fc61ad128bc8f2934e9",
|
"rev": "2fbd860f802802ca76a6661ce025b3a3bca2d3ed",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -784,11 +715,11 @@
|
|||||||
"tree-sitter-ini": {
|
"tree-sitter-ini": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725233451,
|
"lastModified": 1716889525,
|
||||||
"narHash": "sha256-G11Aynq2rnkRwdkhspjYqtBD/h5k4aD+NvuE0QfploU=",
|
"narHash": "sha256-IyHrIxcmuzs60zUiJv4E3nSkhSkgbcaLDUdeDx5mlHk=",
|
||||||
"owner": "justinmk",
|
"owner": "justinmk",
|
||||||
"repo": "tree-sitter-ini",
|
"repo": "tree-sitter-ini",
|
||||||
"rev": "962568c9efa71d25720ab42c5d36e222626ef3a6",
|
"rev": "87176e524f0a98f5be75fa44f4f0ff5c6eac069c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -800,11 +731,11 @@
|
|||||||
"tree-sitter-lua": {
|
"tree-sitter-lua": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725894603,
|
"lastModified": 1710150044,
|
||||||
"narHash": "sha256-Q2LtrifoKf16N1dRBf2xLi12kpMkcFncZL4jaVbtK3M=",
|
"narHash": "sha256-uFaEptW4wPrqgHfB1mYmVltf+4no61L2cPgpsr5qBIU=",
|
||||||
"owner": "MunifTanjim",
|
"owner": "MunifTanjim",
|
||||||
"repo": "tree-sitter-lua",
|
"repo": "tree-sitter-lua",
|
||||||
"rev": "99fc677e6971c425e8d407f59c77ab897e585c92",
|
"rev": "a24dab177e58c9c6832f96b9a73102a0cfbced4a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -833,11 +764,11 @@
|
|||||||
"tree-sitter-python": {
|
"tree-sitter-python": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725324041,
|
"lastModified": 1714528221,
|
||||||
"narHash": "sha256-8mdBN1vP64PJKxN2y0GoaObLs6j/lcsU47sr+8/8oTQ=",
|
"narHash": "sha256-hHQ5gK4dTRSdp0fLKarytU9vFhsBeQp7Ka61vFoIr7Y=",
|
||||||
"owner": "tree-sitter",
|
"owner": "tree-sitter",
|
||||||
"repo": "tree-sitter-python",
|
"repo": "tree-sitter-python",
|
||||||
"rev": "8c65e256f971812276ff2a69a2f515c218ed7f82",
|
"rev": "71778c2a472ed00a64abf4219544edbf8e4b86d7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -904,11 +835,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728588346,
|
"lastModified": 1718710563,
|
||||||
"narHash": "sha256-P1j+Nf+pzxPYK2Qe7lF2yB0vR3YvW8Td5sD0ZvrKIq8=",
|
"narHash": "sha256-O4rrM0Bkh3IRe8D600iniQ52QTmlnuTSp2KyXV7C2jE=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NixOS-WSL",
|
"repo": "NixOS-WSL",
|
||||||
"rev": "0fc8d9bb51cc46b31d950513df6d088905c8fe55",
|
"rev": "2fb93bea657ad99a7005ef601c67cb2820560a41",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
40
flake.nix
40
flake.nix
@ -7,9 +7,6 @@
|
|||||||
# Used for system packages
|
# Used for system packages
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
# Used for specific stable packages
|
|
||||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05";
|
|
||||||
|
|
||||||
# Used for caddy plugins
|
# Used for caddy plugins
|
||||||
nixpkgs-caddy.url = "github:jpds/nixpkgs/caddy-external-plugins";
|
nixpkgs-caddy.url = "github:jpds/nixpkgs/caddy-external-plugins";
|
||||||
|
|
||||||
@ -91,7 +88,7 @@
|
|||||||
};
|
};
|
||||||
nvim-treesitter-src = {
|
nvim-treesitter-src = {
|
||||||
# https://github.com/nvim-treesitter/nvim-treesitter/tags
|
# https://github.com/nvim-treesitter/nvim-treesitter/tags
|
||||||
url = "github:nvim-treesitter/nvim-treesitter/v0.9.2";
|
url = "github:nvim-treesitter/nvim-treesitter/master";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
telescope-nvim-src = {
|
telescope-nvim-src = {
|
||||||
@ -105,7 +102,7 @@
|
|||||||
};
|
};
|
||||||
toggleterm-nvim-src = {
|
toggleterm-nvim-src = {
|
||||||
# https://github.com/akinsho/toggleterm.nvim/tags
|
# https://github.com/akinsho/toggleterm.nvim/tags
|
||||||
url = "github:akinsho/toggleterm.nvim/v2.12.0";
|
url = "github:akinsho/toggleterm.nvim/v2.11.0";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
bufferline-nvim-src = {
|
bufferline-nvim-src = {
|
||||||
@ -130,14 +127,6 @@
|
|||||||
url = "github:mfussenegger/nvim-lint";
|
url = "github:mfussenegger/nvim-lint";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
tiny-inline-diagnostic-nvim-src = {
|
|
||||||
url = "github:rachartier/tiny-inline-diagnostic.nvim";
|
|
||||||
flake = false;
|
|
||||||
};
|
|
||||||
snipe-nvim-src = {
|
|
||||||
url = "github:leath-dub/snipe.nvim";
|
|
||||||
flake = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Tree-Sitter Grammars
|
# Tree-Sitter Grammars
|
||||||
tree-sitter-bash = {
|
tree-sitter-bash = {
|
||||||
@ -185,32 +174,26 @@
|
|||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
gh-collaborators = {
|
|
||||||
url = "github:katiem0/gh-collaborators";
|
|
||||||
flake = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Nextcloud Apps
|
# Nextcloud Apps
|
||||||
nextcloud-news = {
|
nextcloud-news = {
|
||||||
# https://github.com/nextcloud/news/releases
|
# https://github.com/nextcloud/news/releases
|
||||||
url = "https://github.com/nextcloud/news/releases/download/25.0.0-alpha7/news.tar.gz";
|
url = "https://github.com/nextcloud/news/releases/download/25.0.0-alpha3/news.tar.gz";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
nextcloud-external = {
|
nextcloud-external = {
|
||||||
# https://github.com/nextcloud-releases/external/releases
|
# https://github.com/nextcloud-releases/external/releases
|
||||||
url = "https://github.com/nextcloud-releases/external/releases/download/v5.4.0/external-v5.4.0.tar.gz";
|
url = "https://github.com/nextcloud-releases/external/releases/download/v5.3.1/external-v5.3.1.tar.gz";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
nextcloud-cookbook = {
|
nextcloud-cookbook = {
|
||||||
# https://github.com/christianlupus-nextcloud/cookbook-releases/releases/
|
# https://github.com/christianlupus-nextcloud/cookbook-releases/releases/
|
||||||
url = "https://github.com/christianlupus-nextcloud/cookbook-releases/releases/download/v0.11.1/cookbook-0.11.1.tar.gz";
|
url = "https://github.com/christianlupus-nextcloud/cookbook-releases/releases/download/v0.11.0/cookbook-0.11.0.tar.gz";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
nextcloud-snappymail = {
|
nextcloud-snappymail = {
|
||||||
# https://github.com/the-djmaze/snappymail/releases
|
# https://github.com/the-djmaze/snappymail/releases
|
||||||
# https://snappymail.eu/repository/nextcloud
|
# https://snappymail.eu/repository/nextcloud
|
||||||
url = "https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz";
|
url = "file+https://github.com/nmasur/snappymail-nextcloud/releases/download/v2.36.1/snappymail-2.36.1-nextcloud.tar.gz";
|
||||||
# url = "https://github.com/nmasur/snappymail-nextcloud/releases/download/v2.36.3/snappymail-2.36.3-nextcloud.tar.gz";
|
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -235,15 +218,12 @@
|
|||||||
mail.smtpHost = "smtp.purelymail.com";
|
mail.smtpHost = "smtp.purelymail.com";
|
||||||
dotfilesRepo = "https://github.com/nmasur/dotfiles";
|
dotfilesRepo = "https://github.com/nmasur/dotfiles";
|
||||||
hostnames = {
|
hostnames = {
|
||||||
audiobooks = "read.${baseName}";
|
|
||||||
files = "files.${baseName}";
|
|
||||||
git = "git.${baseName}";
|
git = "git.${baseName}";
|
||||||
influxdb = "influxdb.${baseName}";
|
influxdb = "influxdb.${baseName}";
|
||||||
irc = "irc.${baseName}";
|
irc = "irc.${baseName}";
|
||||||
metrics = "metrics.${baseName}";
|
metrics = "metrics.${baseName}";
|
||||||
minecraft = "minecraft.${baseName}";
|
minecraft = "minecraft.${baseName}";
|
||||||
n8n = "n8n.${baseName}";
|
n8n = "n8n2.${baseName}";
|
||||||
notifications = "ntfy.${baseName}";
|
|
||||||
prometheus = "prom.${baseName}";
|
prometheus = "prom.${baseName}";
|
||||||
paperless = "paper.${baseName}";
|
paperless = "paper.${baseName}";
|
||||||
secrets = "vault.${baseName}";
|
secrets = "vault.${baseName}";
|
||||||
@ -251,7 +231,6 @@
|
|||||||
content = "cloud.${baseName}";
|
content = "cloud.${baseName}";
|
||||||
books = "books.${baseName}";
|
books = "books.${baseName}";
|
||||||
download = "download.${baseName}";
|
download = "download.${baseName}";
|
||||||
status = "status.${baseName}";
|
|
||||||
transmission = "transmission.${baseName}";
|
transmission = "transmission.${baseName}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -261,12 +240,13 @@
|
|||||||
inputs.nur.overlay
|
inputs.nur.overlay
|
||||||
inputs.nix2vim.overlay
|
inputs.nix2vim.overlay
|
||||||
(import ./overlays/neovim-plugins.nix inputs)
|
(import ./overlays/neovim-plugins.nix inputs)
|
||||||
|
(import ./overlays/calibre-web.nix)
|
||||||
(import ./overlays/disko.nix inputs)
|
(import ./overlays/disko.nix inputs)
|
||||||
(import ./overlays/tree-sitter.nix inputs)
|
(import ./overlays/tree-sitter.nix inputs)
|
||||||
(import ./overlays/mpv-scripts.nix inputs)
|
(import ./overlays/mpv-scripts.nix inputs)
|
||||||
(import ./overlays/nextcloud-apps.nix inputs)
|
(import ./overlays/nextcloud-apps.nix inputs)
|
||||||
(import ./overlays/betterlockscreen.nix)
|
(import ./overlays/betterlockscreen.nix)
|
||||||
(import ./overlays/gh-collaborators.nix inputs)
|
(import ./overlays/gh-collaborators.nix)
|
||||||
(import ./overlays/ren-rep.nix inputs)
|
(import ./overlays/ren-rep.nix inputs)
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -339,7 +319,6 @@
|
|||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
format = "iso";
|
format = "iso";
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
pkgs-stable = import inputs.nixpkgs-stable { inherit system; };
|
|
||||||
pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; };
|
pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; };
|
||||||
};
|
};
|
||||||
modules = import ./hosts/arrow/modules.nix { inherit inputs globals overlays; };
|
modules = import ./hosts/arrow/modules.nix { inherit inputs globals overlays; };
|
||||||
@ -348,7 +327,6 @@
|
|||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
format = "amazon";
|
format = "amazon";
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
pkgs-stable = import inputs.nixpkgs-stable { inherit system; };
|
|
||||||
pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; };
|
pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; };
|
||||||
};
|
};
|
||||||
modules = import ./hosts/arrow/modules.nix { inherit inputs globals overlays; } ++ [
|
modules = import ./hosts/arrow/modules.nix { inherit inputs globals overlays; } ++ [
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
inputs.nixpkgs.lib.nixosSystem rec {
|
inputs.nixpkgs.lib.nixosSystem rec {
|
||||||
system = "aarch64-linux";
|
system = "aarch64-linux";
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
pkgs-stable = import inputs.nixpkgs-stable { inherit system; };
|
|
||||||
pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; };
|
pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; };
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
@ -80,9 +79,6 @@ inputs.nixpkgs.lib.nixosSystem rec {
|
|||||||
services.gitea.enable = true;
|
services.gitea.enable = true;
|
||||||
services.vaultwarden.enable = true;
|
services.vaultwarden.enable = true;
|
||||||
services.minecraft-server.enable = true; # Setup Minecraft server
|
services.minecraft-server.enable = true; # Setup Minecraft server
|
||||||
services.n8n.enable = true;
|
|
||||||
services.ntfy-sh.enable = true;
|
|
||||||
services.uptime-kuma.enable = true;
|
|
||||||
system.autoUpgrade.enable = true;
|
system.autoUpgrade.enable = true;
|
||||||
|
|
||||||
# Allows private remote access over the internet
|
# Allows private remote access over the internet
|
||||||
|
@ -34,6 +34,7 @@ inputs.darwin.lib.darwinSystem {
|
|||||||
dark = true;
|
dark = true;
|
||||||
};
|
};
|
||||||
mail.user = globals.user;
|
mail.user = globals.user;
|
||||||
|
mole.enable = true;
|
||||||
atuin.enable = true;
|
atuin.enable = true;
|
||||||
charm.enable = true;
|
charm.enable = true;
|
||||||
neovim.enable = true;
|
neovim.enable = true;
|
||||||
@ -53,7 +54,6 @@ inputs.darwin.lib.darwinSystem {
|
|||||||
_1password.enable = true;
|
_1password.enable = true;
|
||||||
slack.enable = true;
|
slack.enable = true;
|
||||||
wezterm.enable = true;
|
wezterm.enable = true;
|
||||||
yt-dlp.enable = true;
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,6 @@
|
|||||||
inputs.nixpkgs.lib.nixosSystem rec {
|
inputs.nixpkgs.lib.nixosSystem rec {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
pkgs-stable = import inputs.nixpkgs-stable { inherit system; };
|
|
||||||
pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; };
|
pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; };
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
@ -67,14 +66,6 @@ inputs.nixpkgs.lib.nixosSystem rec {
|
|||||||
devices = (import ../../disks/root.nix { disk = "/dev/nvme0n1"; });
|
devices = (import ../../disks/root.nix { disk = "/dev/nvme0n1"; });
|
||||||
};
|
};
|
||||||
|
|
||||||
zramSwap.enable = true;
|
|
||||||
swapDevices = [
|
|
||||||
{
|
|
||||||
device = "/swapfile";
|
|
||||||
size = 4 * 1024; # 4 GB
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.zfs = {
|
boot.zfs = {
|
||||||
# Automatically load the ZFS pool on boot
|
# Automatically load the ZFS pool on boot
|
||||||
extraPools = [ "tank" ];
|
extraPools = [ "tank" ];
|
||||||
@ -105,8 +96,6 @@ inputs.nixpkgs.lib.nixosSystem rec {
|
|||||||
cloudflare.enable = true;
|
cloudflare.enable = true;
|
||||||
dotfiles.enable = true;
|
dotfiles.enable = true;
|
||||||
arrs.enable = true;
|
arrs.enable = true;
|
||||||
filebrowser.enable = true;
|
|
||||||
services.audiobookshelf.enable = true;
|
|
||||||
services.bind.enable = true;
|
services.bind.enable = true;
|
||||||
services.caddy.enable = true;
|
services.caddy.enable = true;
|
||||||
services.jellyfin.enable = true;
|
services.jellyfin.enable = true;
|
||||||
|
@ -8,12 +8,8 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
inputs.nixpkgs.lib.nixosSystem rec {
|
inputs.nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = {
|
|
||||||
pkgs-stable = import inputs.nixpkgs-stable { inherit system; };
|
|
||||||
pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; };
|
|
||||||
};
|
|
||||||
modules = [
|
modules = [
|
||||||
globals
|
globals
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
@ -122,7 +118,6 @@ inputs.nixpkgs.lib.nixosSystem rec {
|
|||||||
dwarf-fortress.enable = true;
|
dwarf-fortress.enable = true;
|
||||||
enable = true;
|
enable = true;
|
||||||
steam.enable = true;
|
steam.enable = true;
|
||||||
moonlight.enable = true;
|
|
||||||
legendary.enable = true;
|
legendary.enable = true;
|
||||||
lutris.enable = true;
|
lutris.enable = true;
|
||||||
ryujinx.enable = true;
|
ryujinx.enable = true;
|
||||||
|
@ -22,9 +22,10 @@
|
|||||||
"1password-cli"
|
"1password-cli"
|
||||||
];
|
];
|
||||||
home-manager.users.${config.user} = {
|
home-manager.users.${config.user} = {
|
||||||
home.packages = [
|
home.packages = with pkgs; [
|
||||||
pkgs._1password
|
_1password-gui
|
||||||
] ++ (if pkgs.stdenv.isLinux then [ pkgs._1password-gui ] else [ ]);
|
_1password
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# https://1password.community/discussion/135462/firefox-extension-does-not-connect-to-linux-app
|
# https://1password.community/discussion/135462/firefox-extension-does-not-connect-to-linux-app
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
./firefox.nix
|
./firefox.nix
|
||||||
./kitty.nix
|
./kitty.nix
|
||||||
./media.nix
|
./media.nix
|
||||||
|
./mole.nix
|
||||||
./obsidian.nix
|
./obsidian.nix
|
||||||
./qbittorrent.nix
|
./qbittorrent.nix
|
||||||
./slack.nix
|
./slack.nix
|
||||||
|
@ -71,8 +71,6 @@
|
|||||||
"cookiebanners.ui.desktop.enabled" = true; # Reject cookie popups
|
"cookiebanners.ui.desktop.enabled" = true; # Reject cookie popups
|
||||||
"devtools.command-button-screenshot.enabled" = true; # Scrolling screenshot of entire page
|
"devtools.command-button-screenshot.enabled" = true; # Scrolling screenshot of entire page
|
||||||
"svg.context-properties.content.enabled" = true; # Sidebery styling
|
"svg.context-properties.content.enabled" = true; # Sidebery styling
|
||||||
"browser.tabs.hoverPreview.enabled" = false; # Disable tab previews
|
|
||||||
"browser.tabs.hoverPreview.showThumbnails" = false; # Disable tab previews
|
|
||||||
};
|
};
|
||||||
userChrome = ''
|
userChrome = ''
|
||||||
:root {
|
:root {
|
||||||
@ -159,15 +157,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Mimic nixpkgs package environment for read-only profiles.ini management
|
|
||||||
# From: https://github.com/booxter/home-manager/commit/dd1602e306fec366280f5953c5e1b553e3d9672a
|
|
||||||
home.sessionVariables = {
|
|
||||||
MOZ_LEGACY_PROFILES = 1;
|
|
||||||
MOZ_ALLOW_DOWNGRADE = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
# launchd.user.envVariables = config.home-manager.users.${config.user}.home.sessionVariables;
|
|
||||||
|
|
||||||
xdg.mimeApps = {
|
xdg.mimeApps = {
|
||||||
associations.added = {
|
associations.added = {
|
||||||
"text/html" = [ "firefox.desktop" ];
|
"text/html" = [ "firefox.desktop" ];
|
||||||
|
@ -34,13 +34,10 @@
|
|||||||
programs.rofi.terminal = lib.mkIf pkgs.stdenv.isLinux (lib.mkDefault "${pkgs.kitty}/bin/kitty");
|
programs.rofi.terminal = lib.mkIf pkgs.stdenv.isLinux (lib.mkDefault "${pkgs.kitty}/bin/kitty");
|
||||||
|
|
||||||
# Display images in the terminal
|
# Display images in the terminal
|
||||||
programs.fish.interactiveShellInit = # fish
|
programs.fish.shellAliases = {
|
||||||
''
|
icat = "kitty +kitten icat";
|
||||||
if test "$TERM" = "xterm-kitty"
|
ssh = "kitty +kitten ssh";
|
||||||
alias icat="kitty +kitten icat"
|
};
|
||||||
alias ssh="kitty +kitten ssh"
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
|
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
110
modules/common/applications/mole.nix
Normal file
110
modules/common/applications/mole.nix
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
# Build kdl-py
|
||||||
|
kdl-py = pkgs.python311.pkgs.buildPythonPackage rec {
|
||||||
|
pname = "kdl-py";
|
||||||
|
version = "1.2.0";
|
||||||
|
pyproject = true;
|
||||||
|
src = pkgs.fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
hash = "sha256-Y/P0bGJ33trc5E3PyUZyv25r8zMLkBIuATTCKFfimXM=";
|
||||||
|
};
|
||||||
|
build-system = [ pkgs.python311.pkgs.setuptools ];
|
||||||
|
# has no tests
|
||||||
|
doCheck = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
mole = pkgs.python311.pkgs.buildPythonPackage rec {
|
||||||
|
pname = "mole";
|
||||||
|
version = "0.7.1";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "eblume";
|
||||||
|
repo = pname;
|
||||||
|
rev = "30bb052a97050b1fa89c287855d834f7952b195a";
|
||||||
|
sha256 = "sha256-DUWsfyICCfFQ2ZQBYSQVoA3eLdKC8djUylKgGdHIyJo=";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
(builtins.toString (
|
||||||
|
pkgs.writeText "pyproject.toml.patch" ''
|
||||||
|
diff --git a/pyproject.toml b/pyproject.toml
|
||||||
|
index 12ce0f5..787e978 100644
|
||||||
|
--- a/pyproject.toml
|
||||||
|
+++ b/pyproject.toml
|
||||||
|
@@ -12,11 +12,11 @@ packages = [
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = "^3.11"
|
||||||
|
# Now back to the regular dependencies
|
||||||
|
-typer = {extras = ["all"], version = "^0.9"}
|
||||||
|
+typer = {extras = ["all"], version = "^0.12"}
|
||||||
|
todoist-api-python = "^2.1.3"
|
||||||
|
openai = "^1.2.4"
|
||||||
|
rich = "^13.4.2"
|
||||||
|
-watchdog = "^3.0.0"
|
||||||
|
+watchdog = "^4.0.0"
|
||||||
|
pydub = "^0.25.1"
|
||||||
|
requests = "^2.31.0"
|
||||||
|
pyyaml = "^6.0.1"
|
||||||
|
''
|
||||||
|
))
|
||||||
|
];
|
||||||
|
|
||||||
|
# Used during build time
|
||||||
|
nativeBuildInputs = [ pkgs.python311Packages.poetry-core ];
|
||||||
|
|
||||||
|
# Used during run time
|
||||||
|
buildInputs = [
|
||||||
|
pkgs._1password
|
||||||
|
pkgs.nb-cli
|
||||||
|
];
|
||||||
|
|
||||||
|
# Both build and run time
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
pkgs.python311Packages.typer
|
||||||
|
pkgs.python311Packages.todoist-api-python
|
||||||
|
pkgs.python311Packages.openai
|
||||||
|
pkgs.python311Packages.rich
|
||||||
|
pkgs.python311Packages.watchdog
|
||||||
|
pkgs.python311Packages.pydub
|
||||||
|
pkgs.python311Packages.requests
|
||||||
|
pkgs.python311Packages.pyyaml
|
||||||
|
pkgs.python311Packages.pydantic
|
||||||
|
pkgs.python311Packages.pendulum
|
||||||
|
kdl-py
|
||||||
|
pkgs.ffmpeg
|
||||||
|
];
|
||||||
|
|
||||||
|
build-system = [ pkgs.python311.pkgs.setuptools ];
|
||||||
|
|
||||||
|
# has no tests
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
|
||||||
|
options = {
|
||||||
|
mole = {
|
||||||
|
enable = lib.mkEnableOption {
|
||||||
|
description = "Enable Mole.";
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.mole.enable {
|
||||||
|
home-manager.users.${config.user} = {
|
||||||
|
home.packages = [ mole ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -119,9 +119,6 @@
|
|||||||
font = wezterm.font('${font}', { weight = 'Bold'}),
|
font = wezterm.font('${font}', { weight = 'Bold'}),
|
||||||
font_size = ${if pkgs.stdenv.isLinux then "14.0" else "18.0"},
|
font_size = ${if pkgs.stdenv.isLinux then "14.0" else "18.0"},
|
||||||
|
|
||||||
-- Fix color blocks instead of text
|
|
||||||
front_end = "WebGpu",
|
|
||||||
|
|
||||||
-- Tab Bar
|
-- Tab Bar
|
||||||
hide_tab_bar_if_only_one_tab = true,
|
hide_tab_bar_if_only_one_tab = true,
|
||||||
window_frame = {
|
window_frame = {
|
||||||
@ -172,7 +169,7 @@
|
|||||||
-- super-t open new tab in new dir
|
-- super-t open new tab in new dir
|
||||||
{
|
{
|
||||||
key = 't',
|
key = 't',
|
||||||
mods = ${if pkgs.stdenv.isDarwin then "'SUPER'" else "'ALT'"},
|
mods = 'SUPER',
|
||||||
action = wezterm.action.SpawnCommandInNewTab {
|
action = wezterm.action.SpawnCommandInNewTab {
|
||||||
cwd = wezterm.home_dir,
|
cwd = wezterm.home_dir,
|
||||||
},
|
},
|
||||||
|
@ -77,10 +77,6 @@
|
|||||||
default = [ ];
|
default = [ ];
|
||||||
};
|
};
|
||||||
hostnames = {
|
hostnames = {
|
||||||
files = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
description = "Hostname for files server (Filebrowser).";
|
|
||||||
};
|
|
||||||
git = lib.mkOption {
|
git = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
description = "Hostname for git server (Gitea).";
|
description = "Hostname for git server (Gitea).";
|
||||||
@ -133,14 +129,6 @@
|
|||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
description = "Hostname for n8n automation.";
|
description = "Hostname for n8n automation.";
|
||||||
};
|
};
|
||||||
notifications = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
description = "Hostname for push notification services (ntfy).";
|
|
||||||
};
|
|
||||||
status = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
description = "Hostname for status page (Uptime-Kuma).";
|
|
||||||
};
|
|
||||||
transmission = lib.mkOption {
|
transmission = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
description = "Hostname for peer2peer downloads (Transmission).";
|
description = "Hostname for peer2peer downloads (Transmission).";
|
||||||
|
@ -6,7 +6,6 @@
|
|||||||
plugins = [
|
plugins = [
|
||||||
pkgs.vimPlugins.bufferline-nvim
|
pkgs.vimPlugins.bufferline-nvim
|
||||||
pkgs.vimPlugins.vim-bbye # Better closing of buffers
|
pkgs.vimPlugins.vim-bbye # Better closing of buffers
|
||||||
pkgs.vimPlugins.snipe-nvim # Jump between open buffers
|
|
||||||
];
|
];
|
||||||
setup.bufferline = {
|
setup.bufferline = {
|
||||||
options = {
|
options = {
|
||||||
@ -16,7 +15,6 @@
|
|||||||
offsets = [ { filetype = "NvimTree"; } ];
|
offsets = [ { filetype = "NvimTree"; } ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
setup.snipe = { };
|
|
||||||
lua = ''
|
lua = ''
|
||||||
-- Move buffers
|
-- Move buffers
|
||||||
vim.keymap.set("n", "L", ":BufferLineCycleNext<CR>", { silent = true })
|
vim.keymap.set("n", "L", ":BufferLineCycleNext<CR>", { silent = true })
|
||||||
@ -24,7 +22,5 @@
|
|||||||
|
|
||||||
-- Kill buffer
|
-- Kill buffer
|
||||||
vim.keymap.set("n", "<Leader>x", " :Bdelete<CR>", { silent = true })
|
vim.keymap.set("n", "<Leader>x", " :Bdelete<CR>", { silent = true })
|
||||||
|
'';
|
||||||
-- Jump to buffer
|
|
||||||
vim.keymap.set("n", "gb", require("snipe").open_buffer_menu, { silent = true }) '';
|
|
||||||
}
|
}
|
||||||
|
@ -11,11 +11,6 @@
|
|||||||
options.terraform = lib.mkEnableOption "Whether to enable Terraform LSP";
|
options.terraform = lib.mkEnableOption "Whether to enable Terraform LSP";
|
||||||
options.github = lib.mkEnableOption "Whether to enable GitHub features";
|
options.github = lib.mkEnableOption "Whether to enable GitHub features";
|
||||||
options.kubernetes = lib.mkEnableOption "Whether to enable Kubernetes features";
|
options.kubernetes = lib.mkEnableOption "Whether to enable Kubernetes features";
|
||||||
options.nixosConfiguration = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
description = "Configuration to use for nixd options checking";
|
|
||||||
default = "default";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
plugins = [
|
plugins = [
|
||||||
@ -24,11 +19,9 @@
|
|||||||
pkgs.vimPlugins.fidget-nvim
|
pkgs.vimPlugins.fidget-nvim
|
||||||
pkgs.vimPlugins.nvim-lint
|
pkgs.vimPlugins.nvim-lint
|
||||||
pkgs.vimPlugins.vim-table-mode
|
pkgs.vimPlugins.vim-table-mode
|
||||||
pkgs.vimPlugins.tiny-inline-diagnostic-nvim
|
|
||||||
];
|
];
|
||||||
|
|
||||||
setup.fidget = { };
|
setup.fidget = { };
|
||||||
setup.tiny-inline-diagnostic = { };
|
|
||||||
|
|
||||||
use.lspconfig.lua_ls.setup = dsl.callWith {
|
use.lspconfig.lua_ls.setup = dsl.callWith {
|
||||||
settings = {
|
settings = {
|
||||||
@ -48,21 +41,6 @@
|
|||||||
use.lspconfig.nixd.setup = dsl.callWith {
|
use.lspconfig.nixd.setup = dsl.callWith {
|
||||||
cmd = [ "${pkgs.nixd}/bin/nixd" ];
|
cmd = [ "${pkgs.nixd}/bin/nixd" ];
|
||||||
capabilities = dsl.rawLua "require('cmp_nvim_lsp').default_capabilities()";
|
capabilities = dsl.rawLua "require('cmp_nvim_lsp').default_capabilities()";
|
||||||
# settings = {
|
|
||||||
# nixd = {
|
|
||||||
# options = {
|
|
||||||
# nixos = {
|
|
||||||
# expr = "(builtins.getFlake (\"git+file://\" + toString ./.)).nixosConfigurations.${config.nixosConfiguration}.options";
|
|
||||||
# };
|
|
||||||
# home-manager = {
|
|
||||||
# expr = "(builtins.getFlake (\"git+file://\" + toString ./.)).homeConfigurations.${config.nixosConfiguration}.options";
|
|
||||||
# };
|
|
||||||
# darwin = {
|
|
||||||
# expr = "(builtins.getFlake (\"git+file://\" + toString ./.)).darwinConfigurations.${config.nixosConfiguration}.options";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use.lspconfig.pyright.setup = dsl.callWith {
|
use.lspconfig.pyright.setup = dsl.callWith {
|
||||||
@ -93,9 +71,6 @@
|
|||||||
files = {
|
files = {
|
||||||
excludeDirs = [ ".direnv" ];
|
excludeDirs = [ ".direnv" ];
|
||||||
};
|
};
|
||||||
cargo = {
|
|
||||||
features = "all";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -158,9 +133,6 @@
|
|||||||
|
|
||||||
-- Prevent infinite log size (change this when debugging)
|
-- Prevent infinite log size (change this when debugging)
|
||||||
vim.lsp.set_log_level("off")
|
vim.lsp.set_log_level("off")
|
||||||
|
|
||||||
-- Hide buffer diagnostics (use tiny-inline-diagnostic.nvim instead)
|
|
||||||
vim.diagnostic.config({ virtual_text = false })
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -10,8 +10,7 @@
|
|||||||
pkgs.vimPlugins.vim-eunuch # File manipulation commands
|
pkgs.vimPlugins.vim-eunuch # File manipulation commands
|
||||||
pkgs.vimPlugins.vim-fugitive # Git commands
|
pkgs.vimPlugins.vim-fugitive # Git commands
|
||||||
pkgs.vimPlugins.vim-repeat # Better repeat using .
|
pkgs.vimPlugins.vim-repeat # Better repeat using .
|
||||||
pkgs.vimPlugins.vim-abolish # Keep capitalization in substitute (Subvert)
|
pkgs.vimPlugins.glow-nvim # Markdown preview popup
|
||||||
pkgs.vimPlugins.markview-nvim # Markdown preview
|
|
||||||
pkgs.vimPlugins.nvim-colorizer-lua # Hex color previews
|
pkgs.vimPlugins.nvim-colorizer-lua # Hex color previews
|
||||||
pkgs.vimPlugins.which-key-nvim # Keybind helper
|
pkgs.vimPlugins.which-key-nvim # Keybind helper
|
||||||
];
|
];
|
||||||
@ -22,7 +21,7 @@
|
|||||||
names = false;
|
names = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
setup.markview = { };
|
setup.glow = { };
|
||||||
setup.which-key = { };
|
setup.which-key = { };
|
||||||
|
|
||||||
vim.o = {
|
vim.o = {
|
||||||
@ -58,8 +57,8 @@
|
|||||||
|
|
||||||
# Better backup, swap and undo storage
|
# Better backup, swap and undo storage
|
||||||
vim.o.backup = true; # Easier to recover and more secure
|
vim.o.backup = true; # Easier to recover and more secure
|
||||||
vim.opt.undofile = true; # Keeps undos after quit
|
vim.bo.swapfile = false; # Instead of swaps, create backups
|
||||||
vim.opt.swapfile = false; # Instead of swaps, create backups
|
vim.bo.undofile = true; # Keeps undos after quit
|
||||||
vim.o.backupdir = dsl.rawLua ''vim.fn.expand("~/.local/state/nvim/backup//")'';
|
vim.o.backupdir = dsl.rawLua ''vim.fn.expand("~/.local/state/nvim/backup//")'';
|
||||||
vim.o.undodir = dsl.rawLua ''vim.fn.expand("~/.local/state/nvim/undo//")'';
|
vim.o.undodir = dsl.rawLua ''vim.fn.expand("~/.local/state/nvim/undo//")'';
|
||||||
|
|
||||||
|
@ -14,6 +14,11 @@
|
|||||||
open_mapping = dsl.rawLua "[[<c-\\>]]";
|
open_mapping = dsl.rawLua "[[<c-\\>]]";
|
||||||
hide_numbers = true;
|
hide_numbers = true;
|
||||||
direction = "float";
|
direction = "float";
|
||||||
|
float_opts = {
|
||||||
|
width = dsl.rawLua "vim.o.columns - 4";
|
||||||
|
height = dsl.rawLua "vim.o.lines - 4";
|
||||||
|
row = 0;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
lua = ''
|
lua = ''
|
||||||
|
@ -13,7 +13,6 @@ let
|
|||||||
terraform = config.terraform.enable;
|
terraform = config.terraform.enable;
|
||||||
github = true;
|
github = true;
|
||||||
kubernetes = config.kubernetes.enable;
|
kubernetes = config.kubernetes.enable;
|
||||||
nixosConfiguration = config.networking.hostName; # Used for Nixd
|
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
@ -51,9 +50,9 @@ in
|
|||||||
|
|
||||||
# Create a desktop option for launching Neovim from a file manager
|
# Create a desktop option for launching Neovim from a file manager
|
||||||
# (Requires launching the terminal and then executing Neovim)
|
# (Requires launching the terminal and then executing Neovim)
|
||||||
xdg.desktopEntries.nvim = lib.mkIf (pkgs.stdenv.isLinux && config.gui.enable) {
|
xdg.desktopEntries.nvim = lib.mkIf pkgs.stdenv.isLinux {
|
||||||
name = "Neovim wrapper";
|
name = "Neovim wrapper";
|
||||||
exec = "${config.home-manager.users.${config.user}.programs.rofi.terminal} nvim %F";
|
exec = "kitty nvim %F";
|
||||||
mimeType = [
|
mimeType = [
|
||||||
"text/plain"
|
"text/plain"
|
||||||
"text/markdown"
|
"text/markdown"
|
||||||
|
@ -32,7 +32,6 @@
|
|||||||
terraform ? false,
|
terraform ? false,
|
||||||
github ? false,
|
github ? false,
|
||||||
kubernetes ? false,
|
kubernetes ? false,
|
||||||
nixosConfiguration ? "default",
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -45,7 +44,6 @@ pkgs.neovimBuilder {
|
|||||||
terraform
|
terraform
|
||||||
github
|
github
|
||||||
kubernetes
|
kubernetes
|
||||||
nixosConfiguration
|
|
||||||
;
|
;
|
||||||
imports = [
|
imports = [
|
||||||
../config/align.nix
|
../config/align.nix
|
||||||
|
@ -6,15 +6,14 @@ BUCKET_NAME_PART_1="t2"
|
|||||||
BUCKET_NAME_PART_2="global"
|
BUCKET_NAME_PART_2="global"
|
||||||
BUCKET_NAME_PART_3="terraformstate"
|
BUCKET_NAME_PART_3="terraformstate"
|
||||||
|
|
||||||
PROJECT_ROOT=$(git rev-parse --show-toplevel)
|
WORKFLOW_FILE=".github/workflows/terraform.yml"
|
||||||
WORKFLOW_FILE="${PROJECT_ROOT}/.github/workflows/terraform.yml"
|
|
||||||
|
|
||||||
if [ ! -f "$WORKFLOW_FILE" ]; then
|
if [ ! -f $WORKFLOW_FILE ]; then
|
||||||
WORKFLOW_FILE="${PROJECT_ROOT}/.github/workflows/apply.yml"
|
WORKFLOW_FILE=".github/workflows/apply.yml"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AWS_ACCOUNT_NUMBER=$(
|
AWS_ACCOUNT_NUMBER=$(
|
||||||
awk '/aws_account_number: .*/ {print $2}' "$WORKFLOW_FILE" | # Grab account number
|
awk '/aws_account_number: .*/ {print $2}' $WORKFLOW_FILE | # Grab account number
|
||||||
echo "$(
|
echo "$(
|
||||||
read -r s
|
read -r s
|
||||||
s=${s//\'/}
|
s=${s//\'/}
|
||||||
@ -24,7 +23,7 @@ AWS_ACCOUNT_NUMBER=$(
|
|||||||
|
|
||||||
if [ -z "${AWS_ACCOUNT_NUMBER}" ]; then
|
if [ -z "${AWS_ACCOUNT_NUMBER}" ]; then
|
||||||
AWS_ACCOUNT_NUMBER=$(
|
AWS_ACCOUNT_NUMBER=$(
|
||||||
awk '/AWS_ACCOUNT_NUMBER: .*/ {print $2}' "$WORKFLOW_FILE" | # Grab account number
|
awk '/AWS_ACCOUNT_NUMBER: .*/ {print $2}' $WORKFLOW_FILE | # Grab account number
|
||||||
echo "$(
|
echo "$(
|
||||||
read -r s
|
read -r s
|
||||||
s=${s//\'/}
|
s=${s//\'/}
|
||||||
|
@ -76,10 +76,6 @@
|
|||||||
description = "Full git commit on notes";
|
description = "Full git commit on notes";
|
||||||
body = builtins.readFile ./functions/syncnotes.fish;
|
body = builtins.readFile ./functions/syncnotes.fish;
|
||||||
};
|
};
|
||||||
_which = {
|
|
||||||
description = "Identify the path to a program in the shell";
|
|
||||||
body = "command --search (string sub --start=2 $argv)";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
interactiveShellInit = ''
|
interactiveShellInit = ''
|
||||||
fish_vi_key_bindings
|
fish_vi_key_bindings
|
||||||
@ -105,18 +101,10 @@
|
|||||||
"-" = "cd -";
|
"-" = "cd -";
|
||||||
mkd = "mkdir -pv";
|
mkd = "mkdir -pv";
|
||||||
|
|
||||||
# Convert a program into its full path
|
|
||||||
"=" = {
|
|
||||||
position = "anywhere";
|
|
||||||
regex = "=\\w+";
|
|
||||||
function = "_which";
|
|
||||||
};
|
|
||||||
|
|
||||||
# System
|
# System
|
||||||
s = "sudo";
|
s = "sudo";
|
||||||
sc = "systemctl";
|
sc = "systemctl";
|
||||||
scs = "systemctl status";
|
scs = "systemctl status";
|
||||||
sca = "systemctl cat";
|
|
||||||
m = "make";
|
m = "make";
|
||||||
t = "trash";
|
t = "trash";
|
||||||
|
|
||||||
|
@ -113,11 +113,6 @@ in
|
|||||||
gpd = "git push origin -d";
|
gpd = "git push origin -d";
|
||||||
gbd = "git branch -d";
|
gbd = "git branch -d";
|
||||||
gbD = "git branch -D";
|
gbD = "git branch -D";
|
||||||
gdd = {
|
|
||||||
position = "anywhere";
|
|
||||||
setCursor = true;
|
|
||||||
expansion = "BRANCH=% git push origin -d $BRANCH and git branch -d $BRANCH";
|
|
||||||
};
|
|
||||||
gr = "git reset";
|
gr = "git reset";
|
||||||
grh = "git reset --hard";
|
grh = "git reset --hard";
|
||||||
gm = "git merge";
|
gm = "git merge";
|
||||||
@ -163,13 +158,6 @@ in
|
|||||||
and git branch -D $branch
|
and git branch -D $branch
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
git-delete-both = {
|
|
||||||
argumentNames = "branch";
|
|
||||||
body = ''
|
|
||||||
git push origin -d $branch
|
|
||||||
git branch -d $branch
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
git-merge-fuzzy = {
|
git-merge-fuzzy = {
|
||||||
body = ''
|
body = ''
|
||||||
set branch (git-fuzzy-branch "merge from...")
|
set branch (git-fuzzy-branch "merge from...")
|
||||||
|
@ -12,36 +12,34 @@
|
|||||||
home.packages =
|
home.packages =
|
||||||
let
|
let
|
||||||
ldap_scheme = "ldaps";
|
ldap_scheme = "ldaps";
|
||||||
|
magic_number = "2";
|
||||||
|
magic_end_seq = "corp";
|
||||||
magic_prefix = "take";
|
magic_prefix = "take";
|
||||||
|
ldap_host = "${magic_prefix}${magic_number}.t${magic_number}.${magic_end_seq}";
|
||||||
ldap_port = 636;
|
ldap_port = 636;
|
||||||
|
ldap_dc_1 = "${magic_prefix}${magic_number}";
|
||||||
|
ldap_dc_2 = "t${magic_number}";
|
||||||
|
ldap_dc_3 = magic_end_seq;
|
||||||
ldap_script = pkgs.writeShellScriptBin "ldap" ''
|
ldap_script = pkgs.writeShellScriptBin "ldap" ''
|
||||||
if ! [ "$LDAP_HOST" ]; then
|
# if ! [ "$LDAP_HOST" ]; then
|
||||||
echo "No LDAP_HOST specified!"
|
# echo "No LDAP_HOST specified!"
|
||||||
exit 1
|
# exit 1
|
||||||
fi
|
# fi
|
||||||
SEARCH_FILTER="$@"
|
SEARCH_FILTER="$@"
|
||||||
ldapsearch -LLL \
|
ldapsearch -LLL \
|
||||||
-B -o ldif-wrap=no \
|
-B -o ldif-wrap=no \
|
||||||
-H "${ldap_scheme}://''${LDAP_HOST}:${builtins.toString ldap_port}" \
|
-H "${ldap_scheme}://${ldap_host}:${builtins.toString ldap_port}" \
|
||||||
-D "${pkgs.lib.toUpper magic_prefix}2\\${pkgs.lib.toLower config.user}" \
|
-D "${pkgs.lib.toUpper magic_prefix}${magic_number}\\${pkgs.lib.toLower config.user}" \
|
||||||
-w "$(${pkgs._1password}/bin/op item get T2 --fields label=password)" \
|
-w "$(${pkgs._1password}/bin/op item get T${magic_number} --fields label=password)" \
|
||||||
-b "dc=''${LDAP_HOST//./,dc=}" \
|
-b "DC=${ldap_dc_1},DC=${ldap_dc_2},DC=${ldap_dc_3}" \
|
||||||
-s "sub" -x "(cn=''${SEARCH_FILTER})" \
|
-s "sub" -x "(cn=$SEARCH_FILTER)" \
|
||||||
| jq --slurp \
|
| jq --slurp \
|
||||||
--raw-input 'split("\n\n")|map(split("\n")|map(select(.[0:1]!="#" and length>0)) |select(length > 0)|map(capture("^(?<key>[^:]*:?): *(?<value>.*)") |if .key[-1:.key|length] == ":" then .key=.key[0:-1]|.value=(.value|@base64d) else . end)| group_by(.key) | map({key:.[0].key,value:(if .|length > 1 then [.[].value] else .[].value end)}) | from_entries)' | jq -r 'del(.[].thumbnailPhoto)'
|
--raw-input 'split("\n\n")|map(split("\n")|map(select(.[0:1]!="#" and length>0)) |select(length > 0)|map(capture("^(?<key>[^:]*:?): *(?<value>.*)") |if .key[-1:.key|length] == ":" then .key=.key[0:-1]|.value=(.value|@base64d) else . end)| group_by(.key) | map({key:.[0].key,value:(if .|length > 1 then [.[].value] else .[].value end)}) | from_entries)' | jq -r 'del(.[].thumbnailPhoto)'
|
||||||
'';
|
'';
|
||||||
ldapm_script = pkgs.writeShellScriptBin "ldapm" ''
|
ldapm_script = pkgs.writeShellScriptBin "ldapm" ''
|
||||||
if ! [ "$LDAP_HOST" ]; then
|
|
||||||
echo "No LDAP_HOST specified!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
${ldap_script}/bin/ldap "$@" | jq '[ .[].memberOf] | add'
|
${ldap_script}/bin/ldap "$@" | jq '[ .[].memberOf] | add'
|
||||||
'';
|
'';
|
||||||
ldapg_script = pkgs.writeShellScriptBin "ldapg" ''
|
ldapg_script = pkgs.writeShellScriptBin "ldapg" ''
|
||||||
if ! [ "$LDAP_HOST" ]; then
|
|
||||||
echo "No LDAP_HOST specified!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
${ldap_script}/bin/ldap "$@" | jq '[ .[].member] | add'
|
${ldap_script}/bin/ldap "$@" | jq '[ .[].member] | add'
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
|
@ -23,8 +23,6 @@
|
|||||||
|
|
||||||
system = {
|
system = {
|
||||||
|
|
||||||
stateVersion = 5;
|
|
||||||
|
|
||||||
keyboard = {
|
keyboard = {
|
||||||
remapCapsLockToControl = true;
|
remapCapsLockToControl = true;
|
||||||
enableKeyMapping = true; # Allows for skhd
|
enableKeyMapping = true; # Allows for skhd
|
||||||
@ -108,6 +106,7 @@
|
|||||||
"${pkgs.discord}/Applications/Discord.app"
|
"${pkgs.discord}/Applications/Discord.app"
|
||||||
"${pkgs.obsidian}/Applications/Obsidian.app"
|
"${pkgs.obsidian}/Applications/Obsidian.app"
|
||||||
"${pkgs.wezterm}/Applications/WezTerm.app"
|
"${pkgs.wezterm}/Applications/WezTerm.app"
|
||||||
|
"/System/Applications/System Settings.app"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -14,9 +14,6 @@
|
|||||||
# shell = pkgs.fish; # Default shell
|
# shell = pkgs.fish; # Default shell
|
||||||
};
|
};
|
||||||
|
|
||||||
# This might fix the shell issues
|
|
||||||
# users.knownUsers = [ config.user ];
|
|
||||||
|
|
||||||
home-manager.users.${config.user} = {
|
home-manager.users.${config.user} = {
|
||||||
|
|
||||||
# Default shell setting doesn't work
|
# Default shell setting doesn't work
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
pkgs.visidata # CSV inspector
|
pkgs.visidata # CSV inspector
|
||||||
pkgs.dos2unix # Convert Windows text files
|
pkgs.dos2unix # Convert Windows text files
|
||||||
pkgs.inetutils # Includes telnet
|
pkgs.inetutils # Includes telnet
|
||||||
|
pkgs.youtube-dl # Convert web videos
|
||||||
pkgs.pandoc # Convert text documents
|
pkgs.pandoc # Convert text documents
|
||||||
pkgs.mpd # TUI slideshows
|
pkgs.mpd # TUI slideshows
|
||||||
pkgs.mpv # Video player
|
pkgs.mpv # Video player
|
||||||
@ -26,14 +27,12 @@
|
|||||||
pkgs.awscli2
|
pkgs.awscli2
|
||||||
pkgs.ssm-session-manager-plugin
|
pkgs.ssm-session-manager-plugin
|
||||||
pkgs.awslogs
|
pkgs.awslogs
|
||||||
pkgs.stu # TUI for AWS S3
|
|
||||||
pkgs.google-cloud-sdk
|
pkgs.google-cloud-sdk
|
||||||
pkgs.vault-bin
|
pkgs.vault-bin
|
||||||
pkgs.consul
|
pkgs.consul
|
||||||
pkgs.noti # Create notifications programmatically
|
pkgs.noti # Create notifications programmatically
|
||||||
pkgs.ipcalc # Make IP network calculations
|
pkgs.ipcalc # Make IP network calculations
|
||||||
pkgs.teams
|
pkgs.teams
|
||||||
pkgs.cloudflared # Allow connecting to Cloudflare tunnels
|
|
||||||
(pkgs.writeShellApplication {
|
(pkgs.writeShellApplication {
|
||||||
name = "ocr";
|
name = "ocr";
|
||||||
runtimeInputs = [ pkgs.tesseract ];
|
runtimeInputs = [ pkgs.tesseract ];
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
|
|
||||||
options = {
|
|
||||||
calendar = {
|
|
||||||
enable = lib.mkEnableOption {
|
|
||||||
description = "Enable calendar.";
|
|
||||||
default = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf (config.gui.enable && config.calendar.enable) {
|
|
||||||
home-manager.users.${config.user} = {
|
|
||||||
|
|
||||||
accounts.calendar.accounts.default = {
|
|
||||||
basePath = "other/calendars"; # Where to save calendars in ~ directory
|
|
||||||
name = "personal";
|
|
||||||
local.type = "filesystem";
|
|
||||||
primary = true;
|
|
||||||
remote = {
|
|
||||||
passwordCommand = [ "" ];
|
|
||||||
type = "caldav";
|
|
||||||
url = "https://${config.hostnames.content}/remote.php/dav/principals/users/${config.user}";
|
|
||||||
userName = config.user;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs; [ gnome-calendar ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -2,7 +2,6 @@
|
|||||||
{
|
{
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./calendar.nix
|
|
||||||
./calibre.nix
|
./calibre.nix
|
||||||
./nautilus.nix
|
./nautilus.nix
|
||||||
];
|
];
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
# Quick preview with spacebar
|
# Quick preview with spacebar
|
||||||
services.gnome.sushi.enable = true;
|
services.gnome.sushi.enable = true;
|
||||||
environment.systemPackages = [ pkgs.nautilus ];
|
environment.systemPackages = [ pkgs.gnome.nautilus ];
|
||||||
|
|
||||||
home-manager.users.${config.user} = {
|
home-manager.users.${config.user} = {
|
||||||
|
|
||||||
@ -28,13 +28,13 @@
|
|||||||
xsession.windowManager.i3.config.keybindings = {
|
xsession.windowManager.i3.config.keybindings = {
|
||||||
"${
|
"${
|
||||||
config.home-manager.users.${config.user}.xsession.windowManager.i3.config.modifier
|
config.home-manager.users.${config.user}.xsession.windowManager.i3.config.modifier
|
||||||
}+n" = "exec --no-startup-id ${pkgs.nautilus}/bin/nautilus";
|
}+n" = "exec --no-startup-id ${pkgs.gnome.nautilus}/bin/nautilus";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Generates a QR code and previews it with sushi
|
# Generates a QR code and previews it with sushi
|
||||||
programs.fish.functions = {
|
programs.fish.functions = {
|
||||||
qr = {
|
qr = {
|
||||||
body = "${pkgs.qrencode}/bin/qrencode $argv[1] -o /tmp/qr.png | ${pkgs.sushi}/bin/sushi /tmp/qr.png";
|
body = "${pkgs.qrencode}/bin/qrencode $argv[1] -o /tmp/qr.png | ${pkgs.gnome.sushi}/bin/sushi /tmp/qr.png";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
./legendary.nix
|
./legendary.nix
|
||||||
./lutris.nix
|
./lutris.nix
|
||||||
./minecraft-server.nix
|
./minecraft-server.nix
|
||||||
./moonlight.nix
|
|
||||||
./ryujinx.nix
|
./ryujinx.nix
|
||||||
./steam.nix
|
./steam.nix
|
||||||
];
|
];
|
||||||
|
@ -9,10 +9,7 @@
|
|||||||
options.gaming.dwarf-fortress.enable = lib.mkEnableOption "Dwarf Fortress free edition.";
|
options.gaming.dwarf-fortress.enable = lib.mkEnableOption "Dwarf Fortress free edition.";
|
||||||
|
|
||||||
config = lib.mkIf config.gaming.dwarf-fortress.enable {
|
config = lib.mkIf config.gaming.dwarf-fortress.enable {
|
||||||
unfreePackages = [
|
unfreePackages = [ "dwarf-fortress" ];
|
||||||
"dwarf-fortress"
|
|
||||||
"phoebus-theme"
|
|
||||||
];
|
|
||||||
environment.systemPackages =
|
environment.systemPackages =
|
||||||
let
|
let
|
||||||
dfDesktopItem = pkgs.makeDesktopItem {
|
dfDesktopItem = pkgs.makeDesktopItem {
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
|
|
||||||
options.gaming.moonlight.enable = lib.mkEnableOption "Enable Moonlight game streaming client.";
|
|
||||||
|
|
||||||
config = lib.mkIf config.gaming.moonlight.enable {
|
|
||||||
environment.systemPackages = with pkgs; [ moonlight-qt ];
|
|
||||||
};
|
|
||||||
}
|
|
@ -42,7 +42,7 @@
|
|||||||
module-margin = 1;
|
module-margin = 1;
|
||||||
modules-left = "i3";
|
modules-left = "i3";
|
||||||
modules-center = "xwindow";
|
modules-center = "xwindow";
|
||||||
modules-right = "mailcount network pulseaudio date power";
|
modules-right = "mailcount network pulseaudio date keyboard power";
|
||||||
cursor-click = "pointer";
|
cursor-click = "pointer";
|
||||||
cursor-scroll = "ns-resize";
|
cursor-scroll = "ns-resize";
|
||||||
enable-ipc = true;
|
enable-ipc = true;
|
||||||
@ -209,6 +209,12 @@
|
|||||||
label-foreground = config.theme.colors.base06;
|
label-foreground = config.theme.colors.base06;
|
||||||
# format-background = colors.background;
|
# format-background = colors.background;
|
||||||
};
|
};
|
||||||
|
"module/keyboard" = {
|
||||||
|
type = "custom/text";
|
||||||
|
content = "";
|
||||||
|
click-left = "doas systemctl restart keyd";
|
||||||
|
content-foreground = config.theme.colors.base04;
|
||||||
|
};
|
||||||
"module/power" = {
|
"module/power" = {
|
||||||
type = "custom/text";
|
type = "custom/text";
|
||||||
content = " ";
|
content = " ";
|
||||||
|
@ -36,6 +36,8 @@ in
|
|||||||
{
|
{
|
||||||
|
|
||||||
config = lib.mkIf (pkgs.stdenv.isLinux && config.gui.enable) {
|
config = lib.mkIf (pkgs.stdenv.isLinux && config.gui.enable) {
|
||||||
|
sound.enable = true;
|
||||||
|
|
||||||
# Enable PipeWire
|
# Enable PipeWire
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -1,4 +1,9 @@
|
|||||||
{ config, lib, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
|
|
||||||
config = lib.mkIf config.physical {
|
config = lib.mkIf config.physical {
|
||||||
@ -12,29 +17,23 @@
|
|||||||
autoRepeatInterval = 40;
|
autoRepeatInterval = 40;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Swap Caps-Lock with Escape when pressed or LCtrl when held/combined with others
|
# Use capslock as escape and/or control
|
||||||
# Inspired by: https://www.youtube.com/watch?v=XuQVbZ0wENE
|
services.keyd = {
|
||||||
services.kanata = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
keyboards.default = {
|
keyboards = {
|
||||||
devices = [
|
default = {
|
||||||
"/dev/input/by-id/usb-Logitech_Logitech_G710_Keyboard-event-kbd"
|
ids = [ "*" ];
|
||||||
"/dev/input/by-id/usb-Logitech_Logitech_G710_Keyboard-if01-event-kbd"
|
settings = {
|
||||||
];
|
main = {
|
||||||
extraDefCfg = "process-unmapped-keys yes";
|
capslock = "overload(control, esc)";
|
||||||
config = ''
|
|
||||||
(defsrc
|
|
||||||
caps
|
|
||||||
)
|
|
||||||
(defalias
|
|
||||||
escctrl (tap-hold-press 1000 1000 esc lctrl)
|
|
||||||
)
|
|
||||||
(deflayer base
|
|
||||||
@escctrl
|
|
||||||
)
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# For some reason, keyd doesn't restart properly when updating
|
||||||
|
system.activationScripts.keyd.text = "${pkgs.systemd}/bin/systemctl restart keyd.service";
|
||||||
|
|
||||||
# Enable num lock on login
|
# Enable num lock on login
|
||||||
home-manager.users.${config.user}.xsession.numlock.enable = true;
|
home-manager.users.${config.user}.xsession.numlock.enable = true;
|
||||||
|
@ -21,15 +21,5 @@
|
|||||||
accelProfile = "flat";
|
accelProfile = "flat";
|
||||||
accelSpeed = "1.15";
|
accelSpeed = "1.15";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Cursor
|
|
||||||
home-manager.users.${config.user}.home.pointerCursor = {
|
|
||||||
name = "Adwaita";
|
|
||||||
package = pkgs.adwaita-icon-theme;
|
|
||||||
size = 24;
|
|
||||||
gtk.enable = true;
|
|
||||||
x11.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
{
|
{ config, lib, ... }:
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
{
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
@ -13,7 +8,7 @@
|
|||||||
config = lib.mkIf (config.server && config.zfs.enable) {
|
config = lib.mkIf (config.server && config.zfs.enable) {
|
||||||
|
|
||||||
# Only use compatible Linux kernel, since ZFS can be behind
|
# Only use compatible Linux kernel, since ZFS can be behind
|
||||||
boot.kernelPackages = pkgs.linuxPackages; # Defaults to latest LTS
|
boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
|
||||||
boot.kernelParams = [ "nohibernate" ];
|
boot.kernelParams = [ "nohibernate" ];
|
||||||
boot.supportedFilesystems = [ "zfs" ];
|
boot.supportedFilesystems = [ "zfs" ];
|
||||||
services.prometheus.exporters.zfs.enable = config.prometheus.exporters.enable;
|
services.prometheus.exporters.zfs.enable = config.prometheus.exporters.enable;
|
||||||
|
@ -14,11 +14,6 @@ let
|
|||||||
url = "localhost:7878";
|
url = "localhost:7878";
|
||||||
apiKey = config.secrets.radarrApiKey.dest;
|
apiKey = config.secrets.radarrApiKey.dest;
|
||||||
};
|
};
|
||||||
readarr = {
|
|
||||||
exportarrPort = "9711";
|
|
||||||
url = "localhost:8787";
|
|
||||||
apiKey = config.secrets.readarrApiKey.dest;
|
|
||||||
};
|
|
||||||
sonarr = {
|
sonarr = {
|
||||||
exportarrPort = "9708";
|
exportarrPort = "9708";
|
||||||
url = "localhost:8989";
|
url = "localhost:8989";
|
||||||
@ -66,10 +61,6 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
group = "media";
|
group = "media";
|
||||||
};
|
};
|
||||||
readarr = {
|
|
||||||
enable = true;
|
|
||||||
group = "media";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Create a media group to be shared between services
|
# Create a media group to be shared between services
|
||||||
@ -119,21 +110,6 @@ in
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
{
|
|
||||||
group = "download";
|
|
||||||
match = [
|
|
||||||
{
|
|
||||||
host = [ config.hostnames.download ];
|
|
||||||
path = [ "/readarr*" ];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
handle = [
|
|
||||||
{
|
|
||||||
handler = "reverse_proxy";
|
|
||||||
upstreams = [ { dial = arrConfig.readarr.url; } ];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
group = "download";
|
group = "download";
|
||||||
match = [
|
match = [
|
||||||
@ -247,11 +223,6 @@ in
|
|||||||
dest = "/var/private/radarr-api";
|
dest = "/var/private/radarr-api";
|
||||||
prefix = "API_KEY=";
|
prefix = "API_KEY=";
|
||||||
};
|
};
|
||||||
secrets.readarrApiKey = {
|
|
||||||
source = ../../../private/radarr-api-key.age;
|
|
||||||
dest = "/var/private/readarr-api";
|
|
||||||
prefix = "API_KEY=";
|
|
||||||
};
|
|
||||||
secrets.sonarrApiKey = {
|
secrets.sonarrApiKey = {
|
||||||
source = ../../../private/sonarr-api-key.age;
|
source = ../../../private/sonarr-api-key.age;
|
||||||
dest = "/var/private/sonarr-api";
|
dest = "/var/private/sonarr-api";
|
||||||
|
@ -1,44 +0,0 @@
|
|||||||
{ config, lib, ... }:
|
|
||||||
{
|
|
||||||
|
|
||||||
options = {
|
|
||||||
hostnames.audiobooks = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
description = "Hostname for audiobook server (Audiobookshelf).";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.services.audiobookshelf.enable {
|
|
||||||
|
|
||||||
services.audiobookshelf = {
|
|
||||||
dataDir = "audiobookshelf";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Allow web traffic to Caddy
|
|
||||||
caddy.routes = [
|
|
||||||
{
|
|
||||||
match = [ { host = [ config.hostnames.audiobooks ]; } ];
|
|
||||||
handle = [
|
|
||||||
{
|
|
||||||
handler = "reverse_proxy";
|
|
||||||
upstreams = [ { dial = "localhost:${builtins.toString config.services.audiobookshelf.port}"; } ];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
# Configure Cloudflare DNS to point to this machine
|
|
||||||
services.cloudflare-dyndns.domains = [ config.hostnames.audiobooks ];
|
|
||||||
|
|
||||||
# Grant user access to Audiobookshelf directories
|
|
||||||
users.users.${config.user}.extraGroups = [ config.services.audiobookshelf.group ];
|
|
||||||
|
|
||||||
# Grant audiobookshelf access to media and Calibre directories
|
|
||||||
users.users.${config.services.audiobookshelf.user}.extraGroups = [
|
|
||||||
"media"
|
|
||||||
"calibre-web"
|
|
||||||
];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
@ -44,10 +44,6 @@
|
|||||||
settings = { };
|
settings = { };
|
||||||
};
|
};
|
||||||
|
|
||||||
# Broken on 2024-08-23
|
|
||||||
# https://github.com/NixOS/nixpkgs/commit/0875d0ce1c778f344cd2377a5337a45385d6ffa0
|
|
||||||
nixpkgs.config.permittedInsecurePackages = [ "litestream-0.3.13" ];
|
|
||||||
|
|
||||||
# Wait for secret to exist
|
# Wait for secret to exist
|
||||||
systemd.services.litestream = {
|
systemd.services.litestream = {
|
||||||
after = [ "backup-secret.service" ];
|
after = [ "backup-secret.service" ];
|
||||||
|
@ -46,7 +46,7 @@
|
|||||||
|
|
||||||
# Force Caddy to 403 if not coming from allowlisted source
|
# Force Caddy to 403 if not coming from allowlisted source
|
||||||
caddy.cidrAllowlist = [ "127.0.0.1/32" ];
|
caddy.cidrAllowlist = [ "127.0.0.1/32" ];
|
||||||
caddy.routes = lib.mkBefore [
|
caddy.routes = [
|
||||||
{
|
{
|
||||||
match = [ { not = [ { remote_ip.ranges = config.caddy.cidrAllowlist; } ]; } ];
|
match = [ { not = [ { remote_ip.ranges = config.caddy.cidrAllowlist; } ]; } ];
|
||||||
handle = [
|
handle = [
|
||||||
@ -58,26 +58,7 @@
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
services.caddy =
|
services.caddy = {
|
||||||
let
|
|
||||||
default_logger_name = "other";
|
|
||||||
roll_size_mb = 25;
|
|
||||||
# Extract list of hostnames (fqdns) from current caddy routes
|
|
||||||
getHostnameFromMatch = match: if (lib.hasAttr "host" match) then match.host else [ ];
|
|
||||||
getHostnameFromRoute =
|
|
||||||
route:
|
|
||||||
if (lib.hasAttr "match" route) then (lib.concatMap getHostnameFromMatch route.match) else [ ];
|
|
||||||
hostnames_non_unique = lib.concatMap getHostnameFromRoute config.caddy.routes;
|
|
||||||
hostnames = lib.unique hostnames_non_unique;
|
|
||||||
# Create attrset of subdomains to their fqdns
|
|
||||||
hostname_map = builtins.listToAttrs (
|
|
||||||
map (hostname: {
|
|
||||||
name = builtins.head (lib.splitString "." hostname);
|
|
||||||
value = hostname;
|
|
||||||
}) hostnames
|
|
||||||
);
|
|
||||||
in
|
|
||||||
{
|
|
||||||
adapter = "''"; # Required to enable JSON
|
adapter = "''"; # Required to enable JSON
|
||||||
configFile = pkgs.writeText "Caddyfile" (
|
configFile = pkgs.writeText "Caddyfile" (
|
||||||
builtins.toJSON {
|
builtins.toJSON {
|
||||||
@ -88,124 +69,30 @@
|
|||||||
routes = config.caddy.routes;
|
routes = config.caddy.routes;
|
||||||
errors.routes = config.caddy.blocks;
|
errors.routes = config.caddy.blocks;
|
||||||
|
|
||||||
# Uncommenting collects access logs
|
logs = { }; # Uncommenting collects access logs
|
||||||
logs = {
|
|
||||||
inherit default_logger_name;
|
|
||||||
# Invert hostnames keys and values
|
|
||||||
logger_names = lib.mapAttrs' (name: value: {
|
|
||||||
name = value;
|
|
||||||
value = name;
|
|
||||||
}) hostname_map;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
apps.http.servers.metrics = { }; # Enables Prometheus metrics
|
apps.http.servers.metrics = { }; # Enables Prometheus metrics
|
||||||
apps.tls.automation.policies = config.caddy.tlsPolicies;
|
apps.tls.automation.policies = config.caddy.tlsPolicies;
|
||||||
|
|
||||||
# Setup logging to journal and files
|
# Setup logging to file
|
||||||
logging.logs =
|
logging.logs.main = {
|
||||||
{
|
encoder = {
|
||||||
# System logs and catch-all
|
format = "console";
|
||||||
# Must be called `default` to override Caddy's built-in default logger
|
};
|
||||||
default = {
|
writer = {
|
||||||
|
output = "file";
|
||||||
|
filename = "${config.services.caddy.logDir}/caddy.log";
|
||||||
|
roll = true;
|
||||||
|
roll_size_mb = 1;
|
||||||
|
};
|
||||||
level = "INFO";
|
level = "INFO";
|
||||||
encoder.format = "console";
|
|
||||||
writer = {
|
|
||||||
output = "stderr";
|
|
||||||
};
|
};
|
||||||
exclude = (map (hostname: "http.log.access.${hostname}") (builtins.attrNames hostname_map)) ++ [
|
|
||||||
"http.log.access.${default_logger_name}"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
# This is for the default access logs (anything not captured by hostname)
|
|
||||||
other = {
|
|
||||||
level = "INFO";
|
|
||||||
encoder.format = "json";
|
|
||||||
writer = {
|
|
||||||
output = "file";
|
|
||||||
filename = "${config.services.caddy.logDir}/other.log";
|
|
||||||
roll = true;
|
|
||||||
inherit roll_size_mb;
|
|
||||||
};
|
|
||||||
include = [ "http.log.access.${default_logger_name}" ];
|
|
||||||
};
|
|
||||||
# This is for using the Caddy API, which will probably never happen
|
|
||||||
admin = {
|
|
||||||
level = "INFO";
|
|
||||||
encoder.format = "json";
|
|
||||||
writer = {
|
|
||||||
output = "file";
|
|
||||||
filename = "${config.services.caddy.logDir}/admin.log";
|
|
||||||
roll = true;
|
|
||||||
inherit roll_size_mb;
|
|
||||||
};
|
|
||||||
include = [ "admin" ];
|
|
||||||
};
|
|
||||||
# This is for TLS cert management tracking
|
|
||||||
tls = {
|
|
||||||
level = "INFO";
|
|
||||||
encoder.format = "json";
|
|
||||||
writer = {
|
|
||||||
output = "file";
|
|
||||||
filename = "${config.services.caddy.logDir}/tls.log";
|
|
||||||
roll = true;
|
|
||||||
inherit roll_size_mb;
|
|
||||||
};
|
|
||||||
include = [ "tls" ];
|
|
||||||
};
|
|
||||||
# This is for debugging
|
|
||||||
debug = {
|
|
||||||
level = "DEBUG";
|
|
||||||
encoder.format = "json";
|
|
||||||
writer = {
|
|
||||||
output = "file";
|
|
||||||
filename = "${config.services.caddy.logDir}/debug.log";
|
|
||||||
roll = true;
|
|
||||||
roll_keep = 1;
|
|
||||||
inherit roll_size_mb;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
# These are the access logs for individual hostnames
|
|
||||||
// (lib.mapAttrs (name: value: {
|
|
||||||
level = "INFO";
|
|
||||||
encoder.format = "json";
|
|
||||||
writer = {
|
|
||||||
output = "file";
|
|
||||||
filename = "${config.services.caddy.logDir}/${name}-access.log";
|
|
||||||
roll = true;
|
|
||||||
inherit roll_size_mb;
|
|
||||||
};
|
|
||||||
include = [ "http.log.access.${name}" ];
|
|
||||||
}) hostname_map)
|
|
||||||
# We also capture just the errors separately for easy debugging
|
|
||||||
// (lib.mapAttrs' (name: value: {
|
|
||||||
name = "${name}-error";
|
|
||||||
value = {
|
|
||||||
level = "ERROR";
|
|
||||||
encoder.format = "json";
|
|
||||||
writer = {
|
|
||||||
output = "file";
|
|
||||||
filename = "${config.services.caddy.logDir}/${name}-error.log";
|
|
||||||
roll = true;
|
|
||||||
inherit roll_size_mb;
|
|
||||||
};
|
|
||||||
include = [ "http.log.access.${name}" ];
|
|
||||||
};
|
|
||||||
}) hostname_map);
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.caddy.serviceConfig = {
|
|
||||||
|
|
||||||
# Allows Caddy to serve lower ports (443, 80)
|
# Allows Caddy to serve lower ports (443, 80)
|
||||||
AmbientCapabilities = "CAP_NET_BIND_SERVICE";
|
systemd.services.caddy.serviceConfig.AmbientCapabilities = "CAP_NET_BIND_SERVICE";
|
||||||
|
|
||||||
# Prevent flooding of logs by rate-limiting
|
|
||||||
LogRateLimitIntervalSec = "5s"; # Limit period
|
|
||||||
LogRateLimitBurst = 100; # Limit threshold
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Required for web traffic to reach this machine
|
# Required for web traffic to reach this machine
|
||||||
networking.firewall.allowedTCPPorts = [
|
networking.firewall.allowedTCPPorts = [
|
||||||
|
@ -78,8 +78,6 @@ in
|
|||||||
issuers = [
|
issuers = [
|
||||||
{
|
{
|
||||||
module = "acme";
|
module = "acme";
|
||||||
email = "acme@${config.mail.server}";
|
|
||||||
account_key = "{env.ACME_ACCOUNT_KEY}";
|
|
||||||
challenges = {
|
challenges = {
|
||||||
dns = {
|
dns = {
|
||||||
provider = {
|
provider = {
|
||||||
@ -94,18 +92,7 @@ in
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
# Allow Caddy to read Cloudflare API key for DNS validation
|
# Allow Caddy to read Cloudflare API key for DNS validation
|
||||||
systemd.services.caddy.serviceConfig.EnvironmentFile = [
|
systemd.services.caddy.serviceConfig.EnvironmentFile = config.secrets.cloudflare-api.dest;
|
||||||
config.secrets.cloudflare-api.dest
|
|
||||||
config.secrets.letsencrypt-key.dest
|
|
||||||
];
|
|
||||||
|
|
||||||
# Private key is used for LetsEncrypt
|
|
||||||
secrets.letsencrypt-key = {
|
|
||||||
source = ../../../private/letsencrypt-key.age;
|
|
||||||
dest = "${config.secretsDirectory}/letsencrypt-key";
|
|
||||||
owner = "caddy";
|
|
||||||
group = "caddy";
|
|
||||||
};
|
|
||||||
|
|
||||||
# API key must have access to modify Cloudflare DNS records
|
# API key must have access to modify Cloudflare DNS records
|
||||||
secrets.cloudflare-api = {
|
secrets.cloudflare-api = {
|
||||||
@ -117,14 +104,8 @@ in
|
|||||||
|
|
||||||
# Wait for secret to exist
|
# Wait for secret to exist
|
||||||
systemd.services.caddy = {
|
systemd.services.caddy = {
|
||||||
after = [
|
after = [ "cloudflare-api-secret.service" ];
|
||||||
"cloudflare-api-secret.service"
|
requires = [ "cloudflare-api-secret.service" ];
|
||||||
"letsencrypt-key-secret.service"
|
|
||||||
];
|
|
||||||
requires = [
|
|
||||||
"cloudflare-api-secret.service"
|
|
||||||
"letsencrypt-key-secret.service"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Allows Nextcloud to trust Cloudflare IPs
|
# Allows Nextcloud to trust Cloudflare IPs
|
||||||
@ -135,9 +116,6 @@ in
|
|||||||
[ "127.0.0.1" ] ++ cloudflareIpRanges
|
[ "127.0.0.1" ] ++ cloudflareIpRanges
|
||||||
);
|
);
|
||||||
|
|
||||||
# Using dyn-dns instead of ddclient because I can't find a way to choose
|
|
||||||
# between proxied and non-proxied records for Cloudflare using just
|
|
||||||
# ddclient.
|
|
||||||
services.cloudflare-dyndns =
|
services.cloudflare-dyndns =
|
||||||
lib.mkIf ((builtins.length config.services.cloudflare-dyndns.domains) > 0)
|
lib.mkIf ((builtins.length config.services.cloudflare-dyndns.domains) > 0)
|
||||||
{
|
{
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
{
|
{
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./audiobookshelf.nix
|
|
||||||
./arr.nix
|
./arr.nix
|
||||||
./backups.nix
|
./backups.nix
|
||||||
./bind.nix
|
./bind.nix
|
||||||
@ -13,7 +12,6 @@
|
|||||||
./calibre.nix
|
./calibre.nix
|
||||||
./cloudflare-tunnel.nix
|
./cloudflare-tunnel.nix
|
||||||
./cloudflare.nix
|
./cloudflare.nix
|
||||||
./filebrowser.nix
|
|
||||||
./identity.nix
|
./identity.nix
|
||||||
./irc.nix
|
./irc.nix
|
||||||
./gitea-runner.nix
|
./gitea-runner.nix
|
||||||
@ -28,7 +26,6 @@
|
|||||||
./n8n.nix
|
./n8n.nix
|
||||||
./netdata.nix
|
./netdata.nix
|
||||||
./nextcloud.nix
|
./nextcloud.nix
|
||||||
./ntfy.nix
|
|
||||||
./paperless.nix
|
./paperless.nix
|
||||||
./postgresql.nix
|
./postgresql.nix
|
||||||
./prometheus.nix
|
./prometheus.nix
|
||||||
@ -36,7 +33,6 @@
|
|||||||
./secrets.nix
|
./secrets.nix
|
||||||
./sshd.nix
|
./sshd.nix
|
||||||
./transmission.nix
|
./transmission.nix
|
||||||
./uptime-kuma.nix
|
|
||||||
./vaultwarden.nix
|
./vaultwarden.nix
|
||||||
./victoriametrics.nix
|
./victoriametrics.nix
|
||||||
./wireguard.nix
|
./wireguard.nix
|
||||||
|
@ -1,74 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
user =
|
|
||||||
if config.services.nextcloud.enable then
|
|
||||||
config.services.phpfpm.pools.nextcloud.user
|
|
||||||
else
|
|
||||||
"filebrowser";
|
|
||||||
|
|
||||||
dataDir = "/var/lib/filebrowser";
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
port = 8020;
|
|
||||||
baseURL = "";
|
|
||||||
address = "";
|
|
||||||
log = "stdout";
|
|
||||||
database = "${dataDir}/filebrowser.db";
|
|
||||||
root = "";
|
|
||||||
"auth.method" = "json";
|
|
||||||
username = config.user;
|
|
||||||
# Generate password: htpasswd -nBC 10 "" | tr -d ':\n'
|
|
||||||
password = "$2y$10$ze1cMob0k6pnXRjLowYfZOVZWg4G.dsPtH3TohbUeEbI0sdkG9.za";
|
|
||||||
};
|
|
||||||
|
|
||||||
in
|
|
||||||
{
|
|
||||||
|
|
||||||
options.filebrowser.enable = lib.mkEnableOption "Use Filebrowser.";
|
|
||||||
|
|
||||||
config = lib.mkIf config.filebrowser.enable {
|
|
||||||
|
|
||||||
environment.etc."filebrowser/.filebrowser.json".text = builtins.toJSON settings;
|
|
||||||
|
|
||||||
systemd.services.filebrowser = lib.mkIf config.filebrowser.enable {
|
|
||||||
description = "Filebrowser cloud file services";
|
|
||||||
after = [ "network.target" ];
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
startLimitIntervalSec = 14400;
|
|
||||||
startLimitBurst = 10;
|
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = "${pkgs.filebrowser}/bin/filebrowser";
|
|
||||||
DynamicUser = !config.services.nextcloud.enable; # Unique user if not using Nextcloud
|
|
||||||
User = user;
|
|
||||||
Group = user;
|
|
||||||
ReadWritePaths = [ dataDir ];
|
|
||||||
StateDirectory = [ "filebrowser" ];
|
|
||||||
Restart = "on-failure";
|
|
||||||
RestartPreventExitStatus = 1;
|
|
||||||
RestartSec = "5s";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
caddy.routes = [
|
|
||||||
{
|
|
||||||
match = [ { host = [ config.hostnames.files ]; } ];
|
|
||||||
handle = [
|
|
||||||
{
|
|
||||||
handler = "reverse_proxy";
|
|
||||||
upstreams = [ { dial = "localhost:${builtins.toString settings.port}"; } ];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
# Configure Cloudflare DNS to point to this machine
|
|
||||||
services.cloudflare-dyndns.domains = [ config.hostnames.files ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
@ -53,7 +53,6 @@ in
|
|||||||
uid = promUid;
|
uid = promUid;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
# TODO: Add option to pull services from a list like Caddy does
|
|
||||||
dashboards.settings.providers = [
|
dashboards.settings.providers = [
|
||||||
{
|
{
|
||||||
name = "test";
|
name = "test";
|
||||||
@ -369,18 +368,6 @@ in
|
|||||||
range = true;
|
range = true;
|
||||||
refId = "C";
|
refId = "C";
|
||||||
}
|
}
|
||||||
{
|
|
||||||
datasource = {
|
|
||||||
type = "prometheus";
|
|
||||||
uid = promUid;
|
|
||||||
};
|
|
||||||
editorMode = "code";
|
|
||||||
expr = "readarr_system_status";
|
|
||||||
hide = false;
|
|
||||||
legendFormat = "Readarr";
|
|
||||||
range = true;
|
|
||||||
refId = "F";
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
datasource = {
|
datasource = {
|
||||||
type = "prometheus";
|
type = "prometheus";
|
||||||
@ -682,7 +669,7 @@ in
|
|||||||
};
|
};
|
||||||
editorMode = "code";
|
editorMode = "code";
|
||||||
exemplar = false;
|
exemplar = false;
|
||||||
"expr" = ''delta(zfs_dataset_used_bytes{name="tank"}[1d])'';
|
"expr" = ''increase(zfs_dataset_used_bytes{name="tank"}[1d])'';
|
||||||
hide = false;
|
hide = false;
|
||||||
instant = false;
|
instant = false;
|
||||||
interval = "";
|
interval = "";
|
||||||
@ -696,7 +683,7 @@ in
|
|||||||
uid = promUid;
|
uid = promUid;
|
||||||
};
|
};
|
||||||
editorMode = "code";
|
editorMode = "code";
|
||||||
"expr" = ''delta(zfs_dataset_used_bytes{name="tank"}[7d])'';
|
"expr" = ''increase(zfs_dataset_used_bytes{name="tank"}[7d])'';
|
||||||
hide = false;
|
hide = false;
|
||||||
legendFormat = "Past Week";
|
legendFormat = "Past Week";
|
||||||
range = true;
|
range = true;
|
||||||
@ -708,7 +695,7 @@ in
|
|||||||
uid = promUid;
|
uid = promUid;
|
||||||
};
|
};
|
||||||
editorMode = "code";
|
editorMode = "code";
|
||||||
"expr" = ''delta(zfs_dataset_used_bytes{name="tank"}[30d])'';
|
"expr" = ''increase(zfs_dataset_used_bytes{name="tank"}[30d])'';
|
||||||
hide = false;
|
hide = false;
|
||||||
legendFormat = "Past Month";
|
legendFormat = "Past Month";
|
||||||
range = true;
|
range = true;
|
||||||
@ -832,28 +819,6 @@ in
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
{
|
|
||||||
matcher = {
|
|
||||||
id = "byName";
|
|
||||||
options = "localhost:8787";
|
|
||||||
};
|
|
||||||
properties = [
|
|
||||||
{
|
|
||||||
id = "displayName";
|
|
||||||
value = "Readarr";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "links";
|
|
||||||
value = [
|
|
||||||
{
|
|
||||||
targetBlank = true;
|
|
||||||
title = "";
|
|
||||||
url = "https://${config.hostnames.download}/readarr";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
matcher = {
|
matcher = {
|
||||||
id = "byName";
|
id = "byName";
|
||||||
@ -920,28 +885,6 @@ in
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
{
|
|
||||||
matcher = {
|
|
||||||
id = "byName";
|
|
||||||
options = "localhost:8086";
|
|
||||||
};
|
|
||||||
properties = [
|
|
||||||
{
|
|
||||||
id = "displayName";
|
|
||||||
value = "InfluxDB";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "links";
|
|
||||||
value = [
|
|
||||||
{
|
|
||||||
targetBlank = true;
|
|
||||||
title = "";
|
|
||||||
url = "https://${config.hostnames.influxdb}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
matcher = {
|
matcher = {
|
||||||
id = "byName";
|
id = "byName";
|
||||||
@ -986,28 +929,6 @@ in
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
{
|
|
||||||
matcher = {
|
|
||||||
id = "byName";
|
|
||||||
options = "localhost:9000";
|
|
||||||
};
|
|
||||||
properties = [
|
|
||||||
{
|
|
||||||
id = "displayName";
|
|
||||||
value = "The Lounge";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "links";
|
|
||||||
value = [
|
|
||||||
{
|
|
||||||
targetBlank = true;
|
|
||||||
title = "";
|
|
||||||
url = "https://${config.hostnames.irc}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
matcher = {
|
matcher = {
|
||||||
id = "byName";
|
id = "byName";
|
||||||
@ -1118,50 +1039,6 @@ in
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
{
|
|
||||||
matcher = {
|
|
||||||
id = "byName";
|
|
||||||
options = "localhost:${builtins.toString config.services.paperless.port}";
|
|
||||||
};
|
|
||||||
properties = [
|
|
||||||
{
|
|
||||||
id = "displayName";
|
|
||||||
value = "Paperless";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "links";
|
|
||||||
value = [
|
|
||||||
{
|
|
||||||
targetBlank = true;
|
|
||||||
title = "";
|
|
||||||
url = "https://${config.hostnames.paperless}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
matcher = {
|
|
||||||
id = "byName";
|
|
||||||
options = "localhost:${builtins.toString config.services.audiobookshelf.port}";
|
|
||||||
};
|
|
||||||
properties = [
|
|
||||||
{
|
|
||||||
id = "displayName";
|
|
||||||
value = "Audiobookshelf";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "links";
|
|
||||||
value = [
|
|
||||||
{
|
|
||||||
targetBlank = true;
|
|
||||||
title = "";
|
|
||||||
url = "https://${config.hostnames.audiobooks}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
gridPos = {
|
gridPos = {
|
||||||
@ -2444,7 +2321,7 @@ in
|
|||||||
datasourceUid = promUid;
|
datasourceUid = promUid;
|
||||||
model = {
|
model = {
|
||||||
editorMode = "code";
|
editorMode = "code";
|
||||||
expr = ''systemd_unit_state{name=~"cloudflared-tunnel-.*", state="active", job!="tempest"}'';
|
expr = ''systemd_unit_state{name=~"cloudflared-tunnel-.*", state="active"}'';
|
||||||
hide = false;
|
hide = false;
|
||||||
instant = true;
|
instant = true;
|
||||||
intervalMs = 1000;
|
intervalMs = 1000;
|
||||||
@ -2541,7 +2418,7 @@ in
|
|||||||
execErrState = "Error";
|
execErrState = "Error";
|
||||||
for = "5m";
|
for = "5m";
|
||||||
annotations = {
|
annotations = {
|
||||||
description = "Cloudflare Tunnel for {{ index $labels \"job\" }}.";
|
description = "Cloudflare Tunnel for {{ $job }}.";
|
||||||
summary = "Cloudflare Tunnel is down.";
|
summary = "Cloudflare Tunnel is down.";
|
||||||
};
|
};
|
||||||
isPaused = false;
|
isPaused = false;
|
||||||
|
@ -9,18 +9,12 @@
|
|||||||
unfreePackages = [ "n8n" ];
|
unfreePackages = [ "n8n" ];
|
||||||
|
|
||||||
services.n8n = {
|
services.n8n = {
|
||||||
webhookUrl = "https://${config.hostnames.n8n}";
|
|
||||||
settings = {
|
settings = {
|
||||||
listen_address = "127.0.0.1";
|
listen_address = "127.0.0.1";
|
||||||
port = 5678;
|
port = 5678;
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.n8n.environment = {
|
|
||||||
N8N_EDITOR_BASE_URL = config.services.n8n.webhookUrl;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Configure Cloudflare DNS to point to this machine
|
# Configure Cloudflare DNS to point to this machine
|
||||||
services.cloudflare-dyndns.domains = [ config.hostnames.n8n ];
|
services.cloudflare-dyndns.domains = [ config.hostnames.n8n ];
|
||||||
|
|
||||||
|
@ -26,8 +26,6 @@
|
|||||||
trusted_domains = [ config.hostnames.content ];
|
trusted_domains = [ config.hostnames.content ];
|
||||||
trusted_proxies = [ "127.0.0.1" ];
|
trusted_proxies = [ "127.0.0.1" ];
|
||||||
maintenance_window_start = 4; # Run jobs at 4am UTC
|
maintenance_window_start = 4; # Run jobs at 4am UTC
|
||||||
log_type = "file";
|
|
||||||
loglevel = 1; # Include all actions in the log
|
|
||||||
};
|
};
|
||||||
extraAppsEnable = true;
|
extraAppsEnable = true;
|
||||||
extraApps = {
|
extraApps = {
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
config = lib.mkIf config.services.ntfy-sh.enable {
|
|
||||||
services.ntfy-sh = {
|
|
||||||
settings = {
|
|
||||||
base-url = "https://${config.hostnames.notifications}";
|
|
||||||
upstream-base-url = "https://ntfy.sh";
|
|
||||||
listen-http = ":8333";
|
|
||||||
behind-proxy = true;
|
|
||||||
auth-default-access = "deny-all";
|
|
||||||
auth-file = "/var/lib/ntfy-sh/user.db";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
caddy.routes = [
|
|
||||||
{
|
|
||||||
match = [ { host = [ config.hostnames.notifications ]; } ];
|
|
||||||
handle = [
|
|
||||||
{
|
|
||||||
handler = "reverse_proxy";
|
|
||||||
upstreams = [ { dial = "localhost${config.services.ntfy-sh.settings.listen-http}"; } ];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
# Configure Cloudflare DNS to point to this machine
|
|
||||||
services.cloudflare-dyndns.domains = [ config.hostnames.notifications ];
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
services.samba = lib.mkIf config.services.samba.enable {
|
services.samba = lib.mkIf config.services.samba.enable {
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
settings.data = {
|
shares.data = {
|
||||||
path = "/data";
|
path = "/data";
|
||||||
browseable = "yes";
|
browseable = "yes";
|
||||||
"read only" = "no";
|
"read only" = "no";
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
{ config, lib, ... }:
|
|
||||||
{
|
|
||||||
|
|
||||||
config = lib.mkIf config.services.uptime-kuma.enable {
|
|
||||||
|
|
||||||
services.uptime-kuma = {
|
|
||||||
settings = {
|
|
||||||
PORT = "3033";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Allow web traffic to Caddy
|
|
||||||
caddy.routes = [
|
|
||||||
{
|
|
||||||
match = [ { host = [ config.hostnames.status ]; } ];
|
|
||||||
handle = [
|
|
||||||
{
|
|
||||||
handler = "reverse_proxy";
|
|
||||||
upstreams = [
|
|
||||||
{ dial = "localhost:${config.services.uptime-kuma.settings.PORT}"; }
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
# Configure Cloudflare DNS to point to this machine
|
|
||||||
services.cloudflare-dyndns.domains = [ config.hostnames.status ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
@ -5,7 +5,6 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
pkgs-stable,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -39,10 +38,6 @@ in
|
|||||||
|
|
||||||
config = {
|
config = {
|
||||||
|
|
||||||
services.victoriametrics.extraOptions = [
|
|
||||||
"-promscrape.config=${(pkgs.formats.yaml { }).generate "scrape.yml" prometheusConfig}"
|
|
||||||
];
|
|
||||||
|
|
||||||
systemd.services.vmauth = lib.mkIf config.services.victoriametrics.enable {
|
systemd.services.vmauth = lib.mkIf config.services.victoriametrics.enable {
|
||||||
description = "VictoriaMetrics basic auth proxy";
|
description = "VictoriaMetrics basic auth proxy";
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
@ -89,10 +84,7 @@ in
|
|||||||
# VMAgent
|
# VMAgent
|
||||||
|
|
||||||
services.vmagent = {
|
services.vmagent = {
|
||||||
package = pkgs-stable.vmagent;
|
|
||||||
prometheusConfig = prometheusConfig;
|
prometheusConfig = prometheusConfig;
|
||||||
# https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5567
|
|
||||||
extraArgs = [ "-promscrape.maxScrapeSize 450000000" ];
|
|
||||||
remoteWrite = {
|
remoteWrite = {
|
||||||
url = "https://${config.hostnames.prometheus}/api/v1/write";
|
url = "https://${config.hostnames.prometheus}/api/v1/write";
|
||||||
basicAuthUsername = username;
|
basicAuthUsername = username;
|
||||||
|
@ -4,10 +4,7 @@
|
|||||||
# How long to keep journalctl entries
|
# How long to keep journalctl entries
|
||||||
# This helps to make sure log disk usage doesn't grow too unwieldy
|
# This helps to make sure log disk usage doesn't grow too unwieldy
|
||||||
services.journald.extraConfig = ''
|
services.journald.extraConfig = ''
|
||||||
SystemMaxUse=4G
|
SystemMaxUse=100M
|
||||||
SystemKeepFree=10G
|
|
||||||
SystemMaxFileSize=128M
|
|
||||||
SystemMaxFiles=500
|
|
||||||
MaxFileSec=1month
|
MaxFileSec=1month
|
||||||
MaxRetentionSec=2month
|
MaxRetentionSec=2month
|
||||||
'';
|
'';
|
||||||
|
27
overlays/calibre-web-cloudflare.patch
Normal file
27
overlays/calibre-web-cloudflare.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
diff --git a/cps/__init__.py b/cps/__init__.py
|
||||||
|
index f4f8dbf2..7377acdf 100644
|
||||||
|
--- a/cps/__init__.py
|
||||||
|
+++ b/cps/__init__.py
|
||||||
|
@@ -151,7 +151,6 @@ def create_app():
|
||||||
|
|
||||||
|
lm.login_view = 'web.login'
|
||||||
|
lm.anonymous_user = ub.Anonymous
|
||||||
|
- lm.session_protection = 'strong' if config.config_session == 1 else "basic"
|
||||||
|
|
||||||
|
db.CalibreDB.update_config(config)
|
||||||
|
db.CalibreDB.setup_db(config.config_calibre_dir, cli_param.settings_path)
|
||||||
|
diff --git a/cps/admin.py b/cps/admin.py
|
||||||
|
index 045a9523..825a28af 100644
|
||||||
|
--- a/cps/admin.py
|
||||||
|
+++ b/cps/admin.py
|
||||||
|
@@ -102,10 +102,6 @@ def admin_required(f):
|
||||||
|
|
||||||
|
@admi.before_app_request
|
||||||
|
def before_request():
|
||||||
|
- if not ub.check_user_session(current_user.id,
|
||||||
|
- flask_session.get('_id')) and 'opds' not in request.path \
|
||||||
|
- and config.config_session == 1:
|
||||||
|
- logout_user()
|
||||||
|
g.constants = constants
|
||||||
|
g.google_site_verification = os.getenv('GOOGLE_SITE_VERIFICATION', '')
|
||||||
|
g.allow_registration = config.config_public_reg
|
7
overlays/calibre-web.nix
Normal file
7
overlays/calibre-web.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Fix: https://github.com/janeczku/calibre-web/issues/2422
|
||||||
|
|
||||||
|
_final: prev: {
|
||||||
|
calibre-web = prev.calibre-web.overrideAttrs (old: {
|
||||||
|
patches = (old.patches or [ ]) ++ [ ./calibre-web-cloudflare.patch ];
|
||||||
|
});
|
||||||
|
}
|
@ -1,9 +1,15 @@
|
|||||||
inputs: _final: prev: {
|
_final: prev: {
|
||||||
|
|
||||||
gh-collaborators = prev.buildGoModule rec {
|
gh-collaborators = prev.buildGoModule rec {
|
||||||
pname = "gh-collaborators";
|
pname = "gh-collaborators";
|
||||||
version = "v2.0.3";
|
version = "v2.0.3";
|
||||||
src = inputs.gh-collaborators;
|
|
||||||
|
src = prev.fetchFromGitHub {
|
||||||
|
owner = "nmasur";
|
||||||
|
repo = "gh-collaborators";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "sha256-XgAZ/+7QxIRKiAZ4Gp/rLgTABSXkVjFQ8TbXOFj9vpM=";
|
||||||
|
};
|
||||||
|
|
||||||
# vendorHash = "sha256-rsRDOgJBa8T6+bC/APcmuRmg6ykbIp9pwRnJ9rrfHEs=";
|
# vendorHash = "sha256-rsRDOgJBa8T6+bC/APcmuRmg6ykbIp9pwRnJ9rrfHEs=";
|
||||||
vendorHash = "sha256-fykxRb2U9DDsXorRTLiVWmhMY89N7RS07sal8ww6gz4=";
|
vendorHash = "sha256-fykxRb2U9DDsXorRTLiVWmhMY89N7RS07sal8ww6gz4=";
|
||||||
|
@ -38,7 +38,5 @@ in
|
|||||||
base16-nvim = plugin "base16-nvim" inputs.base16-nvim-src;
|
base16-nvim = plugin "base16-nvim" inputs.base16-nvim-src;
|
||||||
baleia-nvim = plugin "baleia-nvim" inputs.baleia-nvim-src;
|
baleia-nvim = plugin "baleia-nvim" inputs.baleia-nvim-src;
|
||||||
hmts-nvim = plugin "hmts-nvim" inputs.hmts-nvim-src;
|
hmts-nvim = plugin "hmts-nvim" inputs.hmts-nvim-src;
|
||||||
tiny-inline-diagnostic-nvim = plugin "tiny-inline-diagnostic-nvim" inputs.tiny-inline-diagnostic-nvim-src;
|
|
||||||
snipe-nvim = plugin "snipe-nvim" inputs.snipe-nvim-src;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -5,25 +5,21 @@ inputs: _final: prev: {
|
|||||||
url = inputs.nextcloud-news.outPath;
|
url = inputs.nextcloud-news.outPath;
|
||||||
sha256 = inputs.nextcloud-news.narHash;
|
sha256 = inputs.nextcloud-news.narHash;
|
||||||
license = "agpl3Plus";
|
license = "agpl3Plus";
|
||||||
unpack = true;
|
|
||||||
};
|
};
|
||||||
external = prev.fetchNextcloudApp {
|
external = prev.fetchNextcloudApp {
|
||||||
url = inputs.nextcloud-external.outPath;
|
url = inputs.nextcloud-external.outPath;
|
||||||
sha256 = inputs.nextcloud-external.narHash;
|
sha256 = inputs.nextcloud-external.narHash;
|
||||||
license = "agpl3Plus";
|
license = "agpl3Plus";
|
||||||
unpack = true;
|
|
||||||
};
|
};
|
||||||
cookbook = prev.fetchNextcloudApp {
|
cookbook = prev.fetchNextcloudApp {
|
||||||
url = inputs.nextcloud-cookbook.outPath;
|
url = inputs.nextcloud-cookbook.outPath;
|
||||||
sha256 = inputs.nextcloud-cookbook.narHash;
|
sha256 = inputs.nextcloud-cookbook.narHash;
|
||||||
license = "agpl3Plus";
|
license = "agpl3Plus";
|
||||||
unpack = true;
|
|
||||||
};
|
};
|
||||||
snappymail = prev.fetchNextcloudApp {
|
snappymail = prev.fetchNextcloudApp {
|
||||||
url = inputs.nextcloud-snappymail.outPath;
|
url = inputs.nextcloud-snappymail.outPath;
|
||||||
sha256 = inputs.nextcloud-snappymail.narHash;
|
sha256 = inputs.nextcloud-snappymail.narHash;
|
||||||
license = "agpl3Plus";
|
license = "agpl3Plus";
|
||||||
unpack = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IE1nSGFPdyBCc2hS
|
|
||||||
RUw4Y200allVODI0QTYxdXlHSHRiS1pWWHg5SW9tZ0tGVmc2ajJZCitXeEd0dk9K
|
|
||||||
MmRkZlRYd253RWFzNXpUR0xuTXI2dWVhNFZpQnNlU0VFdEUKLT4gc3NoLWVkMjU1
|
|
||||||
MTkgWXlTVU1RIHNScVkwd1RmVGhNcFVSRTlxQzlvSUc2cGxNWUc0YVJ5RjRydk9J
|
|
||||||
RG1peDQKVU5iN1ZmWEJyOXBiNWdiRFlnNFFKR09vaFB4SWZWK0x3VWJwMDZtYlBj
|
|
||||||
MAotPiBzc2gtZWQyNTUxOSBuanZYNUEgSXR5OEk5cWZHUEZ3WmFCUTVFeTBnTG5h
|
|
||||||
cmNxVWFLV2JhUTRBaUJGWERncwpYMFBIN0kySXdjOE5YcS85bXRCRnRsK3NyMHY4
|
|
||||||
N0JKelFyeHB6T1dEZ2VnCi0+IHNzaC1lZDI1NTE5IENxSU9VQSAyQVJYRXJ1cFVl
|
|
||||||
dldaa0Qydlc3MzlFYnN5YUx0amdWZm5PcWovRm1MaVg0CkJsSFZRdGJIZzA1T0Ny
|
|
||||||
bUNnL0Zxa05ubHluSVBUenVCZTZpYlA5UUFEMDQKLT4gc3NoLWVkMjU1MTkgejFP
|
|
||||||
Y1p3IDFPQU5HZm5mRFl5NnNLVHUvdUlmTEtyS0djNWZaMWg5VDl1ZldNTkVWbXMK
|
|
||||||
RkVBTzNUa0d6c3NJUHQrazdKWXNZY3NIRzRndGdRNjFjMXZCSEhIQnIyYwotLS0g
|
|
||||||
VzNOa3dXS0hrMWxNUlJ4UzAxNlkzSXM4RWc1RGFzQjFyb1dGZXFnL3RCVQoq002V
|
|
||||||
S5MQqBjKKOacO4OWgn5KpmU2D7zJWJjNMxH80L6HFNoyOj4wNa+8TA0Q7MTn3bKN
|
|
||||||
YvAuwbDAGjjDt8vZFKOiZB0xAex+H7A1MVvuGIA8xQa6iNBMwj7nWTLif5pCbVk+
|
|
||||||
9aAAprcJVDJx4TeFXlNF6XtcQ3J8abwi6TDqNFpfwwBb/wruyzutgvlOiz1XSBX0
|
|
||||||
xlCGckq/BCnItLURIb7zhqRMqk/JODPjOKArmP86nCq25Wm+W5JQ8ViQ7LHJyoFj
|
|
||||||
zbiwabqeBJZgqoVdVMj8Glz+91RVodn6f9VwQcHINgHxmkd6j2z75AmWZecwD2ic
|
|
||||||
pUMnikqIMI0B3zW5H38t2cJv+aIMTl7lH5Hf1P5jEn3NPw==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
Reference in New Issue
Block a user