Compare commits
16 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f068d74916 | |||
| c33a558fee | |||
| c48870c14c | |||
| 1db440bd1d | |||
| 6036ca99b2 | |||
| b457b9973d | |||
| 75d93e113e | |||
| 631c9ca2cc | |||
| 9c244751cb | |||
| a10a6db8e0 | |||
| 58003570a3 | |||
| a1e1272ebb | |||
| fba02c0c19 | |||
| f287ac426a | |||
| 169912a47b | |||
| 32720ae712 |
43 changed files with 868 additions and 349 deletions
157
flake.lock
generated
157
flake.lock
generated
|
|
@ -47,11 +47,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770681688,
|
"lastModified": 1774983731,
|
||||||
"narHash": "sha256-bGVEgZMxmw9N+IKp5nG+2nyKFezdPWYDxyxXkYW+d2M=",
|
"narHash": "sha256-ZJGManY8rA/7+AZIxiW0CEMW9x8megcoh1xZ/oXq/aY=",
|
||||||
"owner": "9001",
|
"owner": "9001",
|
||||||
"repo": "copyparty",
|
"repo": "copyparty",
|
||||||
"rev": "e5d0a0572da507acfe774e0f86ad541f5daab97f",
|
"rev": "198f631ac80adc33a8f072d598ff0cd1aa2b5abd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -109,11 +109,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769524058,
|
"lastModified": 1773889306,
|
||||||
"narHash": "sha256-zygdD6X1PcVNR2PsyK4ptzrVEiAdbMqLos7utrMDEWE=",
|
"narHash": "sha256-PAqwnsBSI9SVC2QugvQ3xeYCB0otOwCacB1ueQj2tgw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "71a3fc97d80881e91710fe721f1158d3b96ae14d",
|
"rev": "5ad85c82cc52264f4beddc934ba57f3789f28347",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -182,11 +182,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769939035,
|
"lastModified": 1774959120,
|
||||||
"narHash": "sha256-Fok2AmefgVA0+eprw2NDwqKkPGEI5wvR+twiZagBvrg=",
|
"narHash": "sha256-Pzk6UbueeWy9WFiDY6iA1aHid+2AMzkS6gg2x2cSkz4=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "a8ca480175326551d6c4121498316261cbb5b260",
|
"rev": "c06f90f1eb6569bdaf6a4a10cb7e66db4454ac2a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -217,6 +217,26 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"helix-ext": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"rust-overlay": "rust-overlay"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1774804218,
|
||||||
|
"narHash": "sha256-5h6eicp0+qzgiDrWc0mlTiX+jvcx8d54Fp922uQ2p0k=",
|
||||||
|
"owner": "mattwparas",
|
||||||
|
"repo": "helix",
|
||||||
|
"rev": "912d8d8b97da21de9b44b4e24a476e193e7cc44d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "mattwparas",
|
||||||
|
"ref": "steel-event-system",
|
||||||
|
"repo": "helix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
@ -245,11 +265,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770654520,
|
"lastModified": 1775047159,
|
||||||
"narHash": "sha256-mg5WZMIPGsFu9MxSrUcuJUPMbfMsF77el5yb/7rc10k=",
|
"narHash": "sha256-UWM4VZvfKaPwA9FMu7iZha5YAE8vsEtUazk+rFxmbTY=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "6c4fdbe1ad198fac36c320fd45c5957324a80b8e",
|
"rev": "1ce9e62690dfdd7e76bd266ccb9a887778410eb2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -267,11 +287,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769872935,
|
"lastModified": 1774991950,
|
||||||
"narHash": "sha256-07HMIGQ/WJeAQJooA7Kkg1SDKxhAiV6eodvOwTX6WKI=",
|
"narHash": "sha256-kScKj3qJDIWuN9/6PMmgy5esrTUkYinrO5VvILik/zw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "f4ad5068ee8e89e4a7c2e963e10dd35cd77b37b7",
|
"rev": "f2d3e04e278422c7379e067e323734f3e8c585a7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -285,14 +305,14 @@
|
||||||
"blobs": "blobs",
|
"blobs": "blobs",
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
"git-hooks": "git-hooks",
|
"git-hooks": "git-hooks",
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770659507,
|
"lastModified": 1774999302,
|
||||||
"narHash": "sha256-RVZno9CypFN3eHxfULKN1K7mb/Cq0HkznnWqnshxpWY=",
|
"narHash": "sha256-KJfDmGLMVO8Hr4TrTwOAQpOykLLOSgk9dxkaf2dHzFU=",
|
||||||
"owner": "simple-nixos-mailserver",
|
"owner": "simple-nixos-mailserver",
|
||||||
"repo": "nixos-mailserver",
|
"repo": "nixos-mailserver",
|
||||||
"rev": "781e833633ebc0873d251772a74e4400a73f5d78",
|
"rev": "493f0ff8a7571cc4ddd190babfa447489f41c752",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -301,22 +321,6 @@
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mozilla": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1750265908,
|
|
||||||
"narHash": "sha256-ZGo9BPm0L6kkuke6Bp5rb1XwF5Qv3/+a3mowsr0fcU4=",
|
|
||||||
"owner": "andersk",
|
|
||||||
"repo": "nixpkgs-mozilla",
|
|
||||||
"rev": "174a36cd95c9bed0dcbcc8a51f16d0cc8be490f3",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "andersk",
|
|
||||||
"ref": "channel",
|
|
||||||
"repo": "nixpkgs-mozilla",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-flatpak": {
|
"nix-flatpak": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767983141,
|
"lastModified": 1767983141,
|
||||||
|
|
@ -335,11 +339,11 @@
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770631810,
|
"lastModified": 1774933469,
|
||||||
"narHash": "sha256-b7iK/x+zOXbjhRqa+XBlYla4zFvPZyU5Ln2HJkiSnzc=",
|
"narHash": "sha256-OrnCQeUO2bqaWUl0lkDWyGWjKsOhtCyd7JSfTedQNUE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "2889685785848de940375bf7fea5e7c5a3c8d502",
|
"rev": "f4c4c2c0c923d7811ac2a63ccc154767e4195337",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -383,11 +387,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770562336,
|
"lastModified": 1774709303,
|
||||||
"narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=",
|
"narHash": "sha256-D3Q07BbIA2KnTcSXIqqu9P586uWxN74zNoCH3h2ESHg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d6c71932130818840fc8fe9509cf50be8c64634f",
|
"rev": "8110df5ad7abf5d4c0f6fb0f8f978390e77f9685",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -399,11 +403,27 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770650459,
|
"lastModified": 1770841267,
|
||||||
"narHash": "sha256-hGeOnueXorzwDD1V9ldZr+y+zad4SNyqMnQsa/mIlvI=",
|
"narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1774935083,
|
||||||
|
"narHash": "sha256-Mh6bLcYAcENBAZk3RoMPMFCGGMZmfaGMERE4siZOgP4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "fff0554c67696d76a0cdd9cfe14403fbdbf1f378",
|
"rev": "2f4fd5e1abf9bac8c1d22750c701a7a5e6b524c6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -413,13 +433,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770562336,
|
"lastModified": 1774709303,
|
||||||
"narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=",
|
"narHash": "sha256-D3Q07BbIA2KnTcSXIqqu9P586uWxN74zNoCH3h2ESHg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d6c71932130818840fc8fe9509cf50be8c64634f",
|
"rev": "8110df5ad7abf5d4c0f6fb0f8f978390e77f9685",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -429,13 +449,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769461804,
|
"lastModified": 1774709303,
|
||||||
"narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=",
|
"narHash": "sha256-D3Q07BbIA2KnTcSXIqqu9P586uWxN74zNoCH3h2ESHg=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d",
|
"rev": "8110df5ad7abf5d4c0f6fb0f8f978390e77f9685",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -467,18 +487,39 @@
|
||||||
"copyparty": "copyparty",
|
"copyparty": "copyparty",
|
||||||
"deploy-rs": "deploy-rs",
|
"deploy-rs": "deploy-rs",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
|
"helix-ext": "helix-ext",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
"mailserver": "mailserver",
|
"mailserver": "mailserver",
|
||||||
"mozilla": "mozilla",
|
|
||||||
"nix-flatpak": "nix-flatpak",
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"nixpkgs-stable": "nixpkgs-stable",
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"pin-factorio": "pin-factorio",
|
"pin-factorio": "pin-factorio",
|
||||||
"zen-browser": "zen-browser"
|
"zen-browser": "zen-browser"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"rust-overlay": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"helix-ext",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770952264,
|
||||||
|
"narHash": "sha256-CjymNrJZWBtpavyuTkfPVPaZkwzIzGaf0E/3WgcwM14=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "ec6a3d5cdf14bb5a1dd03652bd3f6351004d2188",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
|
|
@ -530,14 +571,14 @@
|
||||||
"zen-browser": {
|
"zen-browser": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"home-manager": "home-manager_3",
|
"home-manager": "home-manager_3",
|
||||||
"nixpkgs": "nixpkgs_4"
|
"nixpkgs": "nixpkgs_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770707140,
|
"lastModified": 1775021133,
|
||||||
"narHash": "sha256-3ZRA2+o5p1+FKWx988WbwB1SQ2Mz5aL95zxhL5iD+O0=",
|
"narHash": "sha256-JB0u0evfSlmNg9HdGDxtXjaCcdKUpFPdSAMGxvJo5Pw=",
|
||||||
"owner": "0xc000022070",
|
"owner": "0xc000022070",
|
||||||
"repo": "zen-browser-flake",
|
"repo": "zen-browser-flake",
|
||||||
"rev": "db14437f8667f7f09784e2a4e73c105bdc1c7023",
|
"rev": "4bf1a6837064486c4f573a9d500c4cf3c1c075c0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
11
flake.nix
11
flake.nix
|
|
@ -14,7 +14,8 @@
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
nix-flatpak.url = "github:gmodena/nix-flatpak/latest";
|
nix-flatpak.url = "github:gmodena/nix-flatpak/latest";
|
||||||
zen-browser.url = "github:0xc000022070/zen-browser-flake";
|
zen-browser.url = "github:0xc000022070/zen-browser-flake";
|
||||||
mozilla.url = "github:andersk/nixpkgs-mozilla/channel";
|
# mozilla.url = "github:andersk/nixpkgs-mozilla/channel";
|
||||||
|
helix-ext.url = "github:mattwparas/helix/steel-event-system";
|
||||||
|
|
||||||
mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver";
|
mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver";
|
||||||
|
|
||||||
|
|
@ -40,7 +41,7 @@
|
||||||
pin-factorio.url = "github:NixOS/nixpkgs?rev=c5ae371f1a6a7fd27823bc500d9390b38c05fa55";
|
pin-factorio.url = "github:NixOS/nixpkgs?rev=c5ae371f1a6a7fd27823bc500d9390b38c05fa55";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, mailserver, copyparty, deploy-rs, ... }@inputs: {
|
outputs = { self, nixpkgs, deploy-rs, ... }@inputs: {
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
# Framework Computer
|
# Framework Computer
|
||||||
piaf = nixpkgs.lib.nixosSystem {
|
piaf = nixpkgs.lib.nixosSystem {
|
||||||
|
|
@ -53,11 +54,7 @@
|
||||||
zora = nixpkgs.lib.nixosSystem {
|
zora = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = inputs;
|
specialArgs = inputs;
|
||||||
modules = [
|
modules = [ ./hosts/zora ];
|
||||||
./hosts/zora
|
|
||||||
mailserver.nixosModules.default
|
|
||||||
copyparty.nixosModules.default
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Desktop ISO
|
# Desktop ISO
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
# Kernel
|
# Kernel
|
||||||
boot.kernelPackages = pkgs.linuxPackages_6_18;
|
boot.kernelPackages = pkgs.linuxPackages_6_19;
|
||||||
|
|
||||||
# Boot
|
# Boot
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
|
@ -74,12 +74,12 @@
|
||||||
|
|
||||||
# Tweaking failing packages
|
# Tweaking failing packages
|
||||||
nixpkgs.overlays = [ (final: prev: {
|
nixpkgs.overlays = [ (final: prev: {
|
||||||
dfu-programmer = prev.dfu-programmer.overrideAttrs (_: { env.NIX_CFLAGS_COMPILE = "-std=gnu17"; });
|
# dfu-programmer = final.dfu-programmer.overrideAttrs (_: { env.NIX_CFLAGS_COMPILE = "-std=gnu17"; });
|
||||||
# upower = prev.upower.overrideAttrs (_: { doCheck = false; });
|
# upower = final.upower.overrideAttrs (_: { doCheck = false; });
|
||||||
# gxml = prev.gxml.overrideAttrs (_: { doCheck = false; });
|
# gxml = final.gxml.overrideAttrs (_: { doCheck = false; });
|
||||||
# # orc = prev.orc.overrideAttrs (_: { doCheck = false; });
|
# # orc = final.orc.overrideAttrs (_: { doCheck = false; });
|
||||||
# # gsl = prev.gsl.overrideAttrs (_: { doCheck = false; });
|
# # gsl = final.gsl.overrideAttrs (_: { doCheck = false; });
|
||||||
# fprintd = prev.fprintd.overrideAttrs (super: {
|
# fprintd = final.fprintd.overrideAttrs (super: {
|
||||||
# # doCheck = false;
|
# # doCheck = false;
|
||||||
# # buildInputs = super.buildInputs or [ ] ++ (with pkgs; [ libpam-wrapper (pkgs.python3.withPackages (python-pkgs: [ python-pkgs.pycairo python-pkgs.dbus-python python-pkgs.python-dbusmock ])) ]);
|
# # buildInputs = super.buildInputs or [ ] ++ (with pkgs; [ libpam-wrapper (pkgs.python3.withPackages (python-pkgs: [ python-pkgs.pycairo python-pkgs.dbus-python python-pkgs.python-dbusmock ])) ]);
|
||||||
# mesonCheckFlags = [
|
# mesonCheckFlags = [
|
||||||
|
|
@ -87,7 +87,7 @@
|
||||||
# "--no-suite" "fprintd"
|
# "--no-suite" "fprintd"
|
||||||
# ];
|
# ];
|
||||||
# });
|
# });
|
||||||
# libsrtp = prev.libsrtp.overrideAttrs (_: {
|
# libsrtp = final.libsrtp.overrideAttrs (_: {
|
||||||
# mesonFlags = [
|
# mesonFlags = [
|
||||||
# "-Dcrypto-library=openssl"
|
# "-Dcrypto-library=openssl"
|
||||||
# "-Dcrypto-library-kdf=disabled"
|
# "-Dcrypto-library-kdf=disabled"
|
||||||
|
|
@ -95,8 +95,8 @@
|
||||||
# "-Dtests=disabled"
|
# "-Dtests=disabled"
|
||||||
# ];
|
# ];
|
||||||
# });
|
# });
|
||||||
# # # haskellPackages.crypton = pkgs.haskell.lib.overrideCabal prev.crypton (_: { doCheck = false; });
|
# # # haskellPackages.crypton = pkgs.haskell.lib.overrideCabal final.crypton (_: { doCheck = false; });
|
||||||
# # # haskellPackages.cryptonite = pkgs.haskell.lib.overrideCabal prev.cryptonite (_: { doCheck = false; });
|
# # # haskellPackages.cryptonite = pkgs.haskell.lib.overrideCabal final.cryptonite (_: { doCheck = false; });
|
||||||
}) ];
|
}) ];
|
||||||
|
|
||||||
# nixpkgs.config.packageOverrides = pkgs: {
|
# nixpkgs.config.packageOverrides = pkgs: {
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@
|
||||||
./users.nix
|
./users.nix
|
||||||
|
|
||||||
../../users/lyes
|
../../users/lyes
|
||||||
../../users/lyes/server
|
|
||||||
|
|
||||||
../../modules
|
../../modules
|
||||||
../../modules/server
|
../../modules/server
|
||||||
|
|
@ -21,12 +20,14 @@
|
||||||
../../modules/server/baba
|
../../modules/server/baba
|
||||||
../../modules/server/biggoron
|
../../modules/server/biggoron
|
||||||
../../modules/server/biggoron/runner.nix
|
../../modules/server/biggoron/runner.nix
|
||||||
|
../../modules/server/facteur
|
||||||
../../modules/server/giovanni
|
../../modules/server/giovanni
|
||||||
../../modules/server/kalif
|
../../modules/server/kalif
|
||||||
../../modules/server/lanayru
|
../../modules/server/lanayru
|
||||||
../../modules/server/link
|
../../modules/server/link
|
||||||
../../modules/server/maistro
|
../../modules/server/maistro
|
||||||
../../modules/server/mikau
|
../../modules/server/mikau
|
||||||
|
../../modules/server/midona
|
||||||
../../modules/server/nayru
|
../../modules/server/nayru
|
||||||
../../modules/server/taf
|
../../modules/server/taf
|
||||||
../../modules/server/tetra
|
../../modules/server/tetra
|
||||||
|
|
|
||||||
|
|
@ -113,6 +113,8 @@
|
||||||
type filter hook input priority 0; policy drop;
|
type filter hook input priority 0; policy drop;
|
||||||
|
|
||||||
iifname lo accept
|
iifname lo accept
|
||||||
|
iifname incusbr0 accept
|
||||||
|
iifname podman* accept
|
||||||
|
|
||||||
tcp dport 22 accept
|
tcp dport 22 accept
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
{
|
{
|
||||||
security.acme = {
|
security.acme = {
|
||||||
acceptTerms = true;
|
acceptTerms = true;
|
||||||
defaults.email = "root.security@lyes.eu";
|
defaults.email = "security@lyes.eu";
|
||||||
};
|
};
|
||||||
|
|
||||||
services.nginx = {
|
services.nginx = {
|
||||||
|
|
@ -12,28 +12,44 @@
|
||||||
recommendedTlsSettings = true;
|
recommendedTlsSettings = true;
|
||||||
|
|
||||||
virtualHosts = {
|
virtualHosts = {
|
||||||
"lyes.eu" = {
|
"minish.link" = {
|
||||||
|
serverAliases = [
|
||||||
|
"www.minish.link"
|
||||||
|
"minish.fr"
|
||||||
|
"www.minish.fr"
|
||||||
|
];
|
||||||
default = true;
|
default = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
|
locations."/" = {
|
||||||
|
root = "/var/data/www/minish.link/";
|
||||||
|
};
|
||||||
|
extraConfig = ''
|
||||||
|
error_page 404 /404.html;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
"lyes.eu" = {
|
||||||
|
serverAliases = [ "www.lyes.eu" ];
|
||||||
|
forceSSL = true;
|
||||||
|
enableACME = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
root = "/var/data/www/lyes.eu/";
|
root = "/var/data/www/lyes.eu/";
|
||||||
};
|
};
|
||||||
# extraConfig = ''
|
extraConfig = ''
|
||||||
# allow 82.67.15.247;
|
error_page 404 /404.html;
|
||||||
# deny all;
|
'';
|
||||||
# '';
|
|
||||||
};
|
};
|
||||||
# 44300
|
# 44300
|
||||||
"auth.lyes.eu" = {
|
"auth.minish.link" = {
|
||||||
|
serverAliases = [ "auth.lyes.eu" ];
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "https://${config.services.kanidm.serverSettings.bindaddress}";
|
proxyPass = "https://${config.services.kanidm.server.settings.bindaddress}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# 44301
|
# 44301
|
||||||
"vault.lyes.eu" = {
|
"vault.minish.link" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
|
|
@ -42,7 +58,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# 44302
|
# 44302
|
||||||
"manga.lyes.eu" = {
|
"manga.minish.link" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
|
|
@ -51,13 +67,13 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# 44312
|
# 44312
|
||||||
"dl.manga.lyes.eu" = {
|
"dl.manga.minish.link" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
locations."/".proxyPass = "http://${config.networking.vpn-netns.vethIP}:${toString config.services.suwayomi-server.settings.server.port}";
|
locations."/".proxyPass = "http://${config.networking.vpn-netns.vethIP}:${toString config.services.suwayomi-server.settings.server.port}";
|
||||||
};
|
};
|
||||||
# 44303
|
# 44303
|
||||||
"git.lyes.eu" = {
|
"git.minish.link" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
|
|
@ -66,7 +82,7 @@
|
||||||
locations."/".proxyPass = "http://localhost:${toString config.services.forgejo.settings.server.HTTP_PORT}";
|
locations."/".proxyPass = "http://localhost:${toString config.services.forgejo.settings.server.HTTP_PORT}";
|
||||||
};
|
};
|
||||||
# 8096
|
# 8096
|
||||||
"media.lyes.eu" = {
|
"media.minish.link" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
locations = {
|
locations = {
|
||||||
|
|
@ -86,7 +102,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# 44304
|
# 44304
|
||||||
"torrent.lyes.eu" = {
|
"torrent.minish.link" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
|
|
@ -94,7 +110,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# 44305
|
# 44305
|
||||||
"files.lyes.eu" = {
|
"files.minish.link" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ nixpkgs-unstable, nixpkgs-stable, pin-factorio, ... }:
|
{ nixpkgs-unstable, nixpkgs-stable, pin-factorio, helix-ext, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
|
|
@ -7,8 +7,8 @@
|
||||||
./system.nix
|
./system.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# Import local packages
|
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
|
# Import local packages
|
||||||
(final: prev: {
|
(final: prev: {
|
||||||
local = import ../../pkgs { pkgs = final; };
|
local = import ../../pkgs { pkgs = final; };
|
||||||
})
|
})
|
||||||
|
|
@ -16,23 +16,28 @@
|
||||||
# Unstable
|
# Unstable
|
||||||
(final: prev: {
|
(final: prev: {
|
||||||
unstable = import nixpkgs-unstable {
|
unstable = import nixpkgs-unstable {
|
||||||
system = prev.system;
|
system = final.stdenv.hostPlatform.system;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
# Stable
|
# Stable
|
||||||
(final: prev: {
|
(final: prev: {
|
||||||
stable = import nixpkgs-stable {
|
stable = import nixpkgs-stable {
|
||||||
system = prev.system;
|
system = final.stdenv.hostPlatform.system;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
# Pins
|
# Pins
|
||||||
(final: prev: {
|
(final: prev: {
|
||||||
pin = {
|
pin = {
|
||||||
factorio = import pin-factorio { system = prev.system; config.allowUnfree = true; };
|
factorio = import pin-factorio { system = final.stdenv.hostPlatform.system; config.allowUnfree = true; };
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
|
# Helix
|
||||||
|
(final: prev: {
|
||||||
|
helix-with-extensions = helix-ext.packages."x86_64-linux".helix;
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.config = {
|
nixpkgs.config = {
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
programs.gamemode.enable = true;
|
programs.gamemode.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
wineWowPackages.waylandFull
|
wineWow64Packages.waylandFull
|
||||||
mangohud
|
mangohud
|
||||||
protonup-ng
|
protonup-ng
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,12 @@
|
||||||
|
|
||||||
services.resolved = {
|
services.resolved = {
|
||||||
enable = false;
|
enable = false;
|
||||||
dnssec = "true";
|
settings = {
|
||||||
domains = [ "~." ];
|
Resolve = {
|
||||||
fallbackDns = [
|
DNSOverTLS = true;
|
||||||
|
DNSSEC = true;
|
||||||
|
Domains = [ "~." ];
|
||||||
|
FallbackDns = [
|
||||||
"9.9.9.9"
|
"9.9.9.9"
|
||||||
"149.112.112.112"
|
"149.112.112.112"
|
||||||
"1.1.1.1"
|
"1.1.1.1"
|
||||||
|
|
@ -30,8 +33,7 @@
|
||||||
"2620:fe::fe"
|
"2620:fe::fe"
|
||||||
"2620:fe::9"
|
"2620:fe::9"
|
||||||
];
|
];
|
||||||
settings.Resolve = {
|
};
|
||||||
DNSOverTLS = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -51,12 +53,6 @@
|
||||||
# Network services
|
# Network services
|
||||||
#services.openssh.enable = true;
|
#services.openssh.enable = true;
|
||||||
|
|
||||||
#services.syncplay = {
|
|
||||||
# enable = true;
|
|
||||||
# port = 8998;
|
|
||||||
# extraArgs = [ "--password pouicbarilstepson123cassoulet" ];
|
|
||||||
#};
|
|
||||||
|
|
||||||
# Bluetooth
|
# Bluetooth
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
hardware.bluetooth.powerOnBoot = true;
|
hardware.bluetooth.powerOnBoot = true;
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ in
|
||||||
wofi
|
wofi
|
||||||
wlogout
|
wlogout
|
||||||
slurp
|
slurp
|
||||||
|
vicinae
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, mozilla, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
# Boot
|
# Boot
|
||||||
|
|
@ -58,8 +58,9 @@
|
||||||
# package = pkgs.firefox-beta;
|
# package = pkgs.firefox-beta;
|
||||||
# Doesn't work ?
|
# Doesn't work ?
|
||||||
# languagePacks = [ "fr" "en-US" ];
|
# languagePacks = [ "fr" "en-US" ];
|
||||||
|
# package = pkgs.latest.firefox-nightly-bin;
|
||||||
};
|
};
|
||||||
nixpkgs.overlays = [ mozilla.overlays.firefox ];
|
# nixpkgs.overlays = [ mozilla.overlays.firefox ];
|
||||||
# let
|
# let
|
||||||
# # Change this to a rev sha to pin
|
# # Change this to a rev sha to pin
|
||||||
# moz-rev = "master";
|
# moz-rev = "master";
|
||||||
|
|
@ -72,8 +73,6 @@
|
||||||
# nightlyOverlay
|
# nightlyOverlay
|
||||||
# ];
|
# ];
|
||||||
|
|
||||||
programs.firefox.package = pkgs.latest.firefox-nightly-bin;
|
|
||||||
|
|
||||||
xdg.portal.enable = true;
|
xdg.portal.enable = true;
|
||||||
|
|
||||||
# Virtualisation
|
# Virtualisation
|
||||||
|
|
@ -81,7 +80,8 @@
|
||||||
# virtualisation.virtualbox.host.enable = true;
|
# virtualisation.virtualbox.host.enable = true;
|
||||||
# virtualisation.virtualbox.host.enableExtensionPack = true;
|
# virtualisation.virtualbox.host.enableExtensionPack = true;
|
||||||
# users.extraGroups.vboxusers.members = [ "lyes" ];
|
# users.extraGroups.vboxusers.members = [ "lyes" ];
|
||||||
# virtualisation.waydroid.enable = true;
|
virtualisation.waydroid.enable = true;
|
||||||
|
virtualisation.waydroid.package = pkgs.waydroid-nftables;
|
||||||
|
|
||||||
# Containers
|
# Containers
|
||||||
virtualisation.containers.enable = true;
|
virtualisation.containers.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,15 @@
|
||||||
- `agraf` : Copyparty (`files.lyes.eu`)
|
- `agraf` : Copyparty (`files.lyes.eu`)
|
||||||
- `baba` : Nextcloud (`cloud.lyes.eu`)
|
- `baba` : Nextcloud (`cloud.lyes.eu`)
|
||||||
- `biggoron` : Forgejo (`git.lyes.eu`)
|
- `biggoron` : Forgejo (`git.lyes.eu`)
|
||||||
|
- `facteur` : Syncplay
|
||||||
- `giovanni` : Vaultwarden (`vault.lyes.eu`)
|
- `giovanni` : Vaultwarden (`vault.lyes.eu`)
|
||||||
- `kaepora` : PostgreSQL
|
- `kaepora` : PostgreSQL
|
||||||
- `kalif` : Factorio (`factorio.lyes.eu`)
|
- `kalif` : Factorio (`factorio.lyes.eu`)
|
||||||
- `lanayru` : Suwayomi (`dl.manga.lyes.eu`)
|
- `lanayru` : Suwayomi (`dl.manga.lyes.eu`)
|
||||||
- `link` : Kanidm (`auth.lyes.eu`)
|
- `link` : Kanidm (`auth.minish.link`)
|
||||||
- `maistro` : Incus
|
- `maistro` : Incus
|
||||||
- `mikau` : Jellyfin (`media.lyes.eu`)
|
- `mikau` : Jellyfin (`media.minish.link`)
|
||||||
|
- `midona` : Gate Minecraft Server Proxy
|
||||||
- `mogma` : VPN NetNS Configuration
|
- `mogma` : VPN NetNS Configuration
|
||||||
- `nayru` : Komga/Manga (`manga.lyes.eu`)
|
- `nayru` : Komga/Manga (`manga.lyes.eu`)
|
||||||
- `taf` : Mail (`taf.lyes.eu`/`mail.lyes.eu`)
|
- `taf` : Mail (`taf.lyes.eu`/`mail.lyes.eu`)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,10 @@
|
||||||
{ config, copyparty, ... }:
|
{ config, copyparty, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
imports = [
|
||||||
|
copyparty.nixosModules.default
|
||||||
|
];
|
||||||
|
|
||||||
services.copyparty = {
|
services.copyparty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
|
@ -20,7 +24,7 @@
|
||||||
# General options
|
# General options
|
||||||
ed = true; # See hidden files (starting with a dot)
|
ed = true; # See hidden files (starting with a dot)
|
||||||
name = "zora"; # Server name
|
name = "zora"; # Server name
|
||||||
name-url = "https://files.lyes.eu"; # Server URL
|
name-url = "https://files.minish.link"; # Server URL
|
||||||
j = 4; # Max jobs (CPU usage)
|
j = 4; # Max jobs (CPU usage)
|
||||||
|
|
||||||
# Network options
|
# Network options
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
services.nextcloud = {
|
services.nextcloud = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.nextcloud32;
|
package = pkgs.nextcloud33;
|
||||||
hostName = "cloud.lyes.eu";
|
hostName = "cloud.lyes.eu";
|
||||||
https = true;
|
https = true;
|
||||||
configureRedis = true;
|
configureRedis = true;
|
||||||
|
|
@ -15,6 +15,7 @@
|
||||||
|
|
||||||
extraAppsEnable = true;
|
extraAppsEnable = true;
|
||||||
extraApps = {
|
extraApps = {
|
||||||
|
# inherit (config.services.nextcloud.package.packages.apps) mail calendar contacts cospend user_oidc notes richdocuments tasks dav_push repod gpoddersync phonetrack music;
|
||||||
inherit (config.services.nextcloud.package.packages.apps) mail calendar contacts cospend user_oidc notes richdocuments tasks news dav_push repod gpoddersync phonetrack music;
|
inherit (config.services.nextcloud.package.packages.apps) mail calendar contacts cospend user_oidc notes richdocuments tasks news dav_push repod gpoddersync phonetrack music;
|
||||||
# gpoddersync = pkgs.fetchNextcloudApp {
|
# gpoddersync = pkgs.fetchNextcloudApp {
|
||||||
# hash = "sha256-EQVs1fe0ierjqFZ5+KVc1Yj67zrwjLBAzY5A+QsC7AU=";
|
# hash = "sha256-EQVs1fe0ierjqFZ5+KVc1Yj67zrwjLBAzY5A+QsC7AU=";
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ in
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
server = {
|
server = {
|
||||||
DOMAIN = "git.lyes.eu";
|
DOMAIN = "git.minish.link";
|
||||||
# You need to specify this to remove the port from URLs in the web UI.
|
# You need to specify this to remove the port from URLs in the web UI.
|
||||||
ROOT_URL = "https://${srv.DOMAIN}/";
|
ROOT_URL = "https://${srv.DOMAIN}/";
|
||||||
HTTP_PORT = 44303;
|
HTTP_PORT = 44303;
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,16 @@
|
||||||
podman = {
|
podman = {
|
||||||
enable = true;
|
enable = true;
|
||||||
dockerCompat = true;
|
dockerCompat = true;
|
||||||
|
dockerSocket.enable = true;
|
||||||
defaultNetwork.settings.dns_enabled = true;
|
defaultNetwork.settings.dns_enabled = true;
|
||||||
|
autoPrune.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall.trustedInterfaces = [
|
networking.firewall.trustedInterfaces = [
|
||||||
"podman*"
|
"podman*"
|
||||||
];
|
];
|
||||||
|
networking.firewall.interfaces."podman*".allowedUDPPorts = [ 53 ];
|
||||||
|
|
||||||
users.users.gitea-runner.isSystemUser = true;
|
users.users.gitea-runner.isSystemUser = true;
|
||||||
users.users.gitea-runner.group = "gitea-runner";
|
users.users.gitea-runner.group = "gitea-runner";
|
||||||
|
|
@ -18,10 +21,11 @@
|
||||||
|
|
||||||
services.gitea-actions-runner = {
|
services.gitea-actions-runner = {
|
||||||
package = pkgs.forgejo-runner;
|
package = pkgs.forgejo-runner;
|
||||||
instances.default = {
|
instances = {
|
||||||
|
ptigoron = {
|
||||||
enable = true;
|
enable = true;
|
||||||
name = "ptigoron";
|
name = "ptigoron";
|
||||||
url = "https://git.lyes.eu";
|
url = "https://git.minish.link";
|
||||||
# Obtaining the path to the runner token file may differ
|
# Obtaining the path to the runner token file may differ
|
||||||
# tokenFile should be in format TOKEN=<secret>, since it's EnvironmentFile for systemd
|
# tokenFile should be in format TOKEN=<secret>, since it's EnvironmentFile for systemd
|
||||||
tokenFile = config.age.secrets.ptigoron-token.path;
|
tokenFile = config.age.secrets.ptigoron-token.path;
|
||||||
|
|
@ -36,6 +40,9 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.gitea-runner-ptigoron.after = [ "forgejo.service" ];
|
||||||
|
|
||||||
age.secrets.ptigoron-token = {
|
age.secrets.ptigoron-token = {
|
||||||
file = ../../../secrets/zora/services/ptigoron-token.age;
|
file = ../../../secrets/zora/services/ptigoron-token.age;
|
||||||
|
|
|
||||||
16
modules/server/facteur/default.nix
Normal file
16
modules/server/facteur/default.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.syncplay = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.syncplay-nogui;
|
||||||
|
passwordFile = config.age.secrets.facteur-pass.path;
|
||||||
|
};
|
||||||
|
|
||||||
|
age.secrets = {
|
||||||
|
facteur-pass = {
|
||||||
|
file = ../../../secrets/zora/services/facteur-pass.age;
|
||||||
|
mode = "444";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -42,6 +42,8 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
networking.vpn-netns.encapsulatedServices.suwayomi-server.enable = true;
|
||||||
|
|
||||||
age.secrets = {
|
age.secrets = {
|
||||||
suwayomi-pass = {
|
suwayomi-pass = {
|
||||||
file = ../../../secrets/zora/services/lanayru-pass.age;
|
file = ../../../secrets/zora/services/lanayru-pass.age;
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,13 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
services.kanidm = {
|
services.kanidm = {
|
||||||
package = pkgs.kanidmWithSecretProvisioning_1_8;
|
package = pkgs.kanidmWithSecretProvisioning_1_9;
|
||||||
|
|
||||||
enableClient = true;
|
client = {
|
||||||
|
enable = true;
|
||||||
clientSettings = {
|
settings = {
|
||||||
uri = "https://auth.lyes.eu";
|
uri = "https://auth.minish.link";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, ... }:
|
{ config, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
hostname = "auth.${config.networking.domain}";
|
hostname = "auth.minish.link";
|
||||||
port = "44300";
|
port = "44300";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
@ -13,8 +13,9 @@ in
|
||||||
services.kanidm = {
|
services.kanidm = {
|
||||||
# package = pkgs.kanidmWithSecretProvisioning_1_7;
|
# package = pkgs.kanidmWithSecretProvisioning_1_7;
|
||||||
|
|
||||||
enableServer = true;
|
server = {
|
||||||
server.settings = {
|
enable = true;
|
||||||
|
settings = {
|
||||||
bindaddress = "127.0.0.1:${port}";
|
bindaddress = "127.0.0.1:${port}";
|
||||||
ldapbindaddress = "0.0.0.0:636";
|
ldapbindaddress = "0.0.0.0:636";
|
||||||
domain = hostname;
|
domain = hostname;
|
||||||
|
|
@ -28,6 +29,7 @@ in
|
||||||
versions = 5;
|
versions = 5;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
provision = {
|
provision = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
77
modules/server/midona/default.nix
Normal file
77
modules/server/midona/default.nix
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
{ lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
config = lib.toFile "config.yml" ''
|
||||||
|
config:
|
||||||
|
lite:
|
||||||
|
enabled: true
|
||||||
|
routes:
|
||||||
|
- host: stepson.minecraft.minish.link
|
||||||
|
backend: 10.0.100.80:25565
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [ gate ];
|
||||||
|
|
||||||
|
systemd.services.gate = {
|
||||||
|
description = "Gate Minecraft Proxy";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
after = [ "network.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = "${pkgs.gate}/bin/gate --config ${config}";
|
||||||
|
Restart = "always";
|
||||||
|
|
||||||
|
# StandardInput = "socket";
|
||||||
|
# StandardOutput = "journal";
|
||||||
|
# StandardError = "journal";
|
||||||
|
|
||||||
|
# Hardening
|
||||||
|
CapabilityBoundingSet = [ "" ];
|
||||||
|
DeviceAllow = [ "" ];
|
||||||
|
LockPersonality = true;
|
||||||
|
PrivateDevices = true;
|
||||||
|
PrivateTmp = true;
|
||||||
|
PrivateUsers = true;
|
||||||
|
ProtectClock = true;
|
||||||
|
ProtectControlGroups = true;
|
||||||
|
ProtectHome = true;
|
||||||
|
ProtectHostname = true;
|
||||||
|
ProtectKernelLogs = true;
|
||||||
|
ProtectKernelModules = true;
|
||||||
|
ProtectKernelTunables = true;
|
||||||
|
ProtectProc = "invisible";
|
||||||
|
RestrictAddressFamilies = [
|
||||||
|
"AF_INET"
|
||||||
|
"AF_INET6"
|
||||||
|
];
|
||||||
|
RestrictNamespaces = true;
|
||||||
|
RestrictRealtime = true;
|
||||||
|
RestrictSUIDSGID = true;
|
||||||
|
SystemCallArchitectures = "native";
|
||||||
|
UMask = "0077";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx.streamConfig = ''
|
||||||
|
server {
|
||||||
|
listen 24454;
|
||||||
|
proxy_pass 10.0.100.80:24454;
|
||||||
|
}
|
||||||
|
server {
|
||||||
|
listen 24454 udp;
|
||||||
|
proxy_pass 10.0.100.80:24454;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
networking.firewall = {
|
||||||
|
allowedTCPPorts = [
|
||||||
|
25565
|
||||||
|
24454 # Simple Voice Chat stepson
|
||||||
|
];
|
||||||
|
allowedUDPPorts = [
|
||||||
|
25565
|
||||||
|
24454 # Simple Voice Chat stepson
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -32,6 +32,8 @@ let
|
||||||
} forwardedServices;
|
} forwardedServices;
|
||||||
|
|
||||||
serviceList = lib.mapAttrsToList (name: _: name + ".service") forwardedServices;
|
serviceList = lib.mapAttrsToList (name: _: name + ".service") forwardedServices;
|
||||||
|
encServicesList = lib.mapAttrsToList (name: _: name + ".service") cfg.encapsulatedServices;
|
||||||
|
|
||||||
in
|
in
|
||||||
lib.mkIf (forwardedServices != { } && cfg.portForwarding.enable) {
|
lib.mkIf (forwardedServices != { } && cfg.portForwarding.enable) {
|
||||||
assertions = [
|
assertions = [
|
||||||
|
|
@ -49,11 +51,11 @@ lib.mkIf (forwardedServices != { } && cfg.portForwarding.enable) {
|
||||||
services.natpmpc-lease = {
|
services.natpmpc-lease = {
|
||||||
description = "Request VPN port forwarding leases.";
|
description = "Request VPN port forwarding leases.";
|
||||||
|
|
||||||
wantedBy = serviceList;
|
# wantedBy = serviceList;
|
||||||
after = [ "wireguard.target" ];
|
after = [ "wireguard.target" ] ++ encServicesList;
|
||||||
wants = [ "wireguard.target" ];
|
wants = [ "wireguard.target" ] ++ encServicesList;
|
||||||
|
|
||||||
# preStart = "sleep 3";
|
preStart = "sleep 3";
|
||||||
|
|
||||||
path = with pkgs; [
|
path = with pkgs; [
|
||||||
libnatpmp
|
libnatpmp
|
||||||
|
|
|
||||||
|
|
@ -1,31 +1,17 @@
|
||||||
{ config, lib, ... }:
|
{ config, mailserver, ... }:
|
||||||
|
|
||||||
let
|
|
||||||
alias = ''
|
|
||||||
@lyes.eu lyes
|
|
||||||
lyes@mail.lyes.eu lyes
|
|
||||||
abuse@taf.lyes.eu lyes
|
|
||||||
abuse@mail.lyes.eu lyes
|
|
||||||
abuse@minish.fr lyes
|
|
||||||
abuse@minish.link lyes
|
|
||||||
postmaster@taf.lyes.eu lyes
|
|
||||||
postmaster@mail.lyes.eu lyes
|
|
||||||
postmaster@minish.fr lyes
|
|
||||||
postmaster@minish.link lyes
|
|
||||||
'';
|
|
||||||
aliasFile = lib.toFile "alias" alias;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
imports = [
|
||||||
|
mailserver.nixosModules.default
|
||||||
|
];
|
||||||
|
|
||||||
mailserver = {
|
mailserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
stateVersion = 3;
|
stateVersion = 3;
|
||||||
fqdn = "taf.lyes.eu";
|
fqdn = "taf.lyes.eu";
|
||||||
domains = [
|
domains = [
|
||||||
"lyes.eu"
|
"lyes.eu"
|
||||||
"taf.lyes.eu"
|
|
||||||
"mail.lyes.eu"
|
"mail.lyes.eu"
|
||||||
"minish.fr"
|
|
||||||
"minish.link"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
localDnsResolver = false;
|
localDnsResolver = false;
|
||||||
|
|
@ -33,85 +19,175 @@ in
|
||||||
|
|
||||||
# debug.all = true;
|
# debug.all = true;
|
||||||
|
|
||||||
ldap = {
|
# ldap = {
|
||||||
enable = true;
|
|
||||||
|
|
||||||
uris = [ "ldaps://auth.lyes.eu:636" ];
|
|
||||||
searchBase = "dc=auth,dc=lyes,dc=eu";
|
|
||||||
searchScope = "sub";
|
|
||||||
|
|
||||||
bind = {
|
|
||||||
# dn = "dn=token,dc=auth,dc=lyes,dc=eu";
|
|
||||||
dn = "dn=token";
|
|
||||||
passwordFile = config.age.secrets.taf-token.path;
|
|
||||||
};
|
|
||||||
|
|
||||||
dovecot = {
|
|
||||||
userFilter = "(&(memberof=taf_users)(mail=%u))";
|
|
||||||
passFilter = "(&(memberof=taf_users)(mail=%u))";
|
|
||||||
};
|
|
||||||
|
|
||||||
postfix = {
|
|
||||||
filter = "(&(memberof=taf_users)(mail=%s))";
|
|
||||||
mailAttribute = "mail";
|
|
||||||
uidAttribute = "name";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# fullTextSearch = {
|
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# autoIndex = true;
|
|
||||||
# enforced = "body";
|
# uris = [ "ldaps://auth.lyes.eu:636" ];
|
||||||
|
# searchBase = "dc=auth,dc=lyes,dc=eu";
|
||||||
|
# searchScope = "sub";
|
||||||
|
|
||||||
|
# bind = {
|
||||||
|
# # dn = "dn=token,dc=auth,dc=lyes,dc=eu";
|
||||||
|
# dn = "dn=token";
|
||||||
|
# passwordFile = config.age.secrets.taf-token.path;
|
||||||
# };
|
# };
|
||||||
|
|
||||||
# loginAccounts = {
|
# dovecot = {
|
||||||
# "lyes@mail.lyes.eu" = {
|
# userFilter = "(name=%u)";
|
||||||
# # hashedPasswordFile = config.age.secrets.lyes-mail-passwd.path;
|
# passFilter = "(name=%u)";
|
||||||
# # aliases = [
|
# };
|
||||||
# # "@lyes.eu"
|
|
||||||
# # ];
|
# postfix = {
|
||||||
# # quota = "1T";
|
# filter = "(name=%s)";
|
||||||
|
# mailAttribute = "mail";
|
||||||
|
# uidAttribute = "name";
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
|
|
||||||
|
loginAccounts = {
|
||||||
|
"lyes@mail.lyes.eu" = {
|
||||||
|
hashedPasswordFile = config.age.secrets.lyes-mail-passwd.path;
|
||||||
|
aliases = [
|
||||||
|
"@lyes.eu"
|
||||||
|
];
|
||||||
|
quota = "1T";
|
||||||
|
sieveScript = ''
|
||||||
|
require ["include", "fileinto", "mailbox", "copy", "regex", "variables", "imap4flags"];
|
||||||
|
|
||||||
|
include :personal "hiddensieve";
|
||||||
|
|
||||||
|
# lyes.eu filters
|
||||||
|
if address :is :domain "X-Original-To" "lyes.eu" {
|
||||||
|
# If the mail comes from my crans mailbox
|
||||||
|
if address :is :localpart "X-Original-To" "crans" {
|
||||||
|
# Aurore Support
|
||||||
|
if header :contains "List-Id" "<support.aurore.lists.crans.org>" {
|
||||||
|
fileinto :create "Crans.aurore.support";
|
||||||
|
}
|
||||||
|
# Mailman moderation request
|
||||||
|
elsif address :matches :all "To" "*-owner@lists.crans.org" {
|
||||||
|
fileinto :create "Crans.moderation";
|
||||||
|
}
|
||||||
|
# Crans Bureau
|
||||||
|
elsif anyof (
|
||||||
|
header :contains "List-Id" "<bureau.lists.crans.org>",
|
||||||
|
header :contains "List-Id" "<achats-crans.lists.crans.org>",
|
||||||
|
header :contains "List-Id" "<tresorerie.lists.crans.org>"
|
||||||
|
) {
|
||||||
|
fileinto :create "Crans.crans.bureau";
|
||||||
|
}
|
||||||
|
# Crans CA
|
||||||
|
elsif header :contains "List-Id" "<ca.lists.crans.org>" {
|
||||||
|
fileinto :create "Crans.crans.ca";
|
||||||
|
}
|
||||||
|
# Crans Root Postmaster
|
||||||
|
elsif address :is :all "To" "postmaster@crans.org" {
|
||||||
|
addflag "\\Seen";
|
||||||
|
fileinto :create "Crans.crans.root.postmaster";
|
||||||
|
}
|
||||||
|
# Crans Root Mailer
|
||||||
|
elsif address :is :all "From" "MAILER-DAEMON@crans.org" {
|
||||||
|
fileinto :create "Crans.crans.root.mailer";
|
||||||
|
}
|
||||||
|
# Crans Nounou
|
||||||
|
elsif anyof (
|
||||||
|
header :contains "List-Id" "<nounou.lists.crans.org>",
|
||||||
|
header :contains "List-Id" "<apprenti-es.lists.crans.org>",
|
||||||
|
address :is :all "To" "contact@crans.org",
|
||||||
|
address :is :all "From" "contact@crans.org"
|
||||||
|
) {
|
||||||
|
fileinto :create "Crans.crans.nounou";
|
||||||
|
}
|
||||||
|
# Crans Root
|
||||||
|
elsif anyof (
|
||||||
|
address :is :all "To" "root@crans.org",
|
||||||
|
address :is :all "From" "root@crans.org",
|
||||||
|
address :is :all "From" "www-data@crans.org"
|
||||||
|
) {
|
||||||
|
fileinto :create "Crans.crans.root";
|
||||||
|
}
|
||||||
|
# Crans Gitlab
|
||||||
|
elsif address :is :all "From" "gitlab@crans.org" {
|
||||||
|
fileinto :create "Crans.crans.gitlab";
|
||||||
|
}
|
||||||
|
# Crans Wiki
|
||||||
|
elsif address :is :all "From" "wiki@crans.org" {
|
||||||
|
fileinto :create "Crans.crans.wiki";
|
||||||
|
}
|
||||||
|
# Aurore CA
|
||||||
|
elsif header :contains "List-Id" "<ca.aurore.lists.crans.org>" {
|
||||||
|
fileinto :create "Crans.aurore.ca";
|
||||||
|
}
|
||||||
|
# BDL
|
||||||
|
elsif anyof (
|
||||||
|
header :contains "List-Id" "<bdl-bureau.lists.crans.org>",
|
||||||
|
header :contains "List-Id" "<bdl.lists.crans.org>"
|
||||||
|
) {
|
||||||
|
fileinto :create "Crans.asso.bdl";
|
||||||
|
}
|
||||||
|
# Med
|
||||||
|
elsif anyof (
|
||||||
|
header :contains "List-Id" "<med-bureau.lists.crans.org>",
|
||||||
|
header :contains "List-Id" "<med.lists.crans.org>"
|
||||||
|
) {
|
||||||
|
fileinto :create "Crans.asso.med";
|
||||||
|
}
|
||||||
|
# NL BDE
|
||||||
|
elsif header :contains "List-Id" "<evenements.lists.crans.org>" {
|
||||||
|
fileinto :create "Crans.asso.nl.bde";
|
||||||
|
}
|
||||||
|
# NL BDA
|
||||||
|
elsif header :contains "List-Id" "<evenement.bda.lists.crans.org>" {
|
||||||
|
fileinto :create "Crans.asso.nl.bda";
|
||||||
|
}
|
||||||
|
# Any other associative mail
|
||||||
|
elsif anyof (
|
||||||
|
header :contains "List-Id" "<la5emeparallele-bureau.lists.crans.org>",
|
||||||
|
header :contains "List-Id" "<la5emeparallele.lists.crans.org>",
|
||||||
|
header :matches "List-Id" "<*.lists.crans.org>"
|
||||||
|
) {
|
||||||
|
fileinto :create "Crans.asso";
|
||||||
|
}
|
||||||
|
# Otherwise it's for the generic mailbox
|
||||||
|
else {
|
||||||
|
fileinto :create "Crans";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Otherwise it's for my different accounts
|
||||||
|
# It's automatically sorted using the localpart
|
||||||
|
elsif address :localpart :regex "X-Original-To" "^(([a-zA-Z]+\\.)*([a-zA-Z]+))(-([a-zA-Z0-9_.\\-]*))?''$" {
|
||||||
|
set :lower "sub_folder" "''${1}";
|
||||||
|
set "mbox_candidate" "INBOX.''${sub_folder}";
|
||||||
|
fileinto :create "''${mbox_candidate}";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Other unknown origin
|
||||||
|
else {
|
||||||
|
fileinto :create "INBOX.other";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# It's destined to my main inbox
|
||||||
|
elsif address :is "X-Original-To" "lyes@mail.lyes.eu" {
|
||||||
|
fileinto :create "INBOX";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Other unknown origin
|
||||||
|
else {
|
||||||
|
fileinto :create "INBOX.other";
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# extraVirtualAliases = {
|
# extraVirtualAliases = {
|
||||||
# "@lyes.eu" = "lyes";
|
# "@lyes.eu" = "lyes@mail.lyes.eu";
|
||||||
# "abuse@mail.lyes.eu" = "lyes";
|
|
||||||
# # "abuse@minish.fr" = "lyes";
|
|
||||||
# # "abuse@minish.link" = "lyes";
|
|
||||||
# "postmaster@mail.lyes.eu" = "lyes";
|
|
||||||
# # "postmaster@minish.fr" = "lyes";
|
|
||||||
# # "postmaster@minish.link" = "lyes";
|
|
||||||
# };
|
# };
|
||||||
|
|
||||||
x509.useACMEHost = config.mailserver.fqdn;
|
x509.useACMEHost = config.mailserver.fqdn;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.postfix = {
|
|
||||||
mapFiles."valias" = lib.mkForce aliasFile;
|
|
||||||
mapFiles."vaccounts" = lib.mkForce aliasFile;
|
|
||||||
virtual = lib.mkForce alias;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
main = {
|
|
||||||
# local_recipient_maps = "";
|
|
||||||
# virtual_alias_maps = lib.mkForce "ldap:/run/postfix/ldap-virtual-mailbox-map.cf";
|
|
||||||
|
|
||||||
maximal_queue_lifetime = "31d";
|
|
||||||
|
|
||||||
relay_domains = [
|
|
||||||
"skaven.org"
|
|
||||||
"agreg.info"
|
|
||||||
];
|
|
||||||
|
|
||||||
smtpd_recipient_restrictions = [
|
|
||||||
"permit_mynetworks"
|
|
||||||
"permit_sasl_authenticated"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# services.dovecot2.extraConfig = ''
|
# services.dovecot2.extraConfig = ''
|
||||||
# userdb {
|
# userdb {
|
||||||
# driver = ldap
|
# driver = ldap
|
||||||
|
|
@ -128,10 +204,7 @@ in
|
||||||
# }
|
# }
|
||||||
# '';
|
# '';
|
||||||
|
|
||||||
services.dovecot2 = {
|
services.dovecot2.sieve.extensions = [ "imap4flags" ];
|
||||||
# enableQuota = lib.mkForce false;
|
|
||||||
sieve.extensions = [ "imap4flags" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.roundcube = {
|
services.roundcube = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -148,12 +221,21 @@ in
|
||||||
|
|
||||||
age.secrets = {
|
age.secrets = {
|
||||||
taf-token = {
|
taf-token = {
|
||||||
|
owner = "postfix";
|
||||||
file = ../../../secrets/zora/services/taf-token.age;
|
file = ../../../secrets/zora/services/taf-token.age;
|
||||||
};
|
};
|
||||||
|
|
||||||
# lyes-mail-passwd = {
|
lyes-mail-passwd = {
|
||||||
# owner = "postfix";
|
owner = "postfix";
|
||||||
# file = ../../../secrets/lyes/mail-passwd.age;
|
file = ../../../secrets/lyes/mail-passwd.age;
|
||||||
# };
|
};
|
||||||
|
|
||||||
|
lyes-hidden-sieve = {
|
||||||
|
file = ../../../secrets/lyes/hidden-sieve.age;
|
||||||
|
path = "/var/sieve/lyes@mail.lyes.eu/scripts/hiddensieve.sieve";
|
||||||
|
owner = "virtualMail";
|
||||||
|
group = "virtualMail";
|
||||||
|
mode = "660";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,14 @@
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
cmake,
|
cmake,
|
||||||
curl,
|
curl,
|
||||||
qt6,
|
libxml2,
|
||||||
libxml2
|
qtbase,
|
||||||
|
wrapQtAppsHook,
|
||||||
|
qtscxml,
|
||||||
|
qtquicktimeline,
|
||||||
|
qtquickeffectmaker,
|
||||||
|
qtnetworkauth,
|
||||||
|
qttools,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation (final: {
|
stdenv.mkDerivation (final: {
|
||||||
|
|
@ -18,10 +24,20 @@ stdenv.mkDerivation (final: {
|
||||||
hash = "sha256-hqoUkzPNxAIvC/7DL9YIMPmUZqAreqCbG8NKidVtSDM=";
|
hash = "sha256-hqoUkzPNxAIvC/7DL9YIMPmUZqAreqCbG8NKidVtSDM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
buildInputs = [ qtbase ];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
cmake
|
cmake
|
||||||
curl
|
curl
|
||||||
qt6.full
|
# qt6.env
|
||||||
|
qtscxml
|
||||||
|
# qtquick3d
|
||||||
|
# qtquick3dphysics
|
||||||
|
qtquicktimeline
|
||||||
|
qtquickeffectmaker
|
||||||
|
qtnetworkauth
|
||||||
|
qttools
|
||||||
libxml2
|
libxml2
|
||||||
|
wrapQtAppsHook
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
|
|
|
||||||
103
pkgs/cinny/cinny-desktop.nix
Normal file
103
pkgs/cinny/cinny-desktop.nix
Normal file
|
|
@ -0,0 +1,103 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
fetchFromGitHub,
|
||||||
|
rustPlatform,
|
||||||
|
cargo-tauri,
|
||||||
|
cinny,
|
||||||
|
desktop-file-utils,
|
||||||
|
wrapGAppsHook4,
|
||||||
|
makeBinaryWrapper,
|
||||||
|
pkg-config,
|
||||||
|
openssl,
|
||||||
|
glib-networking,
|
||||||
|
webkitgtk_4_1,
|
||||||
|
jq,
|
||||||
|
moreutils,
|
||||||
|
}:
|
||||||
|
|
||||||
|
rustPlatform.buildRustPackage (finalAttrs: {
|
||||||
|
pname = "cinny-desktop";
|
||||||
|
version = "4.11.1";
|
||||||
|
|
||||||
|
# nixpkgs-update: no auto update
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "cinnyapp";
|
||||||
|
repo = "cinny-desktop";
|
||||||
|
tag = "v4.11.2";
|
||||||
|
hash = "sha256-iH3OBpLM5JyFo5QLjHSvGMgl0xDP9hpfngW49hvjLMY=";
|
||||||
|
};
|
||||||
|
|
||||||
|
sourceRoot = "${finalAttrs.src.name}/src-tauri";
|
||||||
|
|
||||||
|
cargoHash = "sha256-g1xDdqmouHD+qr5OvO2PVjFKAy2AXiatuTrLfh/QxAE=";
|
||||||
|
|
||||||
|
postPatch =
|
||||||
|
let
|
||||||
|
cinny' =
|
||||||
|
assert lib.assertMsg (
|
||||||
|
cinny.version == finalAttrs.version
|
||||||
|
) "cinny.version (${cinny.version}) != cinny-desktop.version (${finalAttrs.version})";
|
||||||
|
cinny.override {
|
||||||
|
conf = {
|
||||||
|
hashRouter.enabled = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
# 'del(.app.windows) | del(.plugins.updater) | .bundle.createUpdaterArtifacts = false | .build.frontendDist = "${cinny'}" | del(.build.beforeBuildCommand)' tauri.conf.json \
|
||||||
|
''
|
||||||
|
${lib.getExe jq} \
|
||||||
|
'del(.plugins.tauri.updater) | .bundle.createUpdaterArtifacts = false | .build.frontendDist = "${cinny'}" | del(.build.beforeBuildCommand)' tauri.conf.json \
|
||||||
|
| ${lib.getExe' moreutils "sponge"} tauri.conf.json
|
||||||
|
cat tauri.conf.json
|
||||||
|
'';
|
||||||
|
|
||||||
|
postInstall =
|
||||||
|
lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||||
|
mkdir -p "$out/bin"
|
||||||
|
makeWrapper "$out/Applications/Cinny.app/Contents/MacOS/Cinny" "$out/bin/cinny"
|
||||||
|
''
|
||||||
|
+ lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||||
|
desktop-file-edit \
|
||||||
|
--set-comment "Yet another matrix client for desktop" \
|
||||||
|
--set-key="Categories" --set-value="Network;InstantMessaging;" \
|
||||||
|
$out/share/applications/Cinny.desktop
|
||||||
|
'';
|
||||||
|
|
||||||
|
preFixup = ''
|
||||||
|
gappsWrapperArgs+=(
|
||||||
|
--set-default WEBKIT_DISABLE_DMABUF_RENDERER "1"
|
||||||
|
)
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cargo-tauri.hook
|
||||||
|
]
|
||||||
|
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||||
|
desktop-file-utils
|
||||||
|
pkg-config
|
||||||
|
wrapGAppsHook4
|
||||||
|
]
|
||||||
|
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||||
|
makeBinaryWrapper
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
|
||||||
|
glib-networking
|
||||||
|
openssl
|
||||||
|
webkitgtk_4_1
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Yet another matrix client for desktop";
|
||||||
|
homepage = "https://github.com/cinnyapp/cinny-desktop";
|
||||||
|
maintainers = with lib.maintainers; [
|
||||||
|
qyriad
|
||||||
|
rebmit
|
||||||
|
ryand56
|
||||||
|
];
|
||||||
|
license = lib.licenses.agpl3Only;
|
||||||
|
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||||
|
mainProgram = "cinny";
|
||||||
|
};
|
||||||
|
})
|
||||||
52
pkgs/cinny/cinny-unwrapped.nix
Normal file
52
pkgs/cinny/cinny-unwrapped.nix
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
buildNpmPackage,
|
||||||
|
fetchFromGitHub,
|
||||||
|
nodejs_22,
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildNpmPackage {
|
||||||
|
pname = "cinny-unwrapped";
|
||||||
|
# Remember to update cinny-desktop when bumping this version.
|
||||||
|
version = "4.11.1";
|
||||||
|
|
||||||
|
# nixpkgs-update: no auto update
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "cinnyapp";
|
||||||
|
repo = "cinny";
|
||||||
|
# rev = "55e83065767645ed7cd510a6f4b5cf4733b000b4";
|
||||||
|
tag = "v4.11.1";
|
||||||
|
# hash = "sha256-2qxmlj4IK6twDh27R6qMJDmYSfsWoofVGuRHxSP72f0=";
|
||||||
|
hash = "sha256-dwI3zNey/ukF3t2fhH/ePf4o4iBDwZyLWMYebPgXmWU=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nodejs = nodejs_22;
|
||||||
|
|
||||||
|
# npmDepsHash = "sha256-qyQ0SXkPSUES/tavKzPra0Q+ZnU9qHvkTC1JgAjL0o8=";
|
||||||
|
# npmDepsHash = "sha256-2Lrd0jAwAH6HkwLHyivqwaEhcpFAIALuno+MchSIfxo=";
|
||||||
|
npmDepsHash = "sha256-27WFjb08p09aJRi0S2PvYq3bivEuG5+z2QhFahTSj4Q=";
|
||||||
|
|
||||||
|
# Skip rebuilding native modules since they're not needed for the web app
|
||||||
|
npmRebuildFlags = [
|
||||||
|
"--ignore-scripts"
|
||||||
|
];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
cp -r dist $out
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Yet another Matrix client for the web";
|
||||||
|
homepage = "https://cinny.in/";
|
||||||
|
maintainers = with lib.maintainers; [
|
||||||
|
abbe
|
||||||
|
rebmit
|
||||||
|
];
|
||||||
|
license = lib.licenses.agpl3Only;
|
||||||
|
platforms = lib.platforms.all;
|
||||||
|
};
|
||||||
|
}
|
||||||
32
pkgs/cinny/cinny.nix
Normal file
32
pkgs/cinny/cinny.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
cinny-unwrapped,
|
||||||
|
jq,
|
||||||
|
stdenvNoCC,
|
||||||
|
writeText,
|
||||||
|
conf ? { },
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
configOverrides = writeText "cinny-config-overrides.json" (builtins.toJSON conf);
|
||||||
|
in
|
||||||
|
if (conf == { }) then
|
||||||
|
cinny-unwrapped
|
||||||
|
else
|
||||||
|
stdenvNoCC.mkDerivation {
|
||||||
|
pname = "cinny";
|
||||||
|
inherit (cinny-unwrapped) version meta;
|
||||||
|
|
||||||
|
dontUnpack = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ jq ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p $out
|
||||||
|
ln -s ${cinny-unwrapped}/* $out
|
||||||
|
rm $out/config.json
|
||||||
|
jq -s '.[0] * .[1]' "${cinny-unwrapped}/config.json" "${configOverrides}" > "$out/config.json"
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
{ pkgs ? import <nixpkgs> { } }:
|
{ pkgs ? import <nixpkgs> { } }:
|
||||||
|
|
||||||
{
|
rec {
|
||||||
quadcastrgb = pkgs.callPackage ./quadcastrgb { };
|
quadcastrgb = pkgs.callPackage ./quadcastrgb { };
|
||||||
ens-intel-unite = pkgs.callPackage ./ens-intel-unite { };
|
ens-intel-unite = pkgs.callPackage ./ens-intel-unite { };
|
||||||
KhinsiderDownloader = pkgs.callPackage ./KhinsiderDownloader { };
|
KhinsiderDownloader = pkgs.qt6Packages.callPackage ./KhinsiderDownloader { };
|
||||||
amy-mono = pkgs.callPackage ./amy-mono { };
|
amy-mono = pkgs.callPackage ./amy-mono { };
|
||||||
|
cinny = pkgs.callPackage ./cinny/cinny.nix { inherit cinny-unwrapped; };
|
||||||
|
cinny-unwrapped = pkgs.callPackage ./cinny/cinny-unwrapped.nix { };
|
||||||
|
cinny-desktop = pkgs.callPackage ./cinny/cinny-desktop.nix { inherit cinny; };
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ in
|
||||||
{
|
{
|
||||||
# Lyes
|
# Lyes
|
||||||
"secrets/lyes/mail-passwd.age".publicKeys = [ lyes zora ];
|
"secrets/lyes/mail-passwd.age".publicKeys = [ lyes zora ];
|
||||||
"secrets/lyes/sieve.age".publicKeys = [ lyes zora ];
|
"secrets/lyes/hidden-sieve.age".publicKeys = [ lyes zora ];
|
||||||
|
|
||||||
# Zora
|
# Zora
|
||||||
"secrets/zora/services/kanidm-admin-password.age".publicKeys = all;
|
"secrets/zora/services/kanidm-admin-password.age".publicKeys = all;
|
||||||
|
|
@ -27,4 +27,5 @@ in
|
||||||
"secrets/zora/services/lanayru-pass.age".publicKeys = all;
|
"secrets/zora/services/lanayru-pass.age".publicKeys = all;
|
||||||
"secrets/zora/services/agraf-root-pass.age".publicKeys = all;
|
"secrets/zora/services/agraf-root-pass.age".publicKeys = all;
|
||||||
"secrets/zora/services/agraf-lyes-pass.age".publicKeys = all;
|
"secrets/zora/services/agraf-lyes-pass.age".publicKeys = all;
|
||||||
|
"secrets/zora/services/facteur-pass.age".publicKeys = all;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
BIN
secrets/lyes/hidden-sieve.age
Normal file
BIN
secrets/lyes/hidden-sieve.age
Normal file
Binary file not shown.
Binary file not shown.
7
secrets/zora/services/facteur-pass.age
Normal file
7
secrets/zora/services/facteur-pass.age
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 whuRpQ SjgklfrTXj3TptfA1MxYkbjcWkFNTNwvpHoto0YfEnY
|
||||||
|
/MhJDiLIqHjUKU8jEe9NPTR/29YYij8E6u6t9/Mj1VM
|
||||||
|
-> ssh-ed25519 TFqgIg qXDuQIj9gq/hO07+6KBkCKVTd3L6eomSMetxXfVu1yc
|
||||||
|
RWpVvmkM5hN9yHO4JlPWsTvl8sDG0DOA1y5DGcTlTa0
|
||||||
|
--- UwLsYqcbzfvzL2SoevAhhG2K1JA3XlHTVeF73nEU21c
|
||||||
|
÷ÑKÒ¶d¯IT«[îöWFäu×f¹Èê:¶Lp‡Äl8Š€6©X©
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -24,4 +24,9 @@
|
||||||
via
|
via
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Fixing launch issues with some desktops (sway...)
|
||||||
|
# systemd.user.extraConfig = ''
|
||||||
|
# DefaultEnvironment="PATH=/run/current-system/sw/bin"
|
||||||
|
# '';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
shell-integration-features = [
|
shell-integration-features = [
|
||||||
"sudo"
|
"sudo"
|
||||||
"ssh-env"
|
"ssh-env"
|
||||||
"ssh-terminfo"
|
# "ssh-terminfo"
|
||||||
];
|
];
|
||||||
|
|
||||||
# keybind = [
|
# keybind = [
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,8 @@ in
|
||||||
swaynag.enable = true;
|
swaynag.enable = true;
|
||||||
config = {
|
config = {
|
||||||
startup = [
|
startup = [
|
||||||
{ command = "poweralertd"; }
|
{ command = "${pkgs.poweralertd}/bin/poweralertd"; }
|
||||||
|
# { command = "${pkgs.vicinae}/bin/vicinae server"; }
|
||||||
{
|
{
|
||||||
command = ''
|
command = ''
|
||||||
swayidle -w \
|
swayidle -w \
|
||||||
|
|
@ -35,7 +36,7 @@ in
|
||||||
];
|
];
|
||||||
|
|
||||||
modifier = "Mod4";
|
modifier = "Mod4";
|
||||||
menu = "${pkgs.wofi}/bin/wofi --show drun";
|
menu = "${pkgs.vicinae}/bin/vicinae toggle";
|
||||||
# Switch to ghostty ?
|
# Switch to ghostty ?
|
||||||
terminal = "${pkgs.ghostty}/bin/ghostty";
|
terminal = "${pkgs.ghostty}/bin/ghostty";
|
||||||
|
|
||||||
|
|
@ -610,6 +611,52 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
|
vicinae = {
|
||||||
|
enable = true;
|
||||||
|
systemd = {
|
||||||
|
enable = true;
|
||||||
|
autoStart = true;
|
||||||
|
# environment = {
|
||||||
|
# USE_LAYER_SHELL = 1;
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
# useLayerShell = false;
|
||||||
|
settings = {
|
||||||
|
close_on_focus_loss = false;
|
||||||
|
consider_preedit = true;
|
||||||
|
pop_to_root_on_close = true;
|
||||||
|
launcher_window.layer_shell.enabled = false;
|
||||||
|
theme = {
|
||||||
|
light = {
|
||||||
|
name = "rose-pine-moon";
|
||||||
|
};
|
||||||
|
dark = {
|
||||||
|
name = "rose-pine-moon";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extensions =
|
||||||
|
let
|
||||||
|
extsrc = pkgs.fetchFromGitHub {
|
||||||
|
owner = "vicinaehq";
|
||||||
|
repo = "extensions";
|
||||||
|
sha256 = "sha256-KwNv+THKbNUey10q26NZPDMSzYTObRHaSDr81QP9CPY=";
|
||||||
|
rev = "cf30b80f619282d45b1748eb76e784a4f875bb01";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
lib.map
|
||||||
|
(ext:
|
||||||
|
config.lib.vicinae.mkExtension {
|
||||||
|
name = ext;
|
||||||
|
src = extsrc + "/extensions/" + ext;
|
||||||
|
}
|
||||||
|
)
|
||||||
|
[
|
||||||
|
"bluetooth"
|
||||||
|
"nix"
|
||||||
|
"power-profile"
|
||||||
|
];
|
||||||
|
};
|
||||||
wofi = {
|
wofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {};
|
settings = {};
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
userDirs = {
|
userDirs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
createDirectories = true;
|
createDirectories = true;
|
||||||
|
setSessionVariables = true;
|
||||||
desktop = "${config.home.homeDirectory}/Bureau";
|
desktop = "${config.home.homeDirectory}/Bureau";
|
||||||
documents = "${config.home.homeDirectory}/Documents";
|
documents = "${config.home.homeDirectory}/Documents";
|
||||||
download = "${config.home.homeDirectory}/Téléchargements";
|
download = "${config.home.homeDirectory}/Téléchargements";
|
||||||
|
|
@ -35,53 +36,66 @@
|
||||||
"x-scheme-handler/sms" = "org.gnome.Shell.Extensions.GSConnect.desktop;";
|
"x-scheme-handler/sms" = "org.gnome.Shell.Extensions.GSConnect.desktop;";
|
||||||
"x-scheme-handler/tel" = "org.gnome.Shell.Extensions.GSConnect.desktop;";
|
"x-scheme-handler/tel" = "org.gnome.Shell.Extensions.GSConnect.desktop;";
|
||||||
};
|
};
|
||||||
defaultApplications = {
|
|
||||||
"text/plain" = "org.gnome.TextEditor.desktop";
|
defaultApplications =
|
||||||
"text/markdown" = "org.gnome.TextEditor.desktop";
|
let
|
||||||
"text/json" = "org.gnome.TextEditor.desktop";
|
web = "firefox.desktop";
|
||||||
"text/html" = "firefox.desktop";
|
mail = "thunderbird.desktop";
|
||||||
"text/xml" = "org.gnome.TextEditor.desktop";
|
editor = "org.gnome.TextEditor.desktop";
|
||||||
"image/avif" = "org.gnome.Loupe.desktop";
|
image = "org.gnome.Loupe.desktop";
|
||||||
"image/png" = "org.gnome.Loupe.desktop";
|
video = "mpv.desktop";
|
||||||
"image/jpeg" = "org.gnome.Loupe.desktop";
|
audio = "mpv.desktop";
|
||||||
"image/svg+xml" = "org.gnome.Loupe.desktop";
|
office-writer = "writer.desktop";
|
||||||
"image/gif" = "org.gnome.Loupe.desktop";
|
office-document = "impress.desktop";
|
||||||
"image/webp" = "org.gnome.Loupe.desktop";
|
office-spreadsheet = "calc.desktop";
|
||||||
"audio/mpeg" = "mpv.desktop";
|
in
|
||||||
"audio/aac" = "mpv.desktop";
|
{
|
||||||
"audio/webm" = "mpv.desktop";
|
"text/plain" = editor;
|
||||||
"audio/ogg" = "mpv.desktop";
|
"text/markdown" = editor;
|
||||||
"video/x-matroska" = "mpv.desktop";
|
"text/json" = editor;
|
||||||
"video/mp4" = "mpv.desktop";
|
"text/html" = web;
|
||||||
"video/webm" = "mpv.desktop";
|
"text/xml" = editor;
|
||||||
"video/ogg" = "mpv.desktop";
|
"image/avif" = image;
|
||||||
|
"image/png" = image;
|
||||||
|
"image/jpeg" = image;
|
||||||
|
"image/svg+xml" = image;
|
||||||
|
"image/gif" = image;
|
||||||
|
"image/webp" = image;
|
||||||
|
"audio/mpeg" = audio;
|
||||||
|
"audio/aac" = audio;
|
||||||
|
"audio/webm" = audio;
|
||||||
|
"audio/ogg" = audio;
|
||||||
|
"video/x-matroska" = video;
|
||||||
|
"video/mp4" = video;
|
||||||
|
"video/webm" = video;
|
||||||
|
"video/ogg" = video;
|
||||||
"application/pdf" = "org.gnome.Papers.desktop";
|
"application/pdf" = "org.gnome.Papers.desktop";
|
||||||
"application/msword" = "onlyoffice-desktopeditors.desktop";
|
"application/msword" = office-writer;
|
||||||
"application/vnd.ms-powerpoint" = "onlyoffice-desktopeditors.desktop";
|
"application/vnd.ms-powerpoint" = office-document;
|
||||||
"application/vnd.ms-excel" = "onlyoffice-desktopeditors.desktop";
|
"application/vnd.ms-excel" = office-spreadsheet;
|
||||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.document" = "onlyoffice-desktopeditors.desktop";
|
"application/vnd.openxmlformats-officedocument.wordprocessingml.document" = office-writer;
|
||||||
"application/vnd.openxmlformats-officedocument.presentationml.presentation" = "onlyoffice-desktopeditors.desktop";
|
"application/vnd.openxmlformats-officedocument.presentationml.presentation" = office-document;
|
||||||
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" = "onlyoffice-desktopeditors.desktop";
|
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" = office-spreadsheet;
|
||||||
"application/vnd.oasis.opendocument.text" = "onlyoffice-desktopeditors.desktop";
|
"application/vnd.oasis.opendocument.text" = office-writer;
|
||||||
"application/vnd.oasis.opendocument.presentation" = "onlyoffice-desktopeditors.desktop";
|
"application/vnd.oasis.opendocument.presentation" = office-document;
|
||||||
"application/vnd.oasis.opendocument.spreadsheet" = "onlyoffice-desktopeditors.desktop";
|
"application/vnd.oasis.opendocument.spreadsheet" = office-spreadsheet;
|
||||||
"application/epub+zip" = "com.github.johnfactotum.Foliate.desktop";
|
"application/epub+zip" = "com.github.johnfactotum.Foliate.desktop";
|
||||||
"application/ogg" = "mpv.desktop";
|
"application/ogg" = audio;
|
||||||
"application/xml" = "org.gnome.TextEditor.desktop";
|
"application/xml" = editor;
|
||||||
"application/xhtml+xml" = "firefox.desktop";
|
"application/xhtml+xml" = web;
|
||||||
"application/x-extension-htm" = "firefox.desktop";
|
"application/x-extension-htm" = web;
|
||||||
"application/x-extension-html" = "firefox.desktop";
|
"application/x-extension-html" = web;
|
||||||
"application/x-extension-shtml" = "firefox.desktop";
|
"application/x-extension-shtml" = web;
|
||||||
"application/x-extension-xhtml" = "firefox.desktop";
|
"application/x-extension-xhtml" = web;
|
||||||
"application/x-extension-xht" = "firefox.desktop";
|
"application/x-extension-xht" = web;
|
||||||
"application/x-bittorrent" = "de.haeckerfelix.Fragments.desktop";
|
"application/x-bittorrent" = "de.haeckerfelix.Fragments.desktop";
|
||||||
"message/rfc822" = "thunderbird.desktop";
|
"message/rfc822" = mail;
|
||||||
"x-scheme-handler/mailto" = "thunderbird.desktop";
|
"x-scheme-handler/mailto" = mail;
|
||||||
"x-scheme-handler/mid" = "thunderbird.desktop";
|
"x-scheme-handler/mid" = mail;
|
||||||
"x-scheme-handler/discord" = "vesktop.desktop";
|
"x-scheme-handler/discord" = "vesktop.desktop";
|
||||||
"x-scheme-handler/http" = "firefox.desktop";
|
"x-scheme-handler/http" = web;
|
||||||
"x-scheme-handler/https" = "firefox.desktop";
|
"x-scheme-handler/https" = web;
|
||||||
"x-scheme-handler/chrome" = "firefox.desktop";
|
"x-scheme-handler/chrome" = web;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,8 @@ in {
|
||||||
element-desktop
|
element-desktop
|
||||||
fractal
|
fractal
|
||||||
zoom-us
|
zoom-us
|
||||||
# cinny-desktop
|
local.cinny-desktop
|
||||||
|
mattermost-desktop
|
||||||
|
|
||||||
# Image
|
# Image
|
||||||
gimp
|
gimp
|
||||||
|
|
@ -58,15 +59,16 @@ in {
|
||||||
# stremio # insecure dependency
|
# stremio # insecure dependency
|
||||||
|
|
||||||
# Audio
|
# Audio
|
||||||
helvum
|
crosspipe
|
||||||
local.quadcastrgb
|
local.quadcastrgb
|
||||||
euphonica
|
euphonica
|
||||||
#local.KhinsiderDownloader
|
local.KhinsiderDownloader
|
||||||
|
|
||||||
# Games
|
# Games
|
||||||
heroic
|
heroic
|
||||||
cemu
|
cemu
|
||||||
prismlauncher
|
prismlauncher
|
||||||
|
cubiomes-viewer
|
||||||
# vvvvvv
|
# vvvvvv
|
||||||
ryubing
|
ryubing
|
||||||
dolphin-emu
|
dolphin-emu
|
||||||
|
|
@ -75,6 +77,7 @@ in {
|
||||||
# suyu
|
# suyu
|
||||||
pin.factorio.factorio
|
pin.factorio.factorio
|
||||||
sgt-puzzles
|
sgt-puzzles
|
||||||
|
archipelago
|
||||||
|
|
||||||
# Reading
|
# Reading
|
||||||
# calibre
|
# calibre
|
||||||
|
|
@ -99,6 +102,7 @@ in {
|
||||||
vscodium
|
vscodium
|
||||||
# zed-editor
|
# zed-editor
|
||||||
gcc
|
gcc
|
||||||
|
gnumake
|
||||||
rustup
|
rustup
|
||||||
python3
|
python3
|
||||||
zola
|
zola
|
||||||
|
|
@ -112,7 +116,7 @@ in {
|
||||||
nodejs
|
nodejs
|
||||||
nil
|
nil
|
||||||
nixd
|
nixd
|
||||||
nixfmt-rfc-style
|
nixfmt
|
||||||
protege # LogIA Course
|
protege # LogIA Course
|
||||||
haskellPackages.Agda
|
haskellPackages.Agda
|
||||||
agdaPackages.standard-library
|
agdaPackages.standard-library
|
||||||
|
|
@ -169,6 +173,7 @@ in {
|
||||||
packages = [
|
packages = [
|
||||||
# Internet
|
# Internet
|
||||||
"net.waterfox.waterfox"
|
"net.waterfox.waterfox"
|
||||||
|
"io.freetubeapp.FreeTube"
|
||||||
|
|
||||||
# Messaging
|
# Messaging
|
||||||
"org.signal.Signal"
|
"org.signal.Signal"
|
||||||
|
|
@ -196,13 +201,13 @@ in {
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
# Version pins
|
# Version pins
|
||||||
(final: prev: {
|
(final: prev: {
|
||||||
# factorio = prev.factorio.overrideAttrs (super: {
|
# factorio = final.factorio.overrideAttrs (super: {
|
||||||
# version = "2.0.42";
|
# version = "2.0.42";
|
||||||
# # src.name = "factorio_alpha_x64-2.0.42.tar.xz";
|
# # src.name = "factorio_alpha_x64-2.0.42.tar.xz";
|
||||||
# # src.sha256 = "1zq6wcqkmn9bzys27v0jlk9m9m1jhaai1mybdv8hz7p2si4l76n9";
|
# # src.sha256 = "1zq6wcqkmn9bzys27v0jlk9m9m1jhaai1mybdv8hz7p2si4l76n9";
|
||||||
# src = "/nix/store/b9y0dwgxa6hpddrd8nn0g2fizxl3xss7-factorio_alpha_x64-2.0.42.tar.xz";
|
# src = "/nix/store/b9y0dwgxa6hpddrd8nn0g2fizxl3xss7-factorio_alpha_x64-2.0.42.tar.xz";
|
||||||
# });
|
# });
|
||||||
# factorio = prev.factorio.overrideAttrs (super: {
|
# factorio = final.factorio.overrideAttrs (super: {
|
||||||
# username = "ntlyes";
|
# username = "ntlyes";
|
||||||
# token = "";
|
# token = "";
|
||||||
# src =
|
# src =
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,16 @@
|
||||||
{ home-manager, config, ... }:
|
{ home-manager, config, inputs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports = [
|
||||||
[
|
|
||||||
home-manager.nixosModules.default
|
home-manager.nixosModules.default
|
||||||
];
|
];
|
||||||
|
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.backupFileExtension = "backup";
|
home-manager.backupFileExtension = "backup";
|
||||||
|
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||||
home-manager.users.lyes = { ... }: {
|
home-manager.users.lyes = { ... }: {
|
||||||
imports =
|
imports = [
|
||||||
[
|
|
||||||
./editors
|
./editors
|
||||||
./shells
|
./shells
|
||||||
./home.nix
|
./home.nix
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
{ ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.helix = {
|
programs.helix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
package = pkgs.helix-with-extensions;
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[
|
|
||||||
./sieve.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
age.secrets = {
|
|
||||||
lyes-sieve = {
|
|
||||||
file = ../../../secrets/lyes/sieve.age;
|
|
||||||
path = "/var/sieve/lyes@taf.lyes.eu/default.sieve";
|
|
||||||
owner = "virtualMail";
|
|
||||||
group = "virtualMail";
|
|
||||||
mode = "660";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue