Compare commits
58 Commits
lucent-fir
...
main
Author | SHA1 | Date |
---|---|---|
Azalea Gardenia | e367d4bf1d | |
Azalea Gardenia | 5867be43d4 | |
Azalea Gardenia | 5e7a0da84a | |
Jill | 9abbf2d8ac | |
Jill | 906a61cae8 | |
Jill | 2e8bce0379 | |
Jill | 99d6d67129 | |
Jill | efc8872b55 | |
Jill | d5a1e9ce50 | |
Jill | b25bdd94a0 | |
Jill | ebdf499ffe | |
Jill | e826bc5100 | |
Jill | 0894041f4e | |
Jill | d5285d9249 | |
Jill | a5038dc4c0 | |
Jill | ba4b977388 | |
Jill | df817fa2c1 | |
Azalea Gardenia | ebbb7538fc | |
Jill | f428081a8c | |
Jill | 749bbcd236 | |
Jill | c2837a6ac0 | |
Jill | bee47b8402 | |
Jill | 0107a38b56 | |
Jill | 4bf1b580ce | |
Jill | a8cfb4188c | |
Jill | 50dd0ef901 | |
Jill | 7c36864787 | |
Jill | e3211a77f5 | |
Jill | 5785936437 | |
Jill | fb9b61a7e1 | |
Jill | a9e3f4eb83 | |
Jill | 7705d4db8b | |
Jill | 5a8966ee20 | |
Jill | ba741af134 | |
Jill | 5f047aeca6 | |
Jill | 11c7016bcf | |
Jill | cc0cf5d6b3 | |
Jill | 6dbe0e7df6 | |
Jill | 09502ea7a3 | |
Jill | 5186976ead | |
Jill | 588c8fe993 | |
Jill | cf64285cc1 | |
Jill | 176370a814 | |
Jill | 972e627b5d | |
Jill | 358992dd25 | |
Jill | 16bd68fdd0 | |
Jill | 56f3fb72c2 | |
Jill | a79fc22f57 | |
Jill | 90c8a0c450 | |
Jill | f741de6ceb | |
Jill | b99c047395 | |
Jill | 623d4040a5 | |
Jill | a1f413b045 | |
Jill | b9eb3ed895 | |
Jill | c0c4b77fbd | |
Jill | 68b87977b7 | |
Jill | 9d93277716 | |
Jill | 47620001a7 |
|
@ -7,8 +7,8 @@ PASSWORD_CHECK_PWN = true
|
|||
DEFAULT_BRANCH = "main"
|
||||
|
||||
[ui]
|
||||
DEFAULT_THEME = "catppuccin-mocha"
|
||||
THEMES="forgejo-auto,forgejo-light,forgejo-dark,arc-green,arc-pink,darkred,gitea-blue,gitea-modern,github,catppuccin-latte,catppuccin-frappe,catppuccin-macchiato,catppuccin-mocha"
|
||||
DEFAULT_THEME = "forgejo-auto"
|
||||
THEMES="forgejo-auto,forgejo-light,forgejo-dark"
|
||||
CUSTOM_EMOJIS = "blurry_eyes,horny,acab,tastymilk,gluttony,soul_of_fright,soul_of_night,soul_of_blight,bottom,spongesad,Tainted_John_F_Kennedy,John_F_Kennedy_Tainted,John_F_Kennedy,plumspin,despair,ihaveyourip,peeeh,penis,twister,speed,deadchat,housj,dothejej,b_,trollgecommence,nervous,coffee,dilf,closer,slugclose,pls,x3,observer,zamiel_approves,i_see_pizza,cutely_blushes,babytime,sleeby,zonkerdoodle,whenyoubigshit,the_cowboy,stupib,soul_of_might,scripulous_fingore_point,scripulous_fingore,rusty50,pickle,orang,oralpleasure,ohgod,michael,i_see_chicory,he,hapykity,handsr,handsl,slugloafspin,gamer_boi,feddynite,cock,feddy_glamcock,face,entropy,elonmusk,eeeeeeeeee,child,ancapistanian,aiki,gloopy,lamb,YOU,slightYOU,citat,ionn,eede,ed,blank,michael,BABAXD,BABA,EyesPepe,spamdance,pickledance,BABA_IS_OO,wieldr,wieldl,cinnamon,jillo,she,hydrogenperoxide,ObedientCitizen,misinformation,maenod,Snowsgiving22_AnimatedEmojis_mal"
|
||||
|
||||
[mailer]
|
||||
|
|
612
flake.lock
612
flake.lock
|
@ -3,16 +3,16 @@
|
|||
"agenix": {
|
||||
"inputs": {
|
||||
"darwin": "darwin",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1677969766,
|
||||
"narHash": "sha256-AIp/ZYZMNLDZR/H7iiAlaGpu4lcXsVt9JQpBlf43HRY=",
|
||||
"lastModified": 1707830867,
|
||||
"narHash": "sha256-PAdwm5QqdlwIqGrfzzvzZubM+FXtilekQ/FA0cI49/o=",
|
||||
"owner": "ryantm",
|
||||
"repo": "agenix",
|
||||
"rev": "03b51fe8e459a946c4b88dcfb6446e45efb2c24e",
|
||||
"rev": "8cb01a0e717311680e0cbca06a76cbceba6f3ed6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -24,16 +24,14 @@
|
|||
"cohost-blogger": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1684380187,
|
||||
"narHash": "sha256-/nwpAHkr5ZOny15TE8LSJsfRZMO6b6ca/RjKoQ7vLjA=",
|
||||
"lastModified": 1692493363,
|
||||
"narHash": "sha256-Y/nefO52W64AtXdEGFVMMBwXw+3m1SswOaO7Dq8b5UA=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "9ebfff450e5694eafa3a32a9f1d261b3a878b7bf",
|
||||
"revCount": 15,
|
||||
"rev": "5fd335bbf5026e81e9dd3b4dacc13e93eb980112",
|
||||
"revCount": 21,
|
||||
"type": "git",
|
||||
"url": "https://git.oat.zone/oat/cohost-blogger"
|
||||
},
|
||||
|
@ -50,11 +48,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1673295039,
|
||||
"narHash": "sha256-AsdYgE8/GPwcelGgrntlijMg4t3hLFJFCRF3tL5WVjA=",
|
||||
"lastModified": 1700795494,
|
||||
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "87b9d090ad39b25b2400029c64825fc2a8868943",
|
||||
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -67,16 +65,15 @@
|
|||
"emacs-overlay": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1679283474,
|
||||
"narHash": "sha256-vlJOZZ07XURH8ZZG6Eg/pOuUKhul5bcWkvd+nwrY0Yw=",
|
||||
"lastModified": 1708679224,
|
||||
"narHash": "sha256-V66NAQSTakocPST2GYv4SKK+ALBg3sgCNq0jIOpNkpc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "emacs-overlay",
|
||||
"rev": "794b5765f0dcab8a80d0875d1ee04aad9e220cb8",
|
||||
"rev": "841abef01afbd293aa80130bcbd811e4102d5770",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -85,9 +82,25 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1673956053,
|
||||
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1681202837,
|
||||
|
@ -104,12 +117,15 @@
|
|||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1667395993,
|
||||
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
||||
"lastModified": 1705309234,
|
||||
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
||||
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -119,12 +135,51 @@
|
|||
}
|
||||
},
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1659877975,
|
||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||
"lastModified": 1681202837,
|
||||
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
||||
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_4": {
|
||||
"inputs": {
|
||||
"systems": "systems_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1705309234,
|
||||
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_5": {
|
||||
"inputs": {
|
||||
"systems": "systems_7"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1681202837,
|
||||
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -136,20 +191,39 @@
|
|||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"agenix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1667907331,
|
||||
"narHash": "sha256-bHkAwkYlBjkupPUFcQjimNS8gxWSWjOTevEuwdnp5m0=",
|
||||
"lastModified": 1703113217,
|
||||
"narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "6639e3a837fc5deb6f99554072789724997bc8e5",
|
||||
"rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-22.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1706981411,
|
||||
"narHash": "sha256-cLbLPTL1CDmETVh4p0nQtvoF+FSEjsnJTFpTxhXywhQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "652fda4ca6dafeb090943422c34ae9145787af37",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-23.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
|
@ -157,18 +231,18 @@
|
|||
"hyprland": {
|
||||
"inputs": {
|
||||
"hyprland-protocols": "hyprland-protocols",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"hyprlang": "hyprlang",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"systems": "systems_4",
|
||||
"wlroots": "wlroots",
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1679277046,
|
||||
"narHash": "sha256-5E/Cd1PdYwN0bfR3dyyTQ2Wu5ADK3pg/Z+viAtfaP70=",
|
||||
"lastModified": 1708650152,
|
||||
"narHash": "sha256-OZUS5FED7KKAPpNaJYQr4BPGXQzGrDFgkKVg9U2aZh8=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "d23bbd1687a5413fb7f2c08b67692d4e64f8efef",
|
||||
"rev": "8c3613632a6ccebf9fb797ec756ecfce99514eec",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -182,14 +256,18 @@
|
|||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1671839510,
|
||||
"narHash": "sha256-+PY1qqJfmZzzROgcIY4I7AkCwpnC+qBIYk2eFoA9RWc=",
|
||||
"lastModified": 1691753796,
|
||||
"narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-protocols",
|
||||
"rev": "b8f55e02a328c47ed373133c52483bbfa20a1b75",
|
||||
"rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -198,18 +276,78 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprpaper": {
|
||||
"hyprlang": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1678893556,
|
||||
"narHash": "sha256-FHhBetkV/S7M9BMpbCzUWX/P5E7tGE4mZIpj/2m0K2M=",
|
||||
"lastModified": 1708005943,
|
||||
"narHash": "sha256-9TT3xk++LI5/SPYgjYX34xZ4ebR93c1uerIq+SE/ues=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "aeb3e012adc7b3235335c540b214b82267c2b983",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprlang_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"xdph",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1704287638,
|
||||
"narHash": "sha256-TuRXJGwtK440AXQNl5eiqmQqY4LZ/9+z/R7xC0ie3iA=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "6624f2bb66d4d27975766e81f77174adbe58ec97",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprlang_3": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1704230242,
|
||||
"narHash": "sha256-S8DM+frECqmAdaUb3y5n3RjY73ajZcL5rnmx5YO+CkY=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "db5e1399b90d5a339330bdd49c5bca6fe58d6f60",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprpaper": {
|
||||
"inputs": {
|
||||
"hyprlang": "hyprlang_3",
|
||||
"nixpkgs": "nixpkgs_7"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1708532919,
|
||||
"narHash": "sha256-G4PX7NlRLIlBYTDisbWx/Sif01SLSVzLThGU6v6Wrgg=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprpaper",
|
||||
"rev": "61961973cfd10853b32c7f904cdb88f9ab6d84dd",
|
||||
"rev": "897cf0ae26c7c54ce15c4946efe63970be75dadb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -220,16 +358,14 @@
|
|||
},
|
||||
"hyprpicker": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
"nixpkgs": "nixpkgs_8"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1678372307,
|
||||
"narHash": "sha256-wb1oXsaM0AkThPJGjn0Ytxt8vbBQG+mg2AGY0uxhUJ0=",
|
||||
"lastModified": 1703987863,
|
||||
"narHash": "sha256-MHhAk74uk0qHVwSkLCcXLXMe4478M2oZEFPXwjSoo2E=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprpicker",
|
||||
"rev": "234c2da51a71941c0cd2ee380f42de365f90dd6f",
|
||||
"rev": "2ef703474fb96e97e03e66e8820f213359f29382",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -240,17 +376,16 @@
|
|||
},
|
||||
"nix-minecraft": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-utils": "flake-utils_3",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
"nixpkgs": "nixpkgs_9"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1679276580,
|
||||
"narHash": "sha256-3+YDy2BQuIWauD7oHZZDU0uRC2c0cOWdyRZW3ss76VY=",
|
||||
"lastModified": 1708650820,
|
||||
"narHash": "sha256-O6nq8oHT4iPrWuBoKH0/9B7QC91N/zPnns8QYxPJniY=",
|
||||
"owner": "Infinidoge",
|
||||
"repo": "nix-minecraft",
|
||||
"rev": "710b88f976c522deb1306b0310429b4bef3cff39",
|
||||
"rev": "fe3753b7025fd7f3a302be698a0896e70ea24450",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -261,11 +396,11 @@
|
|||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1679224149,
|
||||
"narHash": "sha256-TSY37Zv0icF/aijR3/KWGLVBlnKKHlG9QTj7vHbF/UU=",
|
||||
"lastModified": 1708594753,
|
||||
"narHash": "sha256-c/gH7iXS/IYH9NrFOT+aJqTq+iEBkvAkpWuUHGU3+f0=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "a4bc66709604ab78abc575b60baa6d23ae027a59",
|
||||
"rev": "3f7d0bca003eac1a1a7f4659bbab9c8f8c2a0958",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -276,11 +411,43 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1679172431,
|
||||
"narHash": "sha256-XEh5gIt5otaUbEAPUY5DILUTyWe1goAyeqQtmwaFPyI=",
|
||||
"lastModified": 1703013332,
|
||||
"narHash": "sha256-+tFNwMvlXLbJZXiMHqYq77z/RfmpfpiI3yjL6o/Zo9M=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1603d11595a232205f03d46e635d919d1e1ec5b9",
|
||||
"rev": "54aac082a4d9bb5bbc5c4e899603abfb76a3f6d6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1708566995,
|
||||
"narHash": "sha256-e/THimsoxxMAHSbwMKov5f5Yg+utTj6XVGEo24Lhx+0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "3cb4ae6689d2aa3f363516234572613b31212b78",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-23.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1708475490,
|
||||
"narHash": "sha256-g1v0TsWBQPX97ziznfJdWhgMyMGtoBFs102xSYO4syU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0e74ca98a74bc7270d28838369593635a5db3260",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -289,33 +456,196 @@
|
|||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"nixpkgs_10": {
|
||||
"locked": {
|
||||
"lastModified": 1679172431,
|
||||
"narHash": "sha256-XEh5gIt5otaUbEAPUY5DILUTyWe1goAyeqQtmwaFPyI=",
|
||||
"lastModified": 1708566995,
|
||||
"narHash": "sha256-e/THimsoxxMAHSbwMKov5f5Yg+utTj6XVGEo24Lhx+0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1603d11595a232205f03d46e635d919d1e1ec5b9",
|
||||
"rev": "3cb4ae6689d2aa3f363516234572613b31212b78",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-23.11",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_11": {
|
||||
"locked": {
|
||||
"lastModified": 1706826059,
|
||||
"narHash": "sha256-N69Oab+cbt3flLvYv8fYnEHlBsWwdKciNZHUbynVEOA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "25e3d4c0d3591c99929b1ec07883177f6ea70c9d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-23.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_12": {
|
||||
"locked": {
|
||||
"lastModified": 1682134069,
|
||||
"narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "fd901ef4bf93499374c5af385b2943f5801c0833",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-unstable",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1672441588,
|
||||
"narHash": "sha256-jx5kxOyeObnVD44HRebKYL3cjWrcKhhcDmEYm0/naDY=",
|
||||
"lastModified": 1685533922,
|
||||
"narHash": "sha256-y4FCQpYafMQ42l1V+NUrMel9RtFtZo59PzdzflKR/lo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6a0d2701705c3cf6f42c15aa92b7885f1f8a477f",
|
||||
"rev": "3a70dd92993182f8e514700ccf5b1ae9fc8a3b8d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"type": "indirect"
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-23.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1708475490,
|
||||
"narHash": "sha256-g1v0TsWBQPX97ziznfJdWhgMyMGtoBFs102xSYO4syU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0e74ca98a74bc7270d28838369593635a5db3260",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1705331948,
|
||||
"narHash": "sha256-qjQXfvrAT1/RKDFAMdl8Hw3m4tLVvMCc8fMqzJv0pP4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b8dd8be3c790215716e7c12b247f45ca525867e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-23.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1707546158,
|
||||
"narHash": "sha256-nYYJTpzfPMDxI8mzhQsYjIUX+grorqjKEU9Np6Xwy/0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d934204a0f8d9198e1e4515dd6fec76a139c87f0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1702645756,
|
||||
"narHash": "sha256-qKI6OR3TYJYQB3Q8mAZ+DG4o/BR9ptcv9UnRV2hzljc=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "40c3c94c241286dd2243ea34d3aef8a488f9e4d0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_7": {
|
||||
"locked": {
|
||||
"lastModified": 1703637592,
|
||||
"narHash": "sha256-8MXjxU0RfFfzl57Zy3OfXCITS0qWDNLzlBAdwxGZwfY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "cfc3698c31b1fb9cdcf10f36c9643460264d0ca8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_8": {
|
||||
"locked": {
|
||||
"lastModified": 1683014792,
|
||||
"narHash": "sha256-6Va9iVtmmsw4raBc3QKvQT2KT/NGRWlvUlJj46zN8B8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1a411f23ba299db155a5b45d5e145b85a7aafc42",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_9": {
|
||||
"locked": {
|
||||
"lastModified": 1698318101,
|
||||
"narHash": "sha256-gUihHt3yPD7bVqg+k/UVHgngyaJ3DMEBchbymBMvK1E=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "63678e9f3d3afecfeafa0acead6239cdb447574c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nlw-api": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_4",
|
||||
"nixpkgs": "nixpkgs_11"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1708639350,
|
||||
"narHash": "sha256-g7LL658p4deIme0fPq+WceTNGigXcN6uPNrVraZN3RY=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "704581d013b9d16fda5dc8e30d448b358c4e127d",
|
||||
"revCount": 23,
|
||||
"type": "git",
|
||||
"url": "https://git.oat.zone/oat/nlw-api"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.oat.zone/oat/nlw-api"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
|
@ -323,14 +653,15 @@
|
|||
"agenix": "agenix",
|
||||
"cohost-blogger": "cohost-blogger",
|
||||
"emacs-overlay": "emacs-overlay",
|
||||
"home-manager": "home-manager",
|
||||
"home-manager": "home-manager_2",
|
||||
"hyprland": "hyprland",
|
||||
"hyprpaper": "hyprpaper",
|
||||
"hyprpicker": "hyprpicker",
|
||||
"nix-minecraft": "nix-minecraft",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs": "nixpkgs_10",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"nlw-api": "nlw-api",
|
||||
"vscode-server": "vscode-server"
|
||||
}
|
||||
},
|
||||
|
@ -349,20 +680,111 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"vscode-server": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1676501444,
|
||||
"narHash": "sha256-H+uQetkzd5GIga56HmCDwl5eihdQgeN2jVdNrkXzDyo=",
|
||||
"owner": "msteen",
|
||||
"repo": "nixos-vscode-server",
|
||||
"rev": "57f1716bc625d2892579294cc207956679e3d94c",
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "msteen",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_3": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_4": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_5": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_6": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_7": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"vscode-server": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_5",
|
||||
"nixpkgs": "nixpkgs_12"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1684517665,
|
||||
"narHash": "sha256-SaAr66uCQ8CF75jIr23FZjk1+9Kfwm5sQnwV25206Gs=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixos-vscode-server",
|
||||
"rev": "1e1358493df6529d4c7bc4cc3066f76fd16d4ae6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixos-vscode-server",
|
||||
"type": "github"
|
||||
}
|
||||
|
@ -371,17 +793,18 @@
|
|||
"flake": false,
|
||||
"locked": {
|
||||
"host": "gitlab.freedesktop.org",
|
||||
"lastModified": 1677789111,
|
||||
"narHash": "sha256-dWrk+Q3bLdtFe5rkyaAKWCQJCeE/KFNllcu1DvBC38c=",
|
||||
"lastModified": 1708558866,
|
||||
"narHash": "sha256-Mz6hCtommq7RQfcPnxLINigO4RYSNt23HeJHC6mVmWI=",
|
||||
"owner": "wlroots",
|
||||
"repo": "wlroots",
|
||||
"rev": "5ae17de23f5fd9bb252a698f3771c840280e2c05",
|
||||
"rev": "0cb091f1a2d345f37d2ee445f4ffd04f7f4ec9e5",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"host": "gitlab.freedesktop.org",
|
||||
"owner": "wlroots",
|
||||
"repo": "wlroots",
|
||||
"rev": "0cb091f1a2d345f37d2ee445f4ffd04f7f4ec9e5",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
|
@ -391,17 +814,22 @@
|
|||
"hyprland",
|
||||
"hyprland-protocols"
|
||||
],
|
||||
"hyprlang": "hyprlang_2",
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1673116118,
|
||||
"narHash": "sha256-eR0yDSkR2XYMesfdRWJs25kAdXET2mbNNHu5t+KUcKA=",
|
||||
"lastModified": 1706521509,
|
||||
"narHash": "sha256-AInZ50acOJ3wzUwGzNr1TmxGTMx+8j6oSTzz4E7Vbp8=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"rev": "d479c846531fd0e1d2357c9588b8310a2b859ef2",
|
||||
"rev": "c06fd88b3da492b8f9067be021b9184f7012b5a8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
32
flake.nix
32
flake.nix
|
@ -2,62 +2,61 @@
|
|||
description = "Frosted Flakes";
|
||||
|
||||
inputs = {
|
||||
# temporary forgejo workaround
|
||||
# TODO: remove when https://github.com/NixOS/nixpkgs/pull/218269 gets pushed to stable
|
||||
#nixpkgs.url = "nixpkgs/nixos-22.05";
|
||||
nixpkgs.url = "nixpkgs/nixos-unstable";
|
||||
nixpkgs.url = "nixpkgs/nixos-23.11";
|
||||
|
||||
# WARNING: Where possible, prefer the stable branch of nixpkgs as nixpkgs-unstable may have incompatable or vulnerable software.
|
||||
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
||||
|
||||
home-manager.url = "github:nix-community/home-manager/release-22.05";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
home-manager.url = "github:nix-community/home-manager/release-23.11";
|
||||
#home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
# agenix - age-encrypted secrets
|
||||
agenix = {
|
||||
url = "github:ryantm/agenix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
#inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nixos-hardware = {
|
||||
url = "github:nixos/nixos-hardware";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
#inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nix-minecraft = {
|
||||
url = "github:Infinidoge/nix-minecraft";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
#inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
cohost-blogger = {
|
||||
url = "git+https://git.oat.zone/oat/cohost-blogger";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
#inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nlw-api.url = "git+https://git.oat.zone/oat/nlw-api";
|
||||
|
||||
emacs-overlay = {
|
||||
url = "github:nix-community/emacs-overlay";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
#inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
hyprland = {
|
||||
url = "github:hyprwm/Hyprland";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
#inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
hyprpaper = {
|
||||
url = "github:hyprwm/hyprpaper";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
#inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
hyprpicker = {
|
||||
url = "github:hyprwm/hyprpicker";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
#inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
vscode-server.url = "github:msteen/nixos-vscode-server";
|
||||
vscode-server.url = "github:nix-community/nixos-vscode-server";
|
||||
};
|
||||
|
||||
outputs = inputs @ { self, nixpkgs, nixpkgs-unstable, vscode-server, nix-minecraft, cohost-blogger, /* hyprland, hyprpaper, hyprpicker, */ ... }:
|
||||
outputs = inputs @ { self, nixpkgs, nixpkgs-unstable, nix-minecraft, /* hyprland, hyprpaper, hyprpicker, */ ... }:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
|
||||
|
@ -80,7 +79,6 @@
|
|||
overlays = mapModules ./overlays import;
|
||||
nixosModules = (mapModulesRec ./modules import) ++ [
|
||||
#hyprland.nixosModules.default
|
||||
vscode-server.nixosModule
|
||||
];
|
||||
nixosConfigurations = mapModules ./hosts (host: mkHost host { inherit system; });
|
||||
devShell."${system}" = import ./shell.nix { inherit pkgs; };
|
||||
|
|
|
@ -23,6 +23,14 @@
|
|||
{ hostname = "oatmealine@dark-firepit";
|
||||
ssh = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKz3Zkhrht1EX32LIbkSvql1p15EXqxTy/4xQKlj0CUx oatmealine@disroot.org";
|
||||
}
|
||||
{ hostname = "oatmealine@boykisser";
|
||||
ssh = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDhgwhNQuM+iozuHk4OH+s5xS7U93W6hVtkpgF6arKPsWM6CUIUCyOwpNnGGH/HpBlFwYf4jN+NapVZ3bL8YHLUDayNO6uTfLLNvtaGeE65U/S0xGXhTyE0+bn7KWBFUlbO8CdjuBGGym0JVa0SMH4ppFBNJVR4HCe9fC83fD0T7gDZc5koApgxZfCyCu3bE03ulhRc5P8cKnTZAG0pVqK0doOIO7ociCbh4HhjTC83xRbfI9tlf52Y3xo14odpQhfXsPNNqxP0FzkC3zAOyT7iyrpQk1bgSLx/GzWh0KkljjJYGdMiiY6cVBxVYxjgrG7vDh/h3xMwBEhue4L9jmD4K4Eb5RZTxMyK83eHcomqZYigZjFKJ75TKdL17HbKgFGmfs9P0VhZUDUMp5Xm1yTVJqm6cQEhot1mT0F8FRYDiEadjw6vFZqz5dPzh2FRXsectNf60AiPRqF5HbitntgYvsLKZWAViOojbBc9gdQutu2AyuivteTEVG6Uq/LwE70= oatmealine@boykisser";
|
||||
wg = "MPZLxzy+rvDvgZiaCwWjb+5hhhvWC3PH6cWLDv1Ga0U=";
|
||||
}
|
||||
{ hostname = "oatmealine@seven-red-suns";
|
||||
ssh = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOVBLBD/JrGFMvPNiiX/QFixSWXyGjDT6vDHVWg9cE5D oatmealine@seven-red-suns";
|
||||
wg = "HQfsS+DUdgmDvliIv7yNnf4T9Q3YIN9ObSXhrNuQUi8=";
|
||||
}
|
||||
|
||||
# mayflower
|
||||
{ hostname = "mayflower@BMW-M550d-xDrive";
|
||||
|
|
|
@ -15,12 +15,12 @@ in {
|
|||
./webapps/default.nix
|
||||
inputs.nix-minecraft.nixosModules.minecraft-servers
|
||||
#inputs.watch-party.nixosModules.watch-party
|
||||
(fetchTarball "https://github.com/msteen/nixos-vscode-server/tarball/master")
|
||||
inputs.cohost-blogger.nixosModules.cohost-blogger
|
||||
inputs.nlw-api.nixosModules.nlw-api
|
||||
inputs.vscode-server.nixosModules.default
|
||||
];
|
||||
|
||||
# services.auto-fix-vscode-server.enable = true;
|
||||
# services.vscode-server.enable = true;
|
||||
services.vscode-server.enable = true;
|
||||
|
||||
user = {
|
||||
packages = with pkgs; [
|
||||
|
@ -29,6 +29,8 @@ in {
|
|||
];
|
||||
};
|
||||
|
||||
services.logrotate.checkConfig = false;
|
||||
|
||||
users.groups.dotfiles = {};
|
||||
users.groups.yugoslavia = {};
|
||||
|
||||
|
@ -36,7 +38,7 @@ in {
|
|||
# aether??? is that... reference.../.??? aether https://www.curseforge.com/minecraft/mc-mods/aether mod Curseforge minecraft Forge Patreon Chat twitter code license Assets license All rights reserved categories Last Updated apr 17 2021 Game Version 1.12.2 aether
|
||||
aether = {
|
||||
conf = {
|
||||
packages = with pkgs; [ bat duf broot helix nil ];
|
||||
packages = with pkgs; [ bat duf broot helix nil packwiz ];
|
||||
shell = pkgs.unstable.fish;
|
||||
extraGroups = [ "wheel" "nix-users" "dotfiles" ];
|
||||
initialHashedPassword = "!";
|
||||
|
@ -65,6 +67,8 @@ in {
|
|||
openssh.authorizedKeys.keys = fetchSSHKeys [
|
||||
"oatmealine@void-defragmented"
|
||||
"oatmealine@beppy-phone"
|
||||
"oatmealine@boykisser"
|
||||
"oatmealine@seven-red-suns"
|
||||
];
|
||||
};
|
||||
|
||||
|
@ -97,17 +101,17 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
winter = {
|
||||
conf = {
|
||||
packages = with pkgs; [ micro ];
|
||||
shell = pkgs.unstable.fish;
|
||||
extraGroups = [ "wheel" "nix-users" "dotfiles" ];
|
||||
initialHashedPassword = "!";
|
||||
openssh.authorizedKeys.keys = fetchSSHKeys [
|
||||
"lilith@bms-cab"
|
||||
];
|
||||
};
|
||||
};
|
||||
#winter = {
|
||||
# conf = {
|
||||
# packages = with pkgs; [ micro ];
|
||||
# shell = pkgs.unstable.fish;
|
||||
# extraGroups = [ "wheel" "nix-users" "dotfiles" ];
|
||||
# initialHashedPassword = "!";
|
||||
# openssh.authorizedKeys.keys = fetchSSHKeys [
|
||||
# "lilith@bms-cab"
|
||||
# ];
|
||||
# };
|
||||
#};
|
||||
};
|
||||
|
||||
keyboard = {
|
||||
|
@ -115,8 +119,6 @@ in {
|
|||
variant = "qwerty";
|
||||
};
|
||||
|
||||
services.vscode-server.enable = true;
|
||||
|
||||
modules = {
|
||||
shell.fish.enable = true;
|
||||
security.isLocalMachine = false;
|
||||
|
@ -132,6 +134,7 @@ in {
|
|||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCBKMXTLBJ5iIPiO9jiN+AHWxpgG1kcdI0h23+G1FLMnK+xhkmaP9Vjr9QbqQ4mmRqfGERfJW5H2/OvTEUXnrkAp1Jc8oPrc14/auwKivtbMC5tsWzioDMbcAYKrcP37D3Kw1P7nzSyAz3QsRXBRx26OE5NeTo4YfGl/TOkQnoBCDTt8kcziWEvUVeOgnHf3hnszs2H4P6RAyOqjuOH6BWhtbKsCHThTHaAadLgeH5nB1WXLYqG2N1KEzAhj8WBBzPmeZcMMRr5xkqYVj14cd+9syEaenV+wXapoPyDtOb6YtOKArN9RkT0OOqQk17OzxvGqHUEXQ4eGmNgc8BLsGJn rsa-key-20230402"
|
||||
#fetchSSH "oatmealine@void-defragmented"
|
||||
#fetchSSH "oatmealine@beppy-phone"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIAIphRdy+g7zfj+KxfONoD24lzk+/mGhQ0EnOe8QGf8 oatmealine@disroot.org" # gh actions
|
||||
];
|
||||
packages = with pkgs; [ tmux micro ];
|
||||
shell = pkgs.unstable.fish;
|
||||
|
@ -155,6 +158,11 @@ in {
|
|||
interfaces."wg0" = import ./wireguardInterface.nix;
|
||||
};
|
||||
|
||||
dendrite = {
|
||||
enable = true;
|
||||
hostDomain = "dark-firepit.cloud";
|
||||
};
|
||||
|
||||
terraria = {
|
||||
enable = false;
|
||||
port = 7777; # port-forwarded
|
||||
|
@ -165,6 +173,11 @@ in {
|
|||
dataDir = "/var/lib/terraria";
|
||||
};
|
||||
|
||||
nextcloud = {
|
||||
enable = false;
|
||||
domain = "nextcloud.dark-firepit.cloud";
|
||||
};
|
||||
|
||||
jmusicbot = let
|
||||
baseOptions = {
|
||||
owner = 276416332894044160;
|
||||
|
@ -180,6 +193,7 @@ in {
|
|||
|
||||
npimages = true;
|
||||
stayinchannel = true;
|
||||
updatealerts = false;
|
||||
|
||||
aliases = {
|
||||
nowplaying = [ "np" "current" ];
|
||||
|
@ -190,13 +204,15 @@ in {
|
|||
forceskip = [ "fs" ];
|
||||
movetrack = [ "move" "m" ];
|
||||
};
|
||||
|
||||
queuetype = "REGULAR";
|
||||
};
|
||||
in {
|
||||
enable = true;
|
||||
instances = {
|
||||
"jomble" = {
|
||||
enable = true;
|
||||
package = pkgs.unstable.jmusicbot;
|
||||
package = pkgs._.gmusicbot;
|
||||
|
||||
options = baseOptions // {
|
||||
token = lib.removeSuffix "\n" (builtins.readFile /etc/jomble_token);
|
||||
|
@ -205,7 +221,7 @@ in {
|
|||
};
|
||||
"jillo" = {
|
||||
enable = true;
|
||||
package = pkgs.unstable.jmusicbot;
|
||||
package = pkgs._.gmusicbot;
|
||||
|
||||
options = baseOptions // {
|
||||
token = lib.removeSuffix "\n" (builtins.readFile /etc/jillo_token);
|
||||
|
@ -223,6 +239,7 @@ in {
|
|||
extraRules = [
|
||||
{ users = [ "aether" ]; noPass = false; persist = true; keepEnv = true; }
|
||||
{ users = [ "oatmealine" ]; noPass = true; persist = false; keepEnv = true; }
|
||||
{ users = [ "remote" ]; noPass = true; persist = false; keepEnv = true; }
|
||||
];
|
||||
};
|
||||
|
||||
|
@ -237,39 +254,37 @@ in {
|
|||
# https://nixos.org/manual/nixos/stable/options.html#opt-networking.enableB43Firmware
|
||||
|
||||
# temporarily disabled
|
||||
enableIPv6 = false;
|
||||
# enableIPv6 = true;
|
||||
|
||||
usePredictableInterfaceNames = false;
|
||||
interfaces.eth0.ipv4.addresses = [
|
||||
{ address = "46.4.96.113";
|
||||
interfaces.eth0 = {
|
||||
ipv4.addresses = [{
|
||||
address = "46.4.96.113";
|
||||
# prefixLength = 27;
|
||||
prefixLength = 24;
|
||||
}
|
||||
];
|
||||
}];
|
||||
|
||||
/*
|
||||
ipv6.addresses = [{
|
||||
address = "2a01:4f8:140::1";
|
||||
prefixLength = 64;
|
||||
}];
|
||||
*/
|
||||
};
|
||||
|
||||
defaultGateway = "46.4.96.97";
|
||||
/*
|
||||
defaultGateway6 = {
|
||||
address = "fe80::1";
|
||||
interface = "eth0";
|
||||
};
|
||||
*/
|
||||
nameservers = [ "8.8.8.8" "1.1.1.1" ];
|
||||
|
||||
#interfaces.eno1.ipv6.addresses = [
|
||||
# { address = "2001:41d0:0700:3308::";
|
||||
# prefixLength = 64;
|
||||
# }
|
||||
#
|
||||
# { address = "2001:41d0:0700:33ff::";
|
||||
# prefixLength = 64;
|
||||
# }
|
||||
#];
|
||||
|
||||
#defaultGateway6 = {
|
||||
# address = "2001:41d0:0700:33ff:00ff:00ff:00ff:00ff";
|
||||
# address = "33ff::1";
|
||||
# address = "2001::1";
|
||||
# interface = "eno1";
|
||||
#};
|
||||
|
||||
firewall.allowPing = true;
|
||||
# minecraft proximity voice chat
|
||||
firewall.allowedTCPPorts = [ 24454 24464 25567 25577 4499 21025 ];
|
||||
firewall.allowedUDPPorts = [ 24454 24464 25567 25577 4499 21025 ];
|
||||
firewall.allowedTCPPorts = [ 24454 24464 25567 25577 4499 21025 21027 ];
|
||||
firewall.allowedUDPPorts = [ 24454 24464 25567 25577 4499 21025 21027 ];
|
||||
};
|
||||
|
||||
# environment.etc."dhcpcd.duid".text = "d0:50:99:d4:04:68:d0:50:99:d4:04:68";
|
||||
|
|
|
@ -4,8 +4,8 @@ with lib;
|
|||
let
|
||||
# https://git.sleeping.town/unascribed/unsup/releases
|
||||
unsup = pkgs.fetchurl {
|
||||
url = "https://git.sleeping.town/attachments/c521d178-8938-40a5-b21b-0333eef4099e";
|
||||
sha256 = "c5bd49784392b651e4bc71fe57976f5b4fb14f09e0e23183ae5b94a821ae4756";
|
||||
url = "https://git.sleeping.town/unascribed/unsup/releases/download/v0.2.3/unsup-0.2.3.jar";
|
||||
hash = "sha256-DBMxiZwfUUiLqXYOMD8EUz4HubAZIEjAPmk32T0NYtA=";
|
||||
};
|
||||
|
||||
mkUnsupINI = { url, extraConfig ? "" }: pkgs.writeTextFile {
|
||||
|
@ -43,7 +43,7 @@ in {
|
|||
"gayrats" = import ./gayrats.nix {
|
||||
inherit pkgs;
|
||||
|
||||
enable = true;
|
||||
enable = false;
|
||||
server-port = 25565;
|
||||
|
||||
inherit unsup;
|
||||
|
@ -55,7 +55,7 @@ in {
|
|||
"gayrats-creative" = import ./gayrats-creative.nix {
|
||||
inherit pkgs;
|
||||
|
||||
enable = true;
|
||||
enable = false;
|
||||
server-port = 25575;
|
||||
|
||||
inherit unsup;
|
||||
|
@ -64,10 +64,22 @@ in {
|
|||
unsupINI = mkUnsupINI { url = "https://oat.zone/f/gayrats-creative/pack.toml"; };
|
||||
};
|
||||
|
||||
"n3ko-test" = import ./n3ko-test.nix {
|
||||
"gay-capybaras" = import ./gay-capybaras.nix {
|
||||
inherit pkgs;
|
||||
|
||||
enable = true;
|
||||
server-port = 25505;
|
||||
|
||||
inherit unsup;
|
||||
inherit (gayrats) whitelist;
|
||||
|
||||
unsupINI = mkUnsupINI { url = "https://aether.gay/f/gay-capybaras/pack.toml"; };
|
||||
};
|
||||
|
||||
"n3ko-test" = import ./n3ko-test.nix {
|
||||
inherit pkgs;
|
||||
|
||||
enable = false;
|
||||
server-port = 25595;
|
||||
};
|
||||
|
||||
|
@ -75,7 +87,7 @@ in {
|
|||
inherit pkgs;
|
||||
inherit lib;
|
||||
|
||||
enable = true;
|
||||
enable = false;
|
||||
server-port = 25535;
|
||||
|
||||
inherit unsup;
|
||||
|
@ -89,6 +101,35 @@ in {
|
|||
'';
|
||||
};
|
||||
};
|
||||
|
||||
"modfest-build" = let
|
||||
unsupINI = mkUnsupINI {
|
||||
url = "https://raw.githack.com/ModFest/modfest-1-20/main/pack/pack.toml";
|
||||
};
|
||||
in {
|
||||
enable = false;
|
||||
package = pkgs.fabricServers."fabric-1_20_4".override { loaderVersion = "0.15.3"; };
|
||||
jvmOpts = ((import ./mc-flags.nix) "4G") + " -javaagent:${unsup}";
|
||||
|
||||
openFirewall = true;
|
||||
|
||||
serverProperties = {
|
||||
server-port = 25525;
|
||||
gamemode = 1;
|
||||
motd = "modfest build server !";
|
||||
white-list = true;
|
||||
max-players = 128;
|
||||
allow-flight = true;
|
||||
enable-command-block = true;
|
||||
enforce-secure-profile = false;
|
||||
snooper-enabled = false;
|
||||
spawn-protection = 0;
|
||||
};
|
||||
|
||||
symlinks = {
|
||||
"unsup.ini" = unsupINI;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.minecraft-server-dark-firepit.serviceConfig = {
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
{ pkgs, enable ? false, server-port, whitelist, unsup, unsupINI, ... }:
|
||||
|
||||
{
|
||||
inherit enable;
|
||||
autoStart = true;
|
||||
openFirewall = true;
|
||||
|
||||
inherit whitelist;
|
||||
serverProperties = {
|
||||
inherit server-port;
|
||||
gamemode = 0;
|
||||
motd = "dark-firepit, 1.20.1 Fabric";
|
||||
white-list = true;
|
||||
max-players = 8;
|
||||
allow-flight = true;
|
||||
enable-command-block = true;
|
||||
enforce-secure-profile = false;
|
||||
snooper-enabled = false;
|
||||
spawn-protection = 0;
|
||||
};
|
||||
|
||||
symlinks = { "unsup.ini" = unsupINI; };
|
||||
|
||||
package = pkgs.fabricServers."fabric-1_20_1".override { loaderVersion = "0.15.6"; };
|
||||
# package = pkgs.fabricServers."fabric-1_20_1";
|
||||
|
||||
jvmOpts = "-Xmx6G -javaagent:${unsup}";
|
||||
|
||||
}
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
symlinks = { "unsup.ini" = unsupINI; };
|
||||
|
||||
package = pkgs.minecraftServers.fabric-1_19_2;
|
||||
package = pkgs.fabricServers."fabric-1_19_2".override { loaderVersion = "0.14.17"; };
|
||||
|
||||
jvmOpts = "-Xmx6G -javaagent:${unsup}";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
|
||||
symlinks = { "unsup.ini" = unsupINI; };
|
||||
|
||||
package = pkgs.minecraftServers.fabric-1_19_2;
|
||||
package = pkgs.fabricServers."fabric-1_19_2".override { loaderVersion = "0.14.17"; };
|
||||
|
||||
jvmOpts = "-Xmx6G -javaagent:${unsup}";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
memory: "-Xms${memory} -Xmx${memory} -XX:+UseShenandoahGC"
|
|
@ -9,6 +9,22 @@ in {
|
|||
domain = "blog.oat.zone";
|
||||
port = 3500;
|
||||
};
|
||||
services.nlw-api = {
|
||||
enable = true;
|
||||
domain = "nlw.oat.zone";
|
||||
apiKey = builtins.readFile /etc/sheets-api-key;
|
||||
#apiKey = "";
|
||||
port = 1995;
|
||||
};
|
||||
services.cardgen = {
|
||||
enable = true;
|
||||
port = 25290;
|
||||
};
|
||||
services.gd-icon-renderer-web = {
|
||||
enable = true;
|
||||
port = 3435;
|
||||
domain = "gdicon.oat.zone";
|
||||
};
|
||||
|
||||
modules = {
|
||||
services = {
|
||||
|
@ -28,6 +44,7 @@ in {
|
|||
enable = true;
|
||||
domain = "git.oat.zone";
|
||||
port = 3000;
|
||||
enableActions = true;
|
||||
};
|
||||
|
||||
matrix.conduit = {
|
||||
|
@ -37,7 +54,7 @@ in {
|
|||
|
||||
vaultwarden = {
|
||||
enable = true;
|
||||
domain = "vault.aether.gay";
|
||||
domain = "vault.dark-firepit.cloud";
|
||||
};
|
||||
|
||||
# not entirely necessary but makes it so that invalid domains and/or direct ip access aborts connection
|
||||
|
@ -56,6 +73,7 @@ in {
|
|||
"giger.yugoslavia.fishing".dataDir = "/var/www/giger.yugoslavia.fishing";
|
||||
"modfiles.oat.zone".dataDir = "/var/www/modfiles.oat.zone";
|
||||
"shop.yugoslavia.best".dataDir = "/var/www/shop.yugoslavia.best";
|
||||
"shop.yugoslavia.best".forceSSL = false;
|
||||
"tesco-underground-dev.oat.zone".dataDir = "/var/www/tesco-underground-dev.oat.zone";
|
||||
"tesco-underground-dev.oat.zone".auth = { tesco = builtins.readFile /etc/tesco; };
|
||||
"oat.zone".dataDir = "/var/www/oat.zone";
|
||||
|
@ -68,17 +86,26 @@ in {
|
|||
"educationmath.oat.zone".auth = { twh = builtins.readFile /etc/proxy_twh; };
|
||||
"rivervalleychocolate.com".dataDir = "/var/www/rivervalleychocolate.com";
|
||||
"rivervalleychocolate.com".php = true;
|
||||
"tac.yugoslavia.best".dataDir = "/var/www/tac.yugoslavia.best/public";
|
||||
"tac.yugoslavia.best".php = true;
|
||||
"tac.yugoslavia.best".phpHandlePathing = true;
|
||||
"play.mayf.pink".dataDir = "/var/www/play.mayf.pink/";
|
||||
"play.mayf.pink".php = true;
|
||||
"play.mayf.pink".phpHandlePathing = true;
|
||||
"pjsk.oat.zone".dataDir = "/var/www/pjsk.oat.zone";
|
||||
"mayf.pink".dataDir = "/var/www/mayf.pink";
|
||||
"mayf.pink".php = true;
|
||||
"mayf.pink".phpHandlePathing = true;
|
||||
"mayf.pink".forceSSL = false;
|
||||
"wint0r.zone".dataDir = "/var/www/wint0r.zone";
|
||||
"puzzle.wint0r.zone".dataDir = "/var/www/puzzle.wint0r.zone";
|
||||
};
|
||||
"promotion.yugoslavia.best".dataDir = "/var/www/promotion.yugoslavia.best/public";
|
||||
"promotion.yugoslavia.best".php = true;
|
||||
"promotion.yugoslavia.best".phpHandlePathing = true;
|
||||
"promotion.yugoslavia.best".forceSSL = false;
|
||||
"star.yugoslavia.best".dataDir = "/var/www/star.yugoslavia.best";
|
||||
"star.yugoslavia.best".forceSSL = false;
|
||||
#"wint0r.zone".dataDir = "/var/www/wint0r.zone";
|
||||
#"puzzle.wint0r.zone".dataDir = "/var/www/puzzle.wint0r.zone";
|
||||
"femboy.industries".dataDir = "/var/www/femboy.industries";
|
||||
} // (listToAttrs (map (value: {
|
||||
name = "${value}.femboy.industries";
|
||||
value = { dataDir = "/var/www/femboy.industries/_subdomains/${value}/"; };
|
||||
}) ["sage"]));
|
||||
|
||||
nitter = {
|
||||
enable = true;
|
||||
|
@ -102,25 +129,10 @@ in {
|
|||
enable = true;
|
||||
};
|
||||
|
||||
code-server = {
|
||||
metrics = {
|
||||
enable = true;
|
||||
domain = "dev-firepit.oat.zone";
|
||||
port = 4444;
|
||||
};
|
||||
|
||||
/*
|
||||
ghost = {
|
||||
enable = true;
|
||||
domain = "blog.oat.zone";
|
||||
port = 1357;
|
||||
};
|
||||
*/
|
||||
|
||||
isso = {
|
||||
enable = true;
|
||||
port = 1995;
|
||||
domain = "comments.oat.zone";
|
||||
target = "blog.oat.zone";
|
||||
domain = "grafana.dark-firepit.cloud";
|
||||
port = 2342;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -131,11 +143,22 @@ in {
|
|||
locations."/f/".extraConfig = ''
|
||||
add_header Access-Control-Allow-Origin "*";
|
||||
'';
|
||||
locations."/f/cards/gen".extraConfig = ''
|
||||
rewrite /f/cards/gen/(.*) /$1 break;
|
||||
proxy_pass http://127.0.0.1:25290;
|
||||
proxy_redirect off;
|
||||
'';
|
||||
extraConfig = ''
|
||||
error_page 404 /404.html;
|
||||
error_page 403 /403.html;
|
||||
'';
|
||||
};
|
||||
"femboy.industries" = {
|
||||
locations."/_subdomains".extraConfig = ''
|
||||
deny all;
|
||||
return 404;
|
||||
'';
|
||||
};
|
||||
# todo: move to flake
|
||||
"gdpstest.oat.zone" = {
|
||||
enableACME = true;
|
||||
|
@ -149,23 +172,25 @@ in {
|
|||
'';
|
||||
};
|
||||
# todo: move to flake
|
||||
"gdicon.oat.zone" = {
|
||||
"jillo.oat.zone" = {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:3436/";
|
||||
proxyPass = "http://127.0.0.1:15385/";
|
||||
};
|
||||
};
|
||||
|
||||
# https://www.edwinwenink.xyz/posts/47-tilde_server/
|
||||
# todo: fix this
|
||||
"dark-firepit.cloud" = {
|
||||
locations."~ ^/~([^/\\s]+?)(/[^\\s]*)?$".extraConfig = ''
|
||||
add_header X-debug-message "/home/$1/www$2" always;
|
||||
alias /home/$1/www$2;
|
||||
index index.html index.htm;
|
||||
autoindex on;
|
||||
'';
|
||||
"drawdog.oat.zone" = {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:33363/";
|
||||
extraConfig = ''
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "Upgrade";
|
||||
proxy_set_header Host $host;
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
#"git.oat.zone" = {
|
||||
|
|
|
@ -35,8 +35,8 @@ in {
|
|||
}
|
||||
];
|
||||
|
||||
boot.tmpOnTmpfs = lib.mkDefault true;
|
||||
boot.cleanTmpDir = lib.mkDefault (!config.boot.tmpOnTmpfs);
|
||||
boot.tmp.useTmpfs = lib.mkDefault true;
|
||||
boot.tmp.cleanOnBoot = lib.mkDefault (!config.boot.tmp.useTmpfs);
|
||||
|
||||
security.rtkit.enable = true;
|
||||
|
||||
|
|
|
@ -1,61 +0,0 @@
|
|||
{ config, lib, pkgs, options, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.services.code-server;
|
||||
in {
|
||||
options.modules.services.code-server = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
domain = mkOption {
|
||||
type = types.str;
|
||||
default = "dev-firepit.oat.zone";
|
||||
};
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
default = 4444;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services = {
|
||||
code-server = {
|
||||
enable = true;
|
||||
port = cfg.port;
|
||||
# temporary
|
||||
auth = "password";
|
||||
# temporary
|
||||
hashedPassword = removeSuffix "\n" (builtins.readFile /etc/code-server-password);
|
||||
|
||||
extraPackages = with pkgs; [ git nix nixpkgs-fmt ];
|
||||
};
|
||||
|
||||
nginx.virtualHosts."${cfg.domain}" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:${toString cfg.port}";
|
||||
extraConfig = ''
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "Upgrade";
|
||||
proxy_set_header Host $host;
|
||||
'';
|
||||
};
|
||||
locations."= /robots.txt" = {
|
||||
extraConfig = ''
|
||||
add_header Content-Type text/plain;
|
||||
return 200 "User-agent: *\nDisallow: /\n";
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
users.users.code-server = {
|
||||
extraGroups = [ "nix-users" "dotfiles" ];
|
||||
shell = pkgs.unstable.fish;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -0,0 +1,108 @@
|
|||
{ pkgs, config, lib, options, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.services.dendrite;
|
||||
fullDomain = "${cfg.prefix}.${cfg.hostDomain}";
|
||||
maxUploadMegabytes = 600;
|
||||
in {
|
||||
options.modules.services.dendrite = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
|
||||
hostDomain = mkOption {
|
||||
type = types.str;
|
||||
default = null;
|
||||
};
|
||||
|
||||
prefix = mkOption {
|
||||
type = types.str;
|
||||
default = "matrix";
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 8008;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = [
|
||||
{ assertion = cfg.hostDomain != null;
|
||||
description = "@config.modules.services.dendrite.hostDomain@ must not equal null";
|
||||
}
|
||||
];
|
||||
|
||||
services.dendrite = {
|
||||
enable = true;
|
||||
httpPort = cfg.port;
|
||||
# httpsPort = cfg.port;
|
||||
tlsCert = "/var/lib/dendrite_keys/server.crt";
|
||||
tlsKey = "/var/lib/dendrite_keys/server.key";
|
||||
loadCredential = [ "private_key:/var/lib/dendrite_keys/private/private_key.pem" ];
|
||||
environmentFile = "/var/lib/dendrite_keys/registration_secret";
|
||||
settings = {
|
||||
global = {
|
||||
server_name = cfg.hostDomain;
|
||||
private_key = "/var/lib/dendrite_keys/private/private_key.pem";
|
||||
presence = {
|
||||
enable_inbound = true;
|
||||
enable_outbound = true;
|
||||
};
|
||||
};
|
||||
client_api = {
|
||||
registration_shared_secret = "$REGISTRATION_SHARED_SECRET";
|
||||
};
|
||||
media_api = {
|
||||
max_file_size_bytes = maxUploadMegabytes;
|
||||
dynamic_thumbnails = true;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
services.nginx.virtualHosts."${fullDomain}" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
|
||||
#listen = [
|
||||
# { addr = "0.0.0.0";
|
||||
# port = 443;
|
||||
# ssl = true;
|
||||
# }
|
||||
# { addr = "[::]";
|
||||
# port = 443;
|
||||
# ssl = true;
|
||||
# }
|
||||
#];
|
||||
|
||||
locations."/_matrix".proxyPass = "http://127.0.0.1:${toString cfg.port}";
|
||||
#locations."/_matrix".proxyPass = "https://localhost:${toString cfg.port}";
|
||||
|
||||
extraConfig = ''
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-RealIP $remote_addr;
|
||||
proxy_read_timeout 600;
|
||||
client_max_body_size ${toString maxUploadMegabytes}M;
|
||||
'';
|
||||
};
|
||||
|
||||
services.nginx.virtualHosts."${cfg.hostDomain}" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
|
||||
locations."/.well-known/matrix/server".return = "200 '{ \"m.server\": \"${fullDomain}:443\"}'";
|
||||
|
||||
# locations."/.well-known/matrix/client".return = "200 '{ \"m.homserver\": { \"base_url\": \"https://${cfg.hostDomain}\"} }'";
|
||||
locations."/.well-known/matrix/client".extraConfig = ''
|
||||
add_header Access-Control-Allow-Origin '*';
|
||||
return 200 '{ \"m.homeserver\": { \"base_url\": \"https://${fullDomain}\"} }';
|
||||
'';
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 80 443 ];
|
||||
networking.firewall.allowedUDPPorts = [ 80 443 ];
|
||||
};
|
||||
}
|
|
@ -21,16 +21,19 @@ in {
|
|||
type = types.package;
|
||||
default = pkgs.unstable.forgejo;
|
||||
};
|
||||
enableActions = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
virtualisation.docker.enable = cfg.enableActions;
|
||||
|
||||
services = {
|
||||
gitea = {
|
||||
enable = true;
|
||||
package = cfg.package;
|
||||
domain = cfg.domain;
|
||||
httpPort = cfg.port;
|
||||
rootUrl = "https://${cfg.domain}/";
|
||||
stateDir = "/var/lib/${cfg.domain}";
|
||||
appName = "Forgejo: dark-firepit hosted Git";
|
||||
database = {
|
||||
|
@ -39,12 +42,30 @@ in {
|
|||
};
|
||||
settings = mkMerge [ (builtins.fromTOML (builtins.readFile "/etc/dotfiles/config/forgejo/app.toml")) {
|
||||
"ui.meta" = {
|
||||
AUTHOR = "aether & oat";
|
||||
AUTHOR = "dark-firepit.cloud";
|
||||
DESCRIPTION = "dark-firepit's shared git instance";
|
||||
};
|
||||
"server" = {
|
||||
DOMAIN = cfg.domain;
|
||||
HTTP_PORT = cfg.port;
|
||||
ROOT_URL = "https://${cfg.domain}/";
|
||||
};
|
||||
"actions" = {
|
||||
ENABLED = cfg.enableActions;
|
||||
};
|
||||
}];
|
||||
};
|
||||
|
||||
gitea-actions-runner = mkIf cfg.enableActions {
|
||||
instances."${config.networking.hostName}" = {
|
||||
enable = true;
|
||||
name = "ci";
|
||||
url = "https://${cfg.domain}/";
|
||||
labels = []; # use the packaged instance list
|
||||
token = removeSuffix "\n" (builtins.readFile "/etc/forgejo-runner-token");
|
||||
};
|
||||
};
|
||||
|
||||
nginx.virtualHosts."${cfg.domain}" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
|
|
|
@ -1,158 +0,0 @@
|
|||
{ pkgs, lib, config, options, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.services.ghost;
|
||||
# user used to run the Ghost service
|
||||
userName = builtins.replaceStrings [ "." ] [ "_" ] cfg.domain;
|
||||
in {
|
||||
options.modules.services.ghost = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs._.ghost;
|
||||
};
|
||||
domain = mkOption {
|
||||
type = types.str;
|
||||
default = "blog.oat.zone";
|
||||
};
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
default = 1357;
|
||||
};
|
||||
dataDir = mkOption {
|
||||
type = types.str;
|
||||
default = "/var/lib/${userName}";
|
||||
};
|
||||
};
|
||||
|
||||
config = let
|
||||
# directory used to save the blog content
|
||||
dataDir = cfg.dataDir;
|
||||
# script that sets up the Ghost content directory
|
||||
setupScript = pkgs.writeScript "${cfg.domain}-setup.sh" ''
|
||||
#! ${pkgs.stdenv.shell} -e
|
||||
chmod g+s "${dataDir}"
|
||||
[[ ! -d "${dataDir}/content" ]] && cp -r "${cfg.package}/content" "${dataDir}/content"
|
||||
chown -R "${userName}":"${userName}" "${dataDir}/content"
|
||||
chmod -R +w "${dataDir}/content"
|
||||
ln -f -s "/etc/${cfg.domain}.json" "${dataDir}/config.production.json"
|
||||
[[ -d "${dataDir}/current" ]] && rm "${dataDir}/current"
|
||||
ln -f -s "${cfg.package}/current" "${dataDir}/current"
|
||||
[[ -d "${dataDir}/content/themes/casper" ]] && rm "${dataDir}/content/themes/casper"
|
||||
ln -f -s "${cfg.package}/current/content/themes/casper" "${dataDir}/content/themes/casper"
|
||||
'';
|
||||
in lib.mkIf cfg.enable {
|
||||
# Creates the user and group
|
||||
users.users.${userName} = {
|
||||
isSystemUser = true;
|
||||
group = userName;
|
||||
createHome = true;
|
||||
home = dataDir;
|
||||
};
|
||||
users.groups.${userName} = { };
|
||||
|
||||
# Creates the Ghost config
|
||||
environment.etc."${cfg.domain}.json".text = ''
|
||||
{
|
||||
"url": "https://${cfg.domain}",
|
||||
"server": {
|
||||
"port": ${toString cfg.port},
|
||||
"host": "0.0.0.0"
|
||||
},
|
||||
"database": {
|
||||
"client": "mysql",
|
||||
"connection": {
|
||||
"host": "localhost",
|
||||
"user": "${userName}",
|
||||
"database": "${userName}",
|
||||
"password": "",
|
||||
"socketPath": "/run/mysqld/mysqld.sock"
|
||||
}
|
||||
},
|
||||
"mail": {
|
||||
"transport": "sendmail"
|
||||
},
|
||||
"logging": {
|
||||
"transports": ["stdout"]
|
||||
},
|
||||
"paths": {
|
||||
"contentPath": "${dataDir}/content"
|
||||
}
|
||||
}
|
||||
'';
|
||||
|
||||
# Sets up the Systemd service
|
||||
systemd.services."${cfg.domain}" = {
|
||||
enable = true;
|
||||
description = "${cfg.domain} ghost blog";
|
||||
restartIfChanged = true;
|
||||
restartTriggers =
|
||||
[ cfg.package config.environment.etc."${cfg.domain}.json".source ];
|
||||
requires = [ "mysql.service" ];
|
||||
after = [ "mysql.service" ];
|
||||
path = [ pkgs.nodejs pkgs.vips ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
User = userName;
|
||||
Group = userName;
|
||||
WorkingDirectory = dataDir;
|
||||
# Executes the setup script before start
|
||||
ExecStartPre = setupScript;
|
||||
# Runs Ghost with node
|
||||
ExecStart = "${pkgs.nodejs}/bin/node current/index.js";
|
||||
# Sandboxes the Systemd service
|
||||
AmbientCapabilities = [ ];
|
||||
CapabilityBoundingSet = [ ];
|
||||
KeyringMode = "private";
|
||||
LockPersonality = true;
|
||||
NoNewPrivileges = true;
|
||||
PrivateDevices = true;
|
||||
PrivateMounts = true;
|
||||
PrivateTmp = true;
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHome = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectSystem = "full";
|
||||
RemoveIPC = true;
|
||||
RestrictAddressFamilies = [ ];
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
};
|
||||
environment = { NODE_ENV = "production"; };
|
||||
};
|
||||
|
||||
# Sets up the blog virtual host on NGINX
|
||||
services.nginx.virtualHosts.${cfg.domain} = {
|
||||
# Sets up Lets Encrypt SSL certificates for the blog
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = { proxyPass = "http://127.0.0.1:${toString cfg.port}"; };
|
||||
extraConfig = ''
|
||||
charset UTF-8;
|
||||
|
||||
add_header Strict-Transport-Security "max-age=2592000; includeSubDomains" always;
|
||||
add_header Referrer-Policy "strict-origin-when-cross-origin";
|
||||
add_header X-Frame-Options "SAMEORIGIN";
|
||||
add_header X-XSS-Protection "1; mode=block";
|
||||
add_header X-Content-Type-Options nosniff;
|
||||
'';
|
||||
};
|
||||
|
||||
# Sets up MySQL database and user for Ghost
|
||||
services.mysql = {
|
||||
ensureDatabases = [ userName ];
|
||||
ensureUsers = [{
|
||||
name = userName;
|
||||
ensurePermissions = { "${userName}.*" = "ALL PRIVILEGES"; };
|
||||
}];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,82 +0,0 @@
|
|||
{ config, lib, pkgs, options, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.services.isso;
|
||||
in {
|
||||
options.modules.services.isso = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
domain = mkOption {
|
||||
type = types.str;
|
||||
default = "comments.oat.zone";
|
||||
};
|
||||
target = mkOption {
|
||||
type = types.str;
|
||||
default = "blog.oat.zone";
|
||||
};
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 1550;
|
||||
};
|
||||
dataDir = mkOption {
|
||||
type = types.str;
|
||||
default = "/var/lib/isso";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services = {
|
||||
isso = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
dbpath = "${cfg.dataDir}/comments.db";
|
||||
host = "https://${cfg.target}";
|
||||
latest-enabled = true;
|
||||
};
|
||||
server = {
|
||||
listen = "http://localhost:${toString cfg.port}";
|
||||
samesite = "Lax";
|
||||
public-endpoint = "https://${cfg.domain}";
|
||||
};
|
||||
guard = {
|
||||
enabled = true;
|
||||
require-author = true;
|
||||
ratelimit = 4;
|
||||
};
|
||||
admin = {
|
||||
enabled = true;
|
||||
password = removeSuffix "\n" (builtins.readFile /etc/isso_admin_pass);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nginx.enable = true;
|
||||
nginx.virtualHosts."${cfg.domain}" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:${toString cfg.port}";
|
||||
extraConfig = ''
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.isso.serviceConfig = {
|
||||
preStart = ''
|
||||
umask u=rwx,g=rwx,o=rx
|
||||
mkdir -p ${cfg.dataDir}
|
||||
cd ${cfg.dataDir}
|
||||
${pkgs.coreutils}/bin/chown -R isso:isso .
|
||||
${pkgs.coreutils}/bin/chmod -R 775 .
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
|
@ -270,6 +270,16 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
queuetype = mkOption {
|
||||
type = types.enum ["FAIR" "REGULAR"];
|
||||
description = ''
|
||||
Sets the queue type
|
||||
FAIR: Each user gets a fair chance at the queue by rearranging it such that no user can fill it up entirely
|
||||
REGULAR: Queue works as first-come, first-served
|
||||
'';
|
||||
default = "FAIR";
|
||||
};
|
||||
|
||||
eval = mkOption {
|
||||
type = types.bool;
|
||||
description = ''
|
||||
|
@ -359,4 +369,4 @@ in {
|
|||
}
|
||||
) cfg.instances;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
auth_enabled: false
|
||||
|
||||
server:
|
||||
http_listen_port: 3100
|
||||
|
||||
ingester:
|
||||
lifecycler:
|
||||
address: 0.0.0.0
|
||||
ring:
|
||||
kvstore:
|
||||
store: inmemory
|
||||
replication_factor: 1
|
||||
final_sleep: 0s
|
||||
chunk_idle_period: 1h # Any chunk not receiving new logs in this time will be flushed
|
||||
max_chunk_age: 1h # All chunks will be flushed when they hit this age, default is 1h
|
||||
chunk_target_size: 1048576 # Loki will attempt to build chunks up to 1.5MB, flushing first if chunk_idle_period or max_chunk_age is reached first
|
||||
chunk_retain_period: 30s # Must be greater than index read cache TTL if using an index cache (Default index read cache TTL is 5m)
|
||||
max_transfer_retries: 0 # Chunk transfers disabled
|
||||
|
||||
schema_config:
|
||||
configs:
|
||||
- from: 2023-12-08
|
||||
store: boltdb-shipper
|
||||
object_store: filesystem
|
||||
schema: v11
|
||||
index:
|
||||
prefix: index_
|
||||
period: 24h
|
||||
|
||||
storage_config:
|
||||
boltdb_shipper:
|
||||
active_index_directory: /var/lib/loki/boltdb-shipper-active
|
||||
cache_location: /var/lib/loki/boltdb-shipper-cache
|
||||
cache_ttl: 24h # Can be increased for faster performance over longer query periods, uses more disk space
|
||||
shared_store: filesystem
|
||||
filesystem:
|
||||
directory: /var/lib/loki/chunks
|
||||
|
||||
limits_config:
|
||||
reject_old_samples: true
|
||||
reject_old_samples_max_age: 168h
|
||||
|
||||
chunk_store_config:
|
||||
max_look_back_period: 0s
|
||||
|
||||
table_manager:
|
||||
retention_deletes_enabled: false
|
||||
retention_period: 0s
|
||||
|
||||
compactor:
|
||||
working_directory: /var/lib/loki
|
||||
shared_store: filesystem
|
||||
compactor_ring:
|
||||
kvstore:
|
||||
store: inmemory
|
|
@ -0,0 +1,110 @@
|
|||
{ config, lib, pkgs, options, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.services.metrics;
|
||||
in {
|
||||
options.modules.services.metrics = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
domain = mkOption {
|
||||
type = types.str;
|
||||
# default = "grafana.oat.zone";
|
||||
default = null;
|
||||
};
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
default = 2342;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = [
|
||||
{ assertion = cfg.domain != null;
|
||||
description = "please set the domain for grafana";
|
||||
}
|
||||
];
|
||||
systemd.services.promtail = {
|
||||
description = "Promtail service for Loki";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = ''
|
||||
${pkgs.grafana-loki}/bin/promtail --config.file ${./promtail.yml}
|
||||
'';
|
||||
};
|
||||
};
|
||||
services = {
|
||||
grafana = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
server = {
|
||||
domain = cfg.domain;
|
||||
http_port = cfg.port;
|
||||
http_addr = "127.0.0.1";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
prometheus = let
|
||||
ports = {
|
||||
base = 9001;
|
||||
node = 9002;
|
||||
nginx = 9003;
|
||||
};
|
||||
in {
|
||||
enable = true;
|
||||
port = ports.base;
|
||||
|
||||
exporters = {
|
||||
node = {
|
||||
enable = true;
|
||||
enabledCollectors = [ "systemd" ];
|
||||
port = ports.node;
|
||||
};
|
||||
nginx = {
|
||||
enable = true;
|
||||
port = ports.nginx;
|
||||
};
|
||||
};
|
||||
|
||||
scrapeConfigs = [
|
||||
{
|
||||
job_name = "lucent-firepit";
|
||||
static_configs = [{
|
||||
targets = [
|
||||
"127.0.0.1:${toString ports.node}"
|
||||
"127.0.0.1:${toString ports.nginx}"
|
||||
];
|
||||
}];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
loki = {
|
||||
enable = true;
|
||||
configFile = ./loki-local-config.yml;
|
||||
};
|
||||
|
||||
nginx.statusPage = true;
|
||||
|
||||
nginx.virtualHosts."${cfg.domain}" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:${toString cfg.port}";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
locations."= /robots.txt" = {
|
||||
extraConfig = ''
|
||||
add_header Content-Type text/plain;
|
||||
return 200 "User-agent: *\nDisallow: /\n";
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -7,12 +7,12 @@ in {
|
|||
options.modules.services.nextcloud = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
default = mkForce false;
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.nextcloud24;
|
||||
default = pkgs.nextcloud27;
|
||||
};
|
||||
|
||||
domain = mkOption {
|
||||
|
@ -28,15 +28,22 @@ in {
|
|||
}
|
||||
];
|
||||
|
||||
# vomit inducing
|
||||
# nixpkgs.config.permittedInsecurePackages = [
|
||||
# "openssl-1.1.1w"
|
||||
# ];
|
||||
|
||||
services.nextcloud = {
|
||||
enable = true;
|
||||
package = cfg.package;
|
||||
hostName = cfg.domain;
|
||||
enableBrokenCiphersForSSE = false;
|
||||
database.createLocally = true;
|
||||
config = {
|
||||
dbtype = "pgsql";
|
||||
dbuser = "nextcloud";
|
||||
dbuser = "nextcloud3";
|
||||
dbhost = "/run/postgresql";
|
||||
dbname = "nextcloud";
|
||||
dbname = "nextcloud3";
|
||||
adminpassFile = "/etc/nextcloudpass";
|
||||
adminuser = "root";
|
||||
# "log_type" = "systemd";
|
||||
|
@ -53,10 +60,10 @@ in {
|
|||
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
ensureDatabases = [ "nextcloud" ];
|
||||
ensureDatabases = [ "nextcloud3" ];
|
||||
ensureUsers = [
|
||||
{ name = "nextcloud";
|
||||
ensurePermissions."DATABASE nextcloud" = "ALL PRIVILEGES";
|
||||
{ name = "nextcloud3";
|
||||
ensurePermissions."DATABASE nextcloud3" = "ALL PRIVILEGES";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/src/auth.nim b/src/auth.nim
|
||||
index b288c50..de1b1d8 100644
|
||||
--- a/src/auth.nim
|
||||
+++ b/src/auth.nim
|
||||
@@ -202,7 +202,7 @@ proc initAccountPool*(cfg: Config; path: string) =
|
||||
quit 1
|
||||
|
||||
let accountsPrePurge = accountPool.len
|
||||
- accountPool.keepItIf(not it.hasExpired)
|
||||
+ #accountPool.keepItIf(not it.hasExpired)
|
||||
|
||||
log "Successfully added ", accountPool.len, " valid accounts."
|
||||
if accountsPrePurge > accountPool.len:
|
|
@ -1,4 +1,4 @@
|
|||
{ config, lib, pkgs, options, ... }:
|
||||
{ config, lib, pkgs, options, inputs, ... }:
|
||||
|
||||
# heavily references https://github.com/erdnaxe/nixos-modules/blob/master/services/nitter.nix
|
||||
|
||||
|
@ -29,11 +29,24 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
# force unstable
|
||||
disabledModules = [ "services/misc/nitter.nix" ];
|
||||
imports = [
|
||||
"${inputs.nixpkgs-unstable}/nixos/modules/services/misc/nitter.nix"
|
||||
];
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services = {
|
||||
nitter = {
|
||||
enable = true;
|
||||
package = pkgs.nitter;
|
||||
package = pkgs.unstable.nitter.overrideAttrs (old: {
|
||||
patches = old.patches ++ [
|
||||
./nitter-age-check.patch
|
||||
];
|
||||
});
|
||||
config = {
|
||||
proxy = ""; # https://github.com/NixOS/nixpkgs/issues/235359
|
||||
};
|
||||
server = {
|
||||
address = "127.0.0.1";
|
||||
port = cfg.port;
|
||||
|
|
|
@ -14,6 +14,7 @@ in {
|
|||
config = mkIf cfg.enable {
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
package = pkgs.postgresql_15;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
server:
|
||||
http_listen_port: 28183
|
||||
grpc_listen_port: 0
|
||||
|
||||
positions:
|
||||
filename: /tmp/positions.yaml
|
||||
|
||||
clients:
|
||||
- url: http://127.0.0.1:3100/loki/api/v1/push
|
||||
|
||||
scrape_configs:
|
||||
- job_name: journal
|
||||
journal:
|
||||
max_age: 12h
|
||||
labels:
|
||||
job: systemd-journal
|
||||
host: lucent-firepit
|
||||
relabel_configs:
|
||||
- source_labels: ["__journal__systemd_unit"]
|
||||
target_label: "unit"
|
|
@ -0,0 +1,34 @@
|
|||
{ config, lib, pkgs, options, inputs, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.services.update-idl;
|
||||
in {
|
||||
options.modules.services.update-idl = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.timers."update-itl" = {
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = {
|
||||
OnBootSec = "60m";
|
||||
OnUnitActiveSec = "60m";
|
||||
Unit = "update-itl.service";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services."update-itl" = {
|
||||
script = ''
|
||||
${pkgs.curl} -X POST https://mayf.pink/itl/update -H "Connection: Spiritual"
|
||||
'';
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = "root";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -55,7 +55,7 @@ in {
|
|||
ensureDatabases = [ "vaultwarden" ];
|
||||
ensureUsers = [
|
||||
{ name = "vaultwarden";
|
||||
ensurePermissions = { "DATABASE vaultwarden" = "ALL PRIVILEGES"; };
|
||||
ensureDBOwnership = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
|
|
@ -15,5 +15,9 @@ in {
|
|||
home._.programs.fish = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
fishPlugins.tide
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
self: super: {
|
||||
nitter = super.nitter.overrideAttrs (old: {
|
||||
# https://github.com/zedeus/nitter/pull/830
|
||||
version = "unstable-2023-04-16";
|
||||
src = super.fetchFromGitHub {
|
||||
owner = "PrivacyDevel";
|
||||
repo = "nitter";
|
||||
rev = "11279e2b4ff612f523380c2ff4678a056eb5c03c";
|
||||
hash = "sha256-GSBtyrrQTYRO9+XNXZsXOtnQ5QrLqmKE81RkuX/btUs=";
|
||||
};
|
||||
});
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
source "$stdenv"/setup
|
||||
|
||||
export HOME=$(mktemp -d)
|
||||
|
||||
npm install --loglevel=info --logs-max=0 "ghost-cli@$ghostCliVersion"
|
||||
|
||||
mkdir --parents "$out"/
|
||||
node_modules/ghost-cli/bin/ghost install "$version" --db=sqlite3 \
|
||||
--no-enable --no-prompt --no-stack --no-setup --no-start --dir "$out"
|
|
@ -1,11 +0,0 @@
|
|||
{ pkgs }:
|
||||
|
||||
let
|
||||
pname = "ghost";
|
||||
version = "5.33.2";
|
||||
in pkgs.stdenv.mkDerivation {
|
||||
inherit pname version;
|
||||
buildInputs = with pkgs; [ nodejs yarn vips ];
|
||||
ghostCliVersion = "1.24.0";
|
||||
builder = ./builder.sh;
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{ stdenv, lib, fetchurl, makeWrapper, jre_headless }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "GMusicBot";
|
||||
version = "2023-05-19";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://oat.zone/f/GMusicBot-2023-05-19.jar?v=3";
|
||||
sha256 = "sha256-5c36did0kkaeu4Yi9vGIhlqRoeUBBRWKdihbaW9lwk4=";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib
|
||||
cp $src $out/lib/GMusicBot
|
||||
|
||||
makeWrapper ${jre_headless}/bin/java $out/bin/GMusicBot \
|
||||
--add-flags "-Xmx1G -Dnogui=true -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 -jar $out/lib/GMusicBot"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Discord music bot that's easy to set up and run yourself";
|
||||
homepage = "https://git.oat.zone/oat/GMusicBot";
|
||||
sourceProvenance = with sourceTypes; [ binaryBytecode ];
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ SuperSandro2000 ];
|
||||
inherit (jre_headless.meta) platforms;
|
||||
};
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
{ stdenv, lib, fetchpijul
|
||||
, pijul
|
||||
, rustc
|
||||
, cargo
|
||||
, rustfmt
|
||||
, postgresql
|
||||
, sqlx-cli
|
||||
, libiconv
|
||||
, xxHash
|
||||
, zstd
|
||||
, ... }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nidobyte";
|
||||
|
||||
src = fetchpijul {
|
||||
url = "https://nest.pijul.com/zj/nidobyte";
|
||||
hash = "YZAHAQRQHK24QY2H3AXKCPPDIE2F53H35C5CNYUSXRDSNCWOUJVQC";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pijul
|
||||
|
||||
rustc
|
||||
cargo
|
||||
rustfmt
|
||||
|
||||
postgresql
|
||||
sqlx-cli
|
||||
|
||||
libiconv
|
||||
|
||||
xxHash
|
||||
zstd
|
||||
];
|
||||
}
|
Loading…
Reference in New Issue