Flake for my desktop, laptop, and my homelab.
0

Configure Feed

Select the types of activity you want to include in your feed.

update wireguard

Adam0 (Jun 16, 2026, 10:47 PM +0200) 060aa1f0 17c18e88

+70 -28
+41
modules/programs/gui/discord/themes/snippets.css
··· 215 215 .slider_a562c8:hover .grabber_a562c8 { 216 216 visibility: visible !important; 217 217 } 218 + 219 + /* Theme vc buttons on servers. */ 220 + .iconBadge__650eb:not(.isCurrentUserConnected__650eb) { 221 + background-color: var(--accent-1) !important; 222 + } 223 + 224 + /* Group online rect fix. */ 225 + .container__1ce5d:has(.status_a423bd[style='background-color: rgb(69, 163, 102);'])::after { 226 + background: var(--online-2) !important; 227 + } 228 + 229 + /* Review padding fix. */ 230 + .bodySpacerBottom__8a031 { 231 + display: none !important; 232 + } 233 + .footer__8a031.section__8a031 { 234 + padding-top: 0px !important; 235 + } 236 + 237 + /* Themed toast progress bar. */ 238 + .vc-toast-notifications-notification-progressbar { 239 + background-color: var(--accent-1); 240 + } 241 + 242 + /* Fix for hover buttons. */ 243 + .controlIcon_cf09d8:hover { 244 + color: var(--interactive-text-default) !important; 245 + } 246 + 247 + /* Character count color fix. */ 248 + .vc-charCounter-selected { 249 + color: var(--accent-1) !important; 250 + } 251 + 252 + /* Themed slate toolbar. */ 253 + #slate-toolbar { 254 + background-color: var(--background-base-low); 255 + } 256 + #slate-toolbar::before { 257 + border-top: 8px solid var(--background-base-low); 258 + }
+17 -16
modules/services/proton-wireguard.nix
··· 18 18 19 19 ip = getExe' pkgs.iproute2 "ip"; 20 20 secret = config.sops.placeholder; 21 + secretPrefix = "wireguard/${config.networking.hostName}/proton"; 21 22 22 23 privateIPv4Subnets = [ 23 24 "10.0.0.0/8" ··· 56 57 sops = { 57 58 secrets = { 58 59 # keep-sorted start 59 - "wireguard/proton/address" = {}; 60 - "wireguard/proton/allowed_ips" = {}; 61 - "wireguard/proton/dns" = {}; 62 - "wireguard/proton/endpoint" = {}; 63 - "wireguard/proton/private_key" = {}; 64 - "wireguard/proton/proxy/password" = {}; 65 - "wireguard/proton/proxy/user" = {}; 66 - "wireguard/proton/public_key" = {}; 60 + "${secretPrefix}/address" = {}; 61 + "${secretPrefix}/allowed_ips" = {}; 62 + "${secretPrefix}/dns" = {}; 63 + "${secretPrefix}/endpoint" = {}; 64 + "${secretPrefix}/private_key" = {}; 65 + "${secretPrefix}/proxy/password" = {}; 66 + "${secretPrefix}/proxy/user" = {}; 67 + "${secretPrefix}/public_key" = {}; 67 68 qbittorrent_proxy_path = {}; 68 69 # keep-sorted end 69 70 }; ··· 72 73 mode = "0400"; 73 74 content = '' 74 75 [Interface] 75 - PrivateKey = ${secret."wireguard/proton/private_key"} 76 - Address = ${secret."wireguard/proton/address"} 77 - DNS = ${secret."wireguard/proton/dns"} 76 + PrivateKey = ${secret."${secretPrefix}/private_key"} 77 + Address = ${secret."${secretPrefix}/address"} 78 + DNS = ${secret."${secretPrefix}/dns"} 78 79 MTU = 1420 79 80 Table = ${routingTableString} 80 81 81 82 [Peer] 82 - PublicKey = ${secret."wireguard/proton/public_key"} 83 - AllowedIPs = ${secret."wireguard/proton/allowed_ips"} 84 - Endpoint = ${secret."wireguard/proton/endpoint"} 83 + PublicKey = ${secret."${secretPrefix}/public_key"} 84 + AllowedIPs = ${secret."${secretPrefix}/allowed_ips"} 85 + Endpoint = ${secret."${secretPrefix}/endpoint"} 85 86 PersistentKeepalive = 25 86 87 ''; 87 88 }; ··· 174 175 exec ${getExe pkgs.tinyproxy} -d -c "$config_file" 175 176 ''; 176 177 LoadCredential = [ 177 - "proxy_password:${config.sops.secrets."wireguard/proton/proxy/password".path}" 178 - "proxy_user:${config.sops.secrets."wireguard/proton/proxy/user".path}" 178 + "proxy_password:${config.sops.secrets."${secretPrefix}/proxy/password".path}" 179 + "proxy_user:${config.sops.secrets."${secretPrefix}/proxy/user".path}" 179 180 ]; 180 181 Restart = "always"; 181 182 RestartSec = "5s";
+12 -12
secrets.yaml
··· 62 62 mysql: 63 63 admin_password: ENC[AES256_GCM,data:egySL8SuW3W+jWW0Rd2a3MvUkYrl6MmT3SfonnPOTNg6B+W90yzrKoqyilEh8MMVIDn5qhRPdtSIp8MGwi9wZQ==,iv:d4AL+Lc8kxk+9zKHAyPIRFigkCZeVk0WtoYbrGB7j+Q=,tag:aEFZKufG0ZXHxvmxJHeFVQ==,type:str] 64 64 wireguard: 65 - proton: 66 - private_key: ENC[AES256_GCM,data:mu/ATCGbvaJ7HyE7vT3TH7zAcP0pKMFhAGI1PWqBPZWpSSywmJFK2qxPtPw=,iv:e8m7KE/VyLlQoNRWAFZvuiFdlUszrTbEBOK3J6+MsYk=,tag:dsLF/O+Kfv1T7QtsrlYWIQ==,type:str] 67 - address: ENC[AES256_GCM,data:QirdDhl1RAuyl6s=,iv:TG6v0Kqx9y90w09Rnse3XIyDsmGnqsrLtWR19Cz2F6g=,tag:AtXkSTzo3DJ9eWngEOtzxA==,type:str] 68 - dns: ENC[AES256_GCM,data:rcXede6T+n4=,iv:meUFADObHb774NWFBWvwezP1ue6ajmrVl5C+whaJtpI=,tag:nnoW+Dwh2qboyONLMyNxYg==,type:str] 69 - public_key: ENC[AES256_GCM,data:NgGtMiobS32NvEHc9c1Ngk75H9HbEvPKkxMxwdSTIlyAL5HGEfSV+n02hdw=,iv:1Ci6jBjcfYZZ86qtrPtx4f4W1ynzTkeF7M7g7HyyRY8=,tag:0OghdJoTf0gx/0HjArTIGg==,type:str] 70 - allowed_ips: ENC[AES256_GCM,data:9kOkZno3oiOKoykVoDBB,iv:IpBDkg8HbB1pzpn0mpuXkIgrZz8Sf30BGvyIRSEaqW8=,tag:wIytxSUSNHUFrmVeGGJQtQ==,type:str] 71 - endpoint: ENC[AES256_GCM,data:dyF/WM2Xlz05HnJgkYSNKWhS6Q==,iv:Qv/Q3ef+eKPQ4+Gf9BwrCp7cj6mQiyCAnk1iMXHPbrs=,tag:0CjXKCxR0vY7wV5uFPEZqQ==,type:str] 72 - proxy: 73 - user: ENC[AES256_GCM,data:yofDX/0hqzg=,iv:yRuzKAMbj7bV6Lb0NuJs4Z9dOgfdy1DE6mdcpu76IEI=,tag:UPGWhdV8gMjVx3RXb26pKg==,type:str] 74 - password: ENC[AES256_GCM,data:4W/zuCqb5IUOvA6n9Ufl8JMVEOomax5V+R1uvuPwxUejQ/5BSPGT6w==,iv:VbAPuaUZ2OLXGOFlt8A/E2M4cfyNKfNz1ORW9MatXdg=,tag:IQNpjhucvKTKb53viz932A==,type:str] 75 65 euclid: 76 66 private_key: ENC[AES256_GCM,data:dGh0qAiYgloX6EoV0Q72UP/faOpeoPqXUaxkN8lKq6KQbxycRqBHapPo+5s=,iv:jb/sliGbNK2r7yWoaL7u6RTUnbMTH6+wFJgq/LCxucE=,tag:mdfz5/aRkozRB8lRRPtd2Q==,type:str] 67 + proton: 68 + private_key: ENC[AES256_GCM,data:ItJvToMAhYrykqb1qgTeAweivybntHwAt59Gu/W1crFkC0Y+xT2mEloslWY=,iv:Dy+QfNtl6emTc/Tjga2HDD2Eaf3U6zZ0HpkoZYMu1es=,tag:BojgHBrNCZB/lA9vKyxTeQ==,type:str] 69 + address: ENC[AES256_GCM,data:FrzoPrT70FwiWEzQcaPA2OS01TxZf04GpT31Oxntwg==,iv:Nft+/Q3lKh5+OFEquuKFP4DtHCGaA1RutYI+LhWZkv8=,tag:tVED/4BYtsyWT/1KpHi1jw==,type:str] 70 + dns: ENC[AES256_GCM,data:DqbVSQchBx9fJu5BDPhJfOr/7s+zHy7a,iv:trdBSt2VN3pmvfAHseRrJ7b/EvNJYEP4S+8lMoN2WAI=,tag:FEvL0srBkhcKxhpEV8m8/Q==,type:str] 71 + public_key: ENC[AES256_GCM,data:P2TsYeAo0SCA+cxkPA8Y4BnnHexSGiB8PhsQ7mAaxcsn/uzQBtzVzvtyYsA=,iv:/FAhqwEUb5FqtfpTXslwGQMGUNZsaJR8pBGLlNXZfNM=,tag:vmImvkCU6SzmlN7dQTd+xg==,type:str] 72 + allowed_ips: ENC[AES256_GCM,data:nNRal4PsC63Yfir9Ffq2,iv:JttXVvg83hbWrTU1n47qtTdIhZAX921rinLCNWIxWa0=,tag:zJUi9+wAho4VKck1wRmWAQ==,type:str] 73 + endpoint: ENC[AES256_GCM,data:G0Ja+AHFNwCj4N84o5Z3NQJvGPw=,iv:+EIa1xgxXEichmxD2Vu1Ryu/aXJX9NuYZ1eu9sDSwIQ=,tag:qszypcPRW1QMDIwK33183Q==,type:str] 74 + proxy: 75 + user: ENC[AES256_GCM,data:yexxc49xckI=,iv:EJKFOf7aQhQd4pMe76io772bnuEBGr21VjOWpq/gJ5Q=,tag:d2TuQalYeTNyefvTch3MFA==,type:str] 76 + password: ENC[AES256_GCM,data:tzNYkTThSKNJUaZ+745lhWWmjYGsbXLSGlPzoknaUZSeGC5JNAedgA==,iv:OhE9X7k6SoKPl9ZyZYSwBm00OeBCvTmIAxFaR9fhofI=,tag:62A95rVF71Lx9kGGbA79tw==,type:str] 77 77 gotify: 78 78 client_id: ENC[AES256_GCM,data:sWHLVejwqjtjFhjAyT0dK+s4bdyXUUC8jh+u4uWu+kwgU5tDS21qUw==,iv:atw/QxQYZ38j30IdA4Osrba1wDb5YVomrPojoWd/82g=,tag:7d600/i1rzp4y7WO6M/YRw==,type:str] 79 79 client_secret: ENC[AES256_GCM,data:6PhFHPRcrUD1tPySDiB4tAtTng4/lYfNZ7XGYvIxxkbDobH9q3pjtuvXkz4MvGyjtC+M4sxc8qH1or7AYFtb/u71aptIwt+u821jz9XiFrQJiM7RC9yTZt0RQLtpPkTejRg4jfBXhDt+xOVkOZG7Z7cMrsMIS6eYDUJhpOXUO/c=,iv:6IseU28YQFyTmTh3dEUeK2pfvVq5CFIpXXYDkuY4HVY=,tag:NRZIDm07RhgDsEXT8IGl4Q==,type:str] ··· 117 117 w2ToACYVigKMSlqPNG9bKcK75XI/iAONG48DQm1Nse3yB9/q3jwd+Q== 118 118 -----END AGE ENCRYPTED FILE----- 119 119 recipient: age1yl52c6aemw9anmfuqayamvsnkvlu6fmy0kk3gzvrraexxd9pr90qvs8pe5 120 - lastmodified: "2026-06-14T00:25:36Z" 121 - mac: ENC[AES256_GCM,data:6gEJwTAedQTIZ/T7cA+xkpx8a/Hdo6DJj07+QtX0XdLuRB/TexK0IdGlgFRnnqrRTqZgszvPYhA5H5+O1PfqTIlcTTPAPSB3SEGhXhBOQMTbxmEtItNxuj+Gr0N0xW/IltSP4N0egk8LJpOT6fjca5cZzbuQlSsh2KmMKfXn+G4=,iv:7eAbvguXMmF8O5Xo4pfIcER30G7UQYIu6Nwb92hnnvc=,tag:0QOpw7qs1r1L46ZwSrewFQ==,type:str] 120 + lastmodified: "2026-06-16T20:39:08Z" 121 + mac: ENC[AES256_GCM,data:hHfx2csou5OyJ0wm3PnbEoqDflNPtEI7w9wQHOkmZoq9Y5Ojzn2XMwHeqVTl2WpJB2Whb0uKCpKcdf1vMiyQgMm/YvHpHkjVzwU42RVFw+RnED10aEqMTXLAkFU6bwZ+ndpB4o6KLSXIqLI8IxFspUwWtnqur+DIoCsWxqzrCvA=,iv:ld727m5ohbvfKCcOemSKWA1tUrhBEd7KXnFTPR44RCQ=,tag:6L2CGhgLXp9ypulGxBX9HQ==,type:str] 122 122 pgp: 123 123 - created_at: "2026-06-02T01:50:38Z" 124 124 enc: |-