Compare commits
No commits in common. "main" and "openssh-164ea4-fix" have entirely different histories.
main
...
openssh-16
@ -71,7 +71,6 @@ if [ "$1" = "update" ]; then
|
||||
nix flake update --commit-lock-file
|
||||
fi
|
||||
nix flake archive
|
||||
exit $?
|
||||
fi
|
||||
|
||||
if [ "$1" = "diff" ]; then
|
||||
|
@ -123,12 +123,6 @@ here.
|
||||
|
||||
* Packages
|
||||
|
||||
** yaml
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package yaml-mode)
|
||||
#+end_src
|
||||
|
||||
** rust-mode
|
||||
#+begin_src emacs-lisp
|
||||
(use-package rust-mode)
|
||||
@ -311,29 +305,6 @@ easier for me to treat it like a regular shell.
|
||||
|
||||
* Language Configurations
|
||||
|
||||
** OCaml
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package ocamlformat
|
||||
:custom (ocamlformat-enable 'enable-outside-detected-project)
|
||||
:hook (before-save . ocamlformat-before-save))
|
||||
|
||||
(use-package tuareg
|
||||
:mode ("\\.ml$" . tuareg-mode))
|
||||
|
||||
(use-package merlin
|
||||
:config
|
||||
(add-hook 'tuareg-mode-hook #'merlin-mode))
|
||||
#+end_src
|
||||
|
||||
** firewall stuff
|
||||
|
||||
*** nftables
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package nftables-mode)
|
||||
#+end_src
|
||||
|
||||
** Shell
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
@ -720,39 +691,46 @@ Extending org with the ability to transclude makes for a powerhouse!
|
||||
:after org)
|
||||
#+end_src
|
||||
|
||||
* Mail
|
||||
|
||||
** gnus
|
||||
* gnus
|
||||
|
||||
[2024-08-22 Thu] Might need to switch go gnus. mu4e has been not showing new
|
||||
mail for some things and having to sync state between two sources is a pita.
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package gnus
|
||||
:custom
|
||||
(gnus-use-cache t)
|
||||
(gnus-use-full-window nil)
|
||||
(gnus-suppress-duplicates t)
|
||||
(gnus-inhibit-startup-message t)
|
||||
(gnus-asynchronous t)
|
||||
(gnus-sum-thread-tree-false-root "")
|
||||
(gnus-sum-thread-tree-indent " ")
|
||||
(gnus-sum-thread-tree-leaf-with-other "├► ")
|
||||
(gnus-sum-thread-tree-root "")
|
||||
(gnus-sum-thread-tree-single-leaf "╰► ")
|
||||
(gnus-sum-thread-tree-vertical "│")
|
||||
(gnus-summary-line-format "%U%R%z %(%&user-date>; %-15,15f %B%s%)\n")
|
||||
(gnus-summary-thread-gathering-function 'gnus-gather-threads-by-references)
|
||||
(gnus-thread-sort-functions '(gnus-thread-sort-by-date))
|
||||
(gnus-user-date-format-alist '((t . "%Y-%m-%d %H:%M")))
|
||||
(gnus-select-method '(nnimap "imap.fastmail.com"
|
||||
(nnimap-server-port "imaps")
|
||||
(nnimap-stream ssl)
|
||||
(nnimap-expunge 'on-exit)))
|
||||
(gnus-secondary-select-methods '((nntp "news.gmane.io"))))
|
||||
(setq gnus-use-full-window nil
|
||||
gnus-fetch-old-headers t
|
||||
gnus-select-method '(nnimap "imap.fastmail.com")
|
||||
gnus-secondary-select-methods '((nntp "news.gwene.org"))
|
||||
gnus-sum-thread-tree-false-root ""
|
||||
gnus-sum-thread-tree-indent " "
|
||||
gnus-sum-thread-tree-leaf-with-other "├► "
|
||||
gnus-sum-thread-tree-root ""
|
||||
gnus-sum-thread-tree-single-leaf "╰► "
|
||||
gnus-sum-thread-tree-vertical "│"
|
||||
gnus-summary-line-format "%U%R%z %(%&user-date>; %-15,15f %B%s%)\n"
|
||||
gnus-summary-thread-gathering-function 'gnus-gather-threads-by-references
|
||||
gnus-thread-sort-functions '(gnus-thread-sort-by-date)
|
||||
gnus-user-date-format-alist '((t . "%Y-%m-%d %H:%M")))
|
||||
|
||||
(with-eval-after-load 'gnus
|
||||
(setq gnus-select-method '(nnimap "imap.fastmail.com")
|
||||
gnus-secondary-select-methods '((nntp "news.gwene.org"))))
|
||||
|
||||
#+end_src
|
||||
|
||||
** SMTP
|
||||
* mu4e
|
||||
~mu~ has been the best mail client for me on emacs.
|
||||
|
||||
** Initializing mu
|
||||
|
||||
The defaults ~mu~ uses make no sense. ~~/.cache~ is for .. caching data, not
|
||||
persistent databases.. So we init things with sane defaults:
|
||||
|
||||
#+begin_src shell
|
||||
mu init --muhome=/home/qbit/.mu -m /home/qbit/Maildir/fastmail/ --my-address="aaron@bolddaemon.com"
|
||||
#+end_src
|
||||
|
||||
** General mail configuration
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(require 'smtpmail)
|
||||
@ -766,3 +744,64 @@ mail for some things and having to sync state between two sources is a pita.
|
||||
smtpmail-default-smtp-server "smtp.fastmail.com"
|
||||
smtpmail-stream-type 'ssl)
|
||||
#+end_src
|
||||
|
||||
** mu4e specific configs
|
||||
#+begin_src emacs-lisp
|
||||
(use-package mu4e
|
||||
:init
|
||||
(setq mail-user-agent 'mu4e-user-agent
|
||||
read-mail-command 'mu4e
|
||||
mu4e-get-mail-command "mbsync fastmail"
|
||||
mu4e-update-interval 420
|
||||
mu4e-compose-context-policy nil
|
||||
mu4e-context-policy 'pick-first
|
||||
mu4e-drafts-folder "/Drafts"
|
||||
mu4e-sent-folder "/Sent Items"
|
||||
mu4e-trash-folder "/Trash"
|
||||
mu4e-maildir-shortcuts
|
||||
'( ("/INBOX" . ?i)
|
||||
("/Archive" . ?a)
|
||||
("/Sent Items" . ?s))
|
||||
org-mu4e-link-query-in-headers-mode nil
|
||||
mu4e-attachment-dir
|
||||
(lambda (fname mtype)
|
||||
(cond
|
||||
((and fname (string-match "\\.diff$" fname)) "~/patches")
|
||||
((and fname (string-match "\\.patch$" fname)) "~/patches")
|
||||
((and fname (string-match "\\.diff.gz$" fname)) "~/patches")
|
||||
(t "~/Downloads")))
|
||||
mu4e-bookmarks
|
||||
`(( :name "Inbox"
|
||||
:query "maildir:/Inbox AND NOT flag:trashed"
|
||||
:key ?i)
|
||||
( :name "TODO"
|
||||
:query "maildir:/TODO AND NOT flag:trashed"
|
||||
:key ?T)
|
||||
( :name "Unread messages"
|
||||
:query "flag:unread AND NOT flag:trashed AND NOT list:ports-changes.openbsd.org AND NOT list:source-changes.openbsd.org"
|
||||
:key ?u)
|
||||
( :name "Today's messages"
|
||||
:query "date:today..now"
|
||||
:key ?d)
|
||||
( :name "Hackers"
|
||||
:query "list:hackers.openbsd.org AND NOT flag:trashed"
|
||||
:key ?h)
|
||||
( :name "Bugs"
|
||||
:query "list:bugs.openbsd.org AND NOT flag:trashed"
|
||||
:key ?b)
|
||||
( :name "Tech"
|
||||
:query "list:tech.openbsd.org AND NOT flag:trashed"
|
||||
:key ?t)
|
||||
( :name "Ports"
|
||||
:query "list:ports.openbsd.org AND NOT flag:trashed"
|
||||
:key ?p)
|
||||
( :name "Misc"
|
||||
:query "list:misc.openbsd.org AND NOT flag:trashed"
|
||||
:key ?m)
|
||||
( :name "9front"
|
||||
:query "list:9front.9front.org AND NOT flag:trashed"
|
||||
:key ?9)
|
||||
( :name "GOT"
|
||||
:query "list:gameoftrees.openbsd.org AND NOT flag:trashed"
|
||||
:key ?g))))
|
||||
#+end_src
|
||||
|
@ -35,7 +35,7 @@ let
|
||||
haskell-vim
|
||||
neoformat
|
||||
neogit
|
||||
nvim-cmp
|
||||
nvim-compe
|
||||
nvim-lspconfig
|
||||
nvim-tree-lua
|
||||
nvim-treesitter.withAllGrammars
|
||||
|
@ -102,7 +102,7 @@ in
|
||||
];
|
||||
panes = [
|
||||
{
|
||||
commands = [ "ssh stan-kvm" ];
|
||||
commands = [ "ssh stan" ];
|
||||
}
|
||||
];
|
||||
}
|
||||
|
@ -9,60 +9,24 @@ let
|
||||
tailnetACLs =
|
||||
let
|
||||
acls = {
|
||||
nodeAttrs = [
|
||||
{
|
||||
target = [ "tag:laptop" "tag:mobile" ];
|
||||
attr = [
|
||||
"drive:access"
|
||||
];
|
||||
}
|
||||
{
|
||||
target = [ "tag:internal-server" ];
|
||||
attr = [
|
||||
"drive:share"
|
||||
];
|
||||
}
|
||||
{
|
||||
target = [ "namish" ];
|
||||
attr = [
|
||||
"drive:share"
|
||||
];
|
||||
}
|
||||
];
|
||||
grants = [
|
||||
{
|
||||
src = [ "europa" "sputnik" "skunk" "graphy" "plq" ];
|
||||
dst = [ "box" ];
|
||||
app = {
|
||||
"tailscale.com/cap/drive" = [{
|
||||
shares = [ "*" ];
|
||||
access = "rw";
|
||||
}];
|
||||
};
|
||||
}
|
||||
];
|
||||
hosts = {
|
||||
box = "100.115.16.150";
|
||||
console = "100.83.166.33";
|
||||
display = "100.77.35.34";
|
||||
europa = "100.64.26.122";
|
||||
faf = "100.80.94.131";
|
||||
gitle = "100.111.162.87";
|
||||
graphy = "100.123.184.55";
|
||||
h = "100.83.77.133";
|
||||
il = "100.86.182.99";
|
||||
invidious = "100.71.57.99";
|
||||
namish = "100.86.184.141";
|
||||
nbc = "100.74.8.55";
|
||||
ollama = "100.121.227.121";
|
||||
plq = "100.90.214.142";
|
||||
pwntie = "100.84.170.57";
|
||||
rimgo = "100.121.77.91";
|
||||
skunk = "100.79.26.78";
|
||||
sputnik = "100.78.154.31";
|
||||
startpage = "127.0.0.1";
|
||||
tsns = "100.73.115.100";
|
||||
gitle = "100.111.162.87";
|
||||
faf = "100.80.94.131";
|
||||
h = "100.83.77.133";
|
||||
box = "100.115.16.150";
|
||||
pwntie = "100.84.170.57";
|
||||
sputnik = "100.78.154.31";
|
||||
europa = "100.64.26.122";
|
||||
il = "100.86.182.99";
|
||||
tv = "100.118.196.38";
|
||||
ollama = "100.121.227.121";
|
||||
display = "100.77.35.34";
|
||||
rimgo = "100.121.77.91";
|
||||
invidious = "100.71.57.99";
|
||||
tsns = "100.73.115.100";
|
||||
};
|
||||
|
||||
tagOwners = {
|
||||
@ -79,11 +43,6 @@ let
|
||||
};
|
||||
|
||||
acls = [
|
||||
{
|
||||
action = "accept";
|
||||
src = [ "tag:mobile" "tag:laptop" ];
|
||||
dst = [ "h:6697" ];
|
||||
}
|
||||
{
|
||||
action = "accept";
|
||||
src = [ "europa" ];
|
||||
|
10
default.nix
10
default.nix
@ -35,9 +35,9 @@ in
|
||||
./bins
|
||||
];
|
||||
|
||||
# disabledModules = [
|
||||
# "services/web-apps/gotosocial.nix"
|
||||
# ];
|
||||
disabledModules = [
|
||||
"services/web-apps/gotosocial.nix"
|
||||
];
|
||||
|
||||
options.myconf = {
|
||||
managementPubKeys = lib.mkOption rec {
|
||||
@ -148,10 +148,6 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
system.nixos = {
|
||||
distroName = "XinOS";
|
||||
};
|
||||
|
||||
environment = {
|
||||
etc = {
|
||||
"ssh/ca.pub" = { text = caPubKeys; };
|
||||
|
161
flake.lock
generated
161
flake.lock
generated
@ -36,26 +36,6 @@
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"calnow": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"unstable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1732392602,
|
||||
"narHash": "sha256-KEU7yKYk+qBFjpkU66YUtQCWGL3bckB81Uos6JSbOM4=",
|
||||
"owner": "qbit",
|
||||
"repo": "calnow",
|
||||
"rev": "636dc7ac12a325806f9303ee5836cfb2ab1a574f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "qbit",
|
||||
"repo": "calnow",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"darwin": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@ -63,11 +43,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1732603785,
|
||||
"narHash": "sha256-AEjWTJwOmSnVYsSJCojKgoguGfFfwel6z/6ud6UFMU8=",
|
||||
"lastModified": 1728385805,
|
||||
"narHash": "sha256-mUd38b0vhB7yzgAjNOaFz7VY9xIVzlbn3P2wjGBcVV0=",
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "6ab87b7c84d4ee873e937108c4ff80c015a40c7a",
|
||||
"rev": "48b50b3b137be5cfb9f4d006835ce7c3fe558ccc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -78,6 +58,7 @@
|
||||
},
|
||||
"emacs-overlay": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"unstable"
|
||||
],
|
||||
@ -86,11 +67,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1732759838,
|
||||
"narHash": "sha256-bBghlNpHztnrUb1o7BAinp+rrWZMpaVNPrxnefhk1LY=",
|
||||
"lastModified": 1728525896,
|
||||
"narHash": "sha256-XpR0FJTAWDMUQhiwEdUWym2kbmz9XS6fifv8PWrm5VI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "emacs-overlay",
|
||||
"rev": "f704f6f113bef121c7e38f807e3397f7dbe1aee0",
|
||||
"rev": "75650e84f17566e47b40ae75e21dff1e4f97fd3d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -133,6 +114,24 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flakey-profile": {
|
||||
"locked": {
|
||||
"lastModified": 1712898590,
|
||||
@ -148,26 +147,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fynado": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"unstable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1732041949,
|
||||
"narHash": "sha256-cfOQ8VB5ip1/Q1AXwBPxSEPuK9DewzIyIyEZM2AyWwE=",
|
||||
"owner": "qbit",
|
||||
"repo": "fynado",
|
||||
"rev": "82002187ce242807eb8734ddcaabae34d3457a75",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "qbit",
|
||||
"repo": "fynado",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gostart": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@ -227,20 +206,20 @@
|
||||
"lix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1729298361,
|
||||
"narHash": "sha256-hiGtfzxFkDc9TSYsb96Whg0vnqBVV7CUxyscZNhed0U=",
|
||||
"rev": "ad9d06f7838a25beec425ff406fe68721fef73be",
|
||||
"lastModified": 1723503926,
|
||||
"narHash": "sha256-Rosl9iA9MybF5Bud4BTAQ9adbY81aGmPfV8dDBGl34s=",
|
||||
"rev": "bcaeb6388b8916ac6d1736e3aa2b13313e6a6bd2",
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/ad9d06f7838a25beec425ff406fe68721fef73be.tar.gz?rev=ad9d06f7838a25beec425ff406fe68721fef73be"
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/bcaeb6388b8916ac6d1736e3aa2b13313e6a6bd2.tar.gz?rev=bcaeb6388b8916ac6d1736e3aa2b13313e6a6bd2"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/lix-project/lix/archive/2.91.1.tar.gz"
|
||||
"url": "https://git.lix.systems/lix-project/lix/archive/2.91.0.tar.gz"
|
||||
}
|
||||
},
|
||||
"lix-module": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"flakey-profile": "flakey-profile",
|
||||
"lix": "lix",
|
||||
"nixpkgs": [
|
||||
@ -248,15 +227,15 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729360442,
|
||||
"narHash": "sha256-6U0CyPycIBc04hbYy2hBINnVso58n/ZyywY2BD3hu+s=",
|
||||
"rev": "9098ac95768f7006d7e070b88bae76939f6034e6",
|
||||
"lastModified": 1723510904,
|
||||
"narHash": "sha256-zNW/rqNJwhq2lYmQf19wJerRuNimjhxHKmzrWWFJYts=",
|
||||
"rev": "622a2253a071a1fb97a4d3c8103a91114acc1140",
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/9098ac95768f7006d7e070b88bae76939f6034e6.tar.gz?rev=9098ac95768f7006d7e070b88bae76939f6034e6"
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/622a2253a071a1fb97a4d3c8103a91114acc1140.tar.gz?rev=622a2253a071a1fb97a4d3c8103a91114acc1140"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz"
|
||||
"url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.0.tar.gz"
|
||||
}
|
||||
},
|
||||
"mcchunkie": {
|
||||
@ -322,11 +301,11 @@
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1732483221,
|
||||
"narHash": "sha256-kF6rDeCshoCgmQz+7uiuPdREVFuzhIorGOoPXMalL2U=",
|
||||
"lastModified": 1728269138,
|
||||
"narHash": "sha256-oKxDImsOvgUZMY4NwXVyUc/c1HiU2qInX+b5BU0yXls=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "45348ad6fb8ac0e8415f6e5e96efe47dd7f39405",
|
||||
"rev": "ecfcd787f373f43307d764762e139a7cdeb9c22b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -414,10 +393,8 @@
|
||||
"root": {
|
||||
"inputs": {
|
||||
"beyt": "beyt",
|
||||
"calnow": "calnow",
|
||||
"darwin": "darwin",
|
||||
"emacs-overlay": "emacs-overlay",
|
||||
"fynado": "fynado",
|
||||
"gostart": "gostart",
|
||||
"gqrss": "gqrss",
|
||||
"kogs": "kogs",
|
||||
@ -470,14 +447,17 @@
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"unstable"
|
||||
],
|
||||
"nixpkgs-stable": [
|
||||
"stable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1732575825,
|
||||
"narHash": "sha256-xtt95+c7OUMoqZf4OvA/7AemiH3aVuWHQbErYQoPwFk=",
|
||||
"lastModified": 1728345710,
|
||||
"narHash": "sha256-lpunY1+bf90ts+sA2/FgxVNIegPDKCpEoWwOPu4ITTQ=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "3433ea14fbd9e6671d0ff0dd45ed15ee4c156ffa",
|
||||
"rev": "06535d0e3d0201e6a8080dd32dbfde339b94f01b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -488,16 +468,16 @@
|
||||
},
|
||||
"stable": {
|
||||
"locked": {
|
||||
"lastModified": 1732698966,
|
||||
"narHash": "sha256-EAOMYlOltx993ZzkHwKvFfZcKyxt1q+n39riqsZkWuM=",
|
||||
"lastModified": 1728500571,
|
||||
"narHash": "sha256-dOymOQ3AfNI4Z337yEwHGohrVQb4yPODCW9MDUyAc4w=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f1f029e5cb5ff2d181552406a5d0a51177f5599d",
|
||||
"rev": "d51c28603def282a24fa034bcb007e2bcb5b5dd0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.11-small",
|
||||
"ref": "nixos-24.05-small",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
@ -532,6 +512,21 @@
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"traygent": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@ -614,11 +609,11 @@
|
||||
},
|
||||
"unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1732771228,
|
||||
"narHash": "sha256-Exlf1f78MrtTlzW0zGM9KSysO2tf5wnSvVQr8ordQi8=",
|
||||
"lastModified": 1728537394,
|
||||
"narHash": "sha256-ZSteBGamZ8ud2SOxZgd0kjKPbp9e9NQxhHVms52l2mE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "258e563d2cb35cc9d7d9297263ea725791391be2",
|
||||
"rev": "3f16bb4a40a55753cb84be9a54cd42c16222de6e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -629,11 +624,11 @@
|
||||
},
|
||||
"unstableSmall": {
|
||||
"locked": {
|
||||
"lastModified": 1732718005,
|
||||
"narHash": "sha256-rBd/tZyE0iw6C/xPOwqXZwIOi6sLA29t0ZXNomhBkqw=",
|
||||
"lastModified": 1728492678,
|
||||
"narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e245a698cd491e8d91cabc22901fd8c8cedf2e23",
|
||||
"rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -645,7 +640,7 @@
|
||||
},
|
||||
"utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709126324,
|
||||
@ -675,11 +670,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1732725082,
|
||||
"narHash": "sha256-gglsLwqmmRsZwujpUvAQ2Jm7HrulRaiYhGKFkScw7E0=",
|
||||
"lastModified": 1724811887,
|
||||
"narHash": "sha256-qdmkUW++w+pz9QCCgds80q3hrZwO/72OOvrsdl2Q7hM=",
|
||||
"ref": "main",
|
||||
"rev": "e3961bc9fd7300ff340b9edad0655dd0b4ad26b6",
|
||||
"revCount": 167,
|
||||
"rev": "fe6198b35411668a42e4dbc6bc657b3ace730e4e",
|
||||
"revCount": 157,
|
||||
"type": "git",
|
||||
"url": "ssh://xin-secrets-ro/qbit/xin-secrets.git"
|
||||
},
|
||||
@ -696,11 +691,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1730388045,
|
||||
"narHash": "sha256-LNUfkhfdGluL5GZh2lYBENl/yJ1cTfVal4su9SfD/wI=",
|
||||
"lastModified": 1724627027,
|
||||
"narHash": "sha256-p3ItKGMp7G5fVotT2tUlkTJdP7t/UjEl9ivQaTkqfyg=",
|
||||
"owner": "qbit",
|
||||
"repo": "xintray",
|
||||
"rev": "16ae5189a200d44cdc2145edc37eadb75ba5e363",
|
||||
"rev": "fc459ec9564d20c090fd4364f21e982ae7073c61",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
24
flake.nix
24
flake.nix
@ -5,16 +5,17 @@
|
||||
unstable.url = "github:NixOS/nixpkgs";
|
||||
unstableSmall.url = "github:NixOS/nixpkgs/nixos-unstable-small";
|
||||
|
||||
stable.url = "github:NixOS/nixpkgs/nixos-24.11-small";
|
||||
stable.url = "github:NixOS/nixpkgs/nixos-24.05-small";
|
||||
|
||||
lix-module = {
|
||||
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz";
|
||||
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.0.tar.gz";
|
||||
inputs.nixpkgs.follows = "unstable";
|
||||
};
|
||||
|
||||
sops-nix = {
|
||||
url = "github:Mic92/sops-nix";
|
||||
inputs = {
|
||||
nixpkgs-stable.follows = "stable";
|
||||
nixpkgs.follows = "unstable";
|
||||
};
|
||||
};
|
||||
@ -102,14 +103,7 @@
|
||||
url = "github:qbit/traygent";
|
||||
inputs.nixpkgs.follows = "unstable";
|
||||
};
|
||||
fynado = {
|
||||
url = "github:qbit/fynado";
|
||||
inputs.nixpkgs.follows = "unstable";
|
||||
};
|
||||
calnow = {
|
||||
url = "github:qbit/calnow";
|
||||
inputs.nixpkgs.follows = "unstable";
|
||||
};
|
||||
|
||||
gqrss = {
|
||||
url = "github:qbit/gqrss";
|
||||
flake = false;
|
||||
@ -119,7 +113,6 @@
|
||||
outputs =
|
||||
{ self
|
||||
, beyt
|
||||
, calnow
|
||||
, darwin
|
||||
, emacs-overlay
|
||||
, gostart
|
||||
@ -134,7 +127,6 @@
|
||||
, simple-nixos-mailserver
|
||||
, stable
|
||||
, traygent
|
||||
, fynado
|
||||
, ts-reverse-proxy
|
||||
, tsns
|
||||
, tsvnstat
|
||||
@ -329,7 +321,6 @@
|
||||
inherit spkgs;
|
||||
isUnstable = true;
|
||||
};
|
||||
irken = upkgs.tclPackages.callPackage ./pkgs/irken.nix { };
|
||||
ttfs = upkgs.callPackage ./pkgs/ttfs.nix { };
|
||||
intiface-engine = upkgs.callPackage ./pkgs/intiface-engine.nix { };
|
||||
flake-warn =
|
||||
@ -364,8 +355,12 @@
|
||||
promnesia = upkgs.python3Packages.callPackage ./pkgs/promnesia.nix {
|
||||
inherit upkgs;
|
||||
};
|
||||
sliding-sync =
|
||||
spkgs.callPackage ./pkgs/sliding-sync.nix { inherit spkgs; };
|
||||
gokrazy = upkgs.callPackage ./pkgs/gokrazy.nix { inherit upkgs; };
|
||||
gosignify = spkgs.callPackage ./pkgs/gosignify.nix { inherit spkgs; };
|
||||
gotosocial =
|
||||
spkgs.callPackage ./pkgs/gotosocial.nix { inherit spkgs; };
|
||||
zutty = upkgs.callPackage ./pkgs/zutty.nix {
|
||||
inherit upkgs;
|
||||
};
|
||||
@ -380,14 +375,11 @@
|
||||
inherit (ts-reverse-proxy.packages.${system}) ts-reverse-proxy;
|
||||
inherit (tsns.packages.${system}) tsns;
|
||||
inherit (traygent.packages.${system}) traygent;
|
||||
inherit (fynado.packages.${system}) fynado;
|
||||
inherit (calnow.packages.${system}) calnow;
|
||||
|
||||
inherit (spkgs) matrix-synapse;
|
||||
|
||||
xin = upkgs.callPackage ./bins/xin { inherit upkgs; };
|
||||
openssh = upkgs.pkgsMusl.callPackage ./pkgs/openssh.nix { inherit upkgs; };
|
||||
matrix = self.nixosConfigurations.h.pkgs.matrix-synapse;
|
||||
});
|
||||
|
||||
templates = {
|
||||
|
@ -8,9 +8,7 @@
|
||||
let
|
||||
inherit (builtins) toJSON;
|
||||
inherit (inputs.traygent.packages.${pkgs.system}) traygent;
|
||||
inherit (inputs.fynado.packages.${pkgs.system}) fynado;
|
||||
inherit (inputs.beyt.packages.${pkgs.system}) beyt;
|
||||
inherit (inputs.calnow.packages.${pkgs.system}) calnow;
|
||||
firefox = import ../configs/firefox.nix { inherit pkgs; };
|
||||
rage = pkgs.writeScriptBin "rage" (import ../bins/rage.nix { inherit pkgs; });
|
||||
rpr =
|
||||
@ -44,7 +42,7 @@ let
|
||||
];
|
||||
traygentCmds = toJSON [
|
||||
{
|
||||
command_path = "${pkgs.kdePackages.ksshaskpass}/bin/ksshaskpass";
|
||||
command_path = "${pkgs.ksshaskpass}/bin/ksshaskpass";
|
||||
#command_path = "${pkgs.ssh-askpass-fullscreen}/bin/ssh-askpass-fullscreen";
|
||||
event = "sign";
|
||||
msg_format = "Allow access to key %q?";
|
||||
@ -110,7 +108,6 @@ with lib; {
|
||||
bc
|
||||
beyt
|
||||
black
|
||||
calnow
|
||||
drawterm-wayland
|
||||
exiftool
|
||||
go-font
|
||||
@ -125,7 +122,6 @@ with lib; {
|
||||
recoll
|
||||
rpr
|
||||
traygent
|
||||
fynado
|
||||
trayscale
|
||||
vlc
|
||||
zeal
|
||||
|
@ -58,14 +58,11 @@ with pkgs;
|
||||
NIXOS_OZONE_WL = 1;
|
||||
};
|
||||
systemPackages = with kdePackages; [
|
||||
akonadi-calendar-tools
|
||||
kcolorchooser
|
||||
kconnect
|
||||
kontact
|
||||
konversation
|
||||
korganizer
|
||||
kzones
|
||||
merkuro
|
||||
];
|
||||
};
|
||||
};
|
||||
|
@ -78,11 +78,6 @@ in
|
||||
owner = config.users.users.restic.name;
|
||||
sopsFile = config.xin-secrets.box.secrets.certs;
|
||||
};
|
||||
invidious_extra = {
|
||||
owner = "root";
|
||||
mode = "444";
|
||||
sopsFile = config.xin-secrets.box.secrets.services;
|
||||
};
|
||||
|
||||
books_cert = mkNginxSecret;
|
||||
books_key = mkNginxSecret;
|
||||
@ -195,10 +190,6 @@ in
|
||||
allowUnfree = true;
|
||||
permittedInsecurePackages = todo "figure out what is using openssl-1.1.1w" [
|
||||
"openssl-1.1.1w"
|
||||
"aspnetcore-runtime-wrapped-6.0.36"
|
||||
"aspnetcore-runtime-6.0.36"
|
||||
"dotnet-sdk-wrapped-6.0.428"
|
||||
"dotnet-sdk-6.0.428"
|
||||
];
|
||||
};
|
||||
#overlays = [
|
||||
@ -444,8 +435,6 @@ in
|
||||
database = {
|
||||
createLocally = true;
|
||||
};
|
||||
sig-helper.enable = true;
|
||||
extraSettingsFile = "/run/secrets/invidious_extra";
|
||||
address = "127.0.0.1";
|
||||
port = 1538;
|
||||
settings = {
|
||||
@ -797,10 +786,8 @@ in
|
||||
START_SSH_SERVER = true;
|
||||
SSH_SERVER_HOST_KEYS = "ssh/gitea-ed25519";
|
||||
SSH_PORT = 2222;
|
||||
COOKIE_SECURE = true;
|
||||
};
|
||||
service = {
|
||||
DISABLE_REGISTRATION = true;
|
||||
COOKIE_SECURE = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -168,7 +168,7 @@ in
|
||||
'';
|
||||
shellAliases = {
|
||||
"gh" = "op plugin run -- gh";
|
||||
"nixpkgs-review" = "env GITHUB_TOKEN=$(op item get nixpkgs-review --field token --reveal) nixpkgs-review";
|
||||
"nixpkgs-review" = "env GITHUB_TOKEN=$(op item get nixpkgs-review --field token) nixpkgs-review";
|
||||
"godeps" = "go list -m -f '{{if not (or .Indirect .Main)}}{{.Path}}{{end}}' all";
|
||||
"sync-music" = "rsync -av --progress --delete ~/Music/ suah.dev:/var/lib/music/";
|
||||
"load-agent" = ''op item get signer --field 'private key' --reveal | sed '/"/d; s/\r//' | ssh-add -'';
|
||||
@ -243,7 +243,7 @@ in
|
||||
};
|
||||
pcscd.enable = true;
|
||||
vnstat.enable = true;
|
||||
clamav.updater.enable = true;
|
||||
# clamav.updater.enable = true;
|
||||
tor = {
|
||||
enable = true;
|
||||
client.enable = true;
|
||||
@ -331,7 +331,6 @@ in
|
||||
chirp # stable
|
||||
deadbeef-with-plugins
|
||||
deluge
|
||||
dino
|
||||
direwolf
|
||||
element-desktop
|
||||
element-desktop-wayland
|
||||
@ -382,6 +381,7 @@ in
|
||||
rtl-sdr
|
||||
sdrpp
|
||||
signal-desktop
|
||||
signal-desktop-beta
|
||||
tcpdump
|
||||
tea
|
||||
tigervnc
|
||||
@ -395,13 +395,24 @@ in
|
||||
zig
|
||||
|
||||
(callPackage ../../pkgs/ttfs.nix { })
|
||||
(python3Packages.callPackage ../../pkgs/kobuddy.nix { })
|
||||
(callPackage ../../pkgs/kobuddy.nix {
|
||||
inherit pkgs;
|
||||
inherit
|
||||
(pkgs.python39Packages)
|
||||
buildPythonPackage
|
||||
fetchPypi
|
||||
setuptools-scm
|
||||
pytz
|
||||
banal
|
||||
sqlalchemy
|
||||
alembic
|
||||
;
|
||||
})
|
||||
(callPackage ../../pkgs/gokrazy.nix { })
|
||||
(callPackage ../../pkgs/mvoice.nix { })
|
||||
(callPackage ../../pkgs/zutty.nix { })
|
||||
(python3Packages.callPackage ../../pkgs/watchmap.nix { })
|
||||
#(python3Packages.callPackage ../../pkgs/watchmap.nix { })
|
||||
(python3Packages.callPackage ../../pkgs/ble-serial.nix { })
|
||||
(tclPackages.callPackage ../../pkgs/irken.nix { })
|
||||
|
||||
restic
|
||||
];
|
||||
|
@ -1 +0,0 @@
|
||||
suah.dev
|
@ -5,10 +5,9 @@
|
||||
, ...
|
||||
}:
|
||||
with pkgs; let
|
||||
sojuUser = "soju";
|
||||
maxUploadSize = "150M";
|
||||
gqrss = callPackage ../../pkgs/gqrss.nix { inherit isUnstable; };
|
||||
icbirc = callPackage ../../pkgs/icbirc.nix { inherit isUnstable; };
|
||||
slidingSyncPkg = callPackage ../../pkgs/sliding-sync.nix { };
|
||||
weepushover =
|
||||
python3Packages.callPackage ../../pkgs/weepushover.nix { inherit pkgs; };
|
||||
pgBackupDir = "/var/backups/postgresql";
|
||||
@ -44,6 +43,13 @@ with pkgs; let
|
||||
mkMatrixWellKnown = p: ''
|
||||
return 200 '${builtins.toJSON p}';
|
||||
'';
|
||||
|
||||
mkMatrixSliderLoc = {
|
||||
proxyWebsockets = true;
|
||||
proxyPass = "http://${config.services.sliding-sync.address}:${
|
||||
toString config.services.sliding-sync.port
|
||||
}";
|
||||
};
|
||||
mkMatrixLoc = {
|
||||
proxyWebsockets = true;
|
||||
proxyPass = "http://${mtxCfg.address}:${toString mtxCfg.port}";
|
||||
@ -135,6 +141,11 @@ in
|
||||
mode = "400";
|
||||
sopsFile = config.xin-secrets.h.secrets.services;
|
||||
};
|
||||
sliding_sync_env = {
|
||||
owner = config.services.sliding-sync.user;
|
||||
mode = "400";
|
||||
sopsFile = config.xin-secrets.h.secrets.services;
|
||||
};
|
||||
pr_status_env = {
|
||||
mode = "400";
|
||||
owner = config.services.ts-reverse-proxy.servers."pr-status-reverse".user;
|
||||
@ -150,16 +161,6 @@ in
|
||||
owner = "root";
|
||||
sopsFile = config.xin-secrets.h.secrets.services;
|
||||
};
|
||||
bounce_cert = {
|
||||
mode = "400";
|
||||
owner = sojuUser;
|
||||
sopsFile = config.xin-secrets.h.secrets.services;
|
||||
};
|
||||
bounce_key = {
|
||||
mode = "400";
|
||||
owner = sojuUser;
|
||||
sopsFile = config.xin-secrets.h.secrets.services;
|
||||
};
|
||||
};
|
||||
|
||||
networking = {
|
||||
@ -206,12 +207,8 @@ in
|
||||
};
|
||||
|
||||
firewall = {
|
||||
interfaces = {
|
||||
"tailscale0" = {
|
||||
allowedTCPPorts = [ 9002 config.services.shiori.port 6697 ];
|
||||
};
|
||||
};
|
||||
allowedTCPPorts = [ 22 80 443 2222 53589 5222 5269 ];
|
||||
interfaces = { "tailscale0" = { allowedTCPPorts = [ 9002 config.services.shiori.port ]; }; };
|
||||
allowedTCPPorts = [ 22 80 443 2222 53589 ];
|
||||
allowedUDPPorts = [ 7122 ];
|
||||
allowedUDPPortRanges = [
|
||||
{
|
||||
@ -248,53 +245,17 @@ in
|
||||
security.acme = {
|
||||
acceptTerms = true;
|
||||
defaults.email = "aaron@bolddaemon.com";
|
||||
certs = {
|
||||
"suah.dev" = {
|
||||
group = "prognx";
|
||||
extraDomainNames = [
|
||||
"upload.suah.dev"
|
||||
"conference.suah.dev"
|
||||
];
|
||||
};
|
||||
"segfault.rodeo" = {
|
||||
group = "prognx";
|
||||
extraDomainNames = [
|
||||
"upload.segfault.rodeo"
|
||||
"conference.segfault.rodeo"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
users = {
|
||||
groups = {
|
||||
${sojuUser} = { };
|
||||
prognx = {
|
||||
members = [
|
||||
config.services.prosody.user
|
||||
config.services.nginx.user
|
||||
];
|
||||
};
|
||||
};
|
||||
users = {
|
||||
root = userBase;
|
||||
qbit = userBase;
|
||||
"${sojuUser}" = {
|
||||
isSystemUser = true;
|
||||
group = sojuUser;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd = {
|
||||
services = {
|
||||
soju = {
|
||||
serviceConfig = {
|
||||
User = sojuUser;
|
||||
Group = sojuUser;
|
||||
after = [ "network-online.target" "tailscaled.service" ];
|
||||
};
|
||||
};
|
||||
mcchunkie = {
|
||||
serviceConfig = {
|
||||
ExecStart = lib.mkForce "${pkgs.mcchunkie}/bin/mcchunkie -db /var/lib/mcchunkie/db";
|
||||
@ -356,60 +317,6 @@ in
|
||||
};
|
||||
|
||||
services = {
|
||||
prosody = {
|
||||
enable = true;
|
||||
|
||||
httpPorts = [ 5280 ];
|
||||
httpsPorts = [ 5281 ];
|
||||
|
||||
virtualHosts."suah.dev" = {
|
||||
enabled = true;
|
||||
domain = "suah.dev";
|
||||
ssl = {
|
||||
cert = "/var/lib/acme/suah.dev/fullchain.pem";
|
||||
key = "/var/lib/acme/suah.dev/key.pem";
|
||||
};
|
||||
};
|
||||
|
||||
virtualHosts."segfault.rodeo" = {
|
||||
enabled = true;
|
||||
domain = "segfault.rodeo";
|
||||
ssl = {
|
||||
cert = "/var/lib/acme/segfault.rodeo/fullchain.pem";
|
||||
key = "/var/lib/acme/segfault.rodeo/key.pem";
|
||||
};
|
||||
};
|
||||
|
||||
uploadHttp = {
|
||||
domain = "upload.suah.dev";
|
||||
uploadExpireAfter = "60 * 60 * 24 * 7 * 4";
|
||||
};
|
||||
|
||||
muc = [
|
||||
{
|
||||
domain = "conference.suah.dev";
|
||||
maxHistoryMessages = 1024;
|
||||
}
|
||||
{
|
||||
domain = "conference.segfault.rodeo";
|
||||
maxHistoryMessages = 2048;
|
||||
}
|
||||
];
|
||||
|
||||
allowRegistration = false;
|
||||
|
||||
admins = [
|
||||
"qbit@suah.dev"
|
||||
"qbit@segfault.rodeo"
|
||||
];
|
||||
};
|
||||
soju = {
|
||||
enable = true;
|
||||
listen = [ "100.83.77.133:6697" ];
|
||||
hostName = "bounce.bold.daemon";
|
||||
tlsCertificate = config.sops.secrets.bounce_cert.path;
|
||||
tlsCertificateKey = config.sops.secrets.bounce_key.path;
|
||||
};
|
||||
postfix.extraConfig = ''
|
||||
smtputf8_enable = no
|
||||
'';
|
||||
@ -458,6 +365,11 @@ in
|
||||
};
|
||||
};
|
||||
};
|
||||
sliding-sync = {
|
||||
enable = true;
|
||||
server = "https://tapenet.org";
|
||||
package = slidingSyncPkg;
|
||||
};
|
||||
pots = {
|
||||
enable = true;
|
||||
envFile = "${config.sops.secrets.pots_env_file.path}";
|
||||
@ -480,7 +392,7 @@ in
|
||||
gotosocial = {
|
||||
enable = true;
|
||||
# https://github.com/superseriousbusiness/gotosocial/blob/v0.5.2/example/config.yaml
|
||||
settings = {
|
||||
configuration = {
|
||||
account-domain = "mammothcirc.us";
|
||||
accounts-approval-required = false;
|
||||
accounts-reason-required = false;
|
||||
@ -503,7 +415,8 @@ in
|
||||
storage-backend = "local";
|
||||
storage-local-base-path = "/var/lib/gotosocial";
|
||||
trusted-proxies = [ "127.0.0.1/32" "23.29.118.0/24" ];
|
||||
landing-page-user = "qbit";
|
||||
web-template-base-dir = "${config.services.gotosocial.package}/assets/web/template/";
|
||||
web-asset-base-dir = "${config.services.gotosocial.package}/assets/web/assets/";
|
||||
};
|
||||
};
|
||||
promtail = {
|
||||
@ -576,7 +489,6 @@ in
|
||||
"/var/lib/kogs"
|
||||
"/var/vmail"
|
||||
"/var/dkim"
|
||||
config.services.prosody.dataDir
|
||||
];
|
||||
|
||||
timerConfig = { OnCalendar = "00:05"; };
|
||||
@ -595,7 +507,7 @@ in
|
||||
recommendedGzipSettings = true;
|
||||
recommendedProxySettings = true;
|
||||
|
||||
clientMaxBodySize = maxUploadSize;
|
||||
clientMaxBodySize = "50M";
|
||||
|
||||
commonHttpConfig = ''
|
||||
# Add HSTS header with preloading to HTTPS requests.
|
||||
@ -847,11 +759,6 @@ in
|
||||
enableACME = true;
|
||||
root = "/var/www/qbit.io";
|
||||
};
|
||||
"segfault.rodeo" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
root = "/var/www/segfault.rodeo";
|
||||
};
|
||||
"mammothcirc.us" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
@ -870,7 +777,7 @@ in
|
||||
locations."/" = {
|
||||
extraConfig = ''
|
||||
proxy_pass http://127.0.0.1:${
|
||||
toString config.services.gotosocial.settings.port
|
||||
toString config.services.gotosocial.configuration.port
|
||||
};
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
@ -926,7 +833,22 @@ in
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
// (if config.services.sliding-sync.enable
|
||||
then {
|
||||
"/.well-known/matrix/client".extraConfig =
|
||||
mkMatrixWellKnown matrixClientConfig;
|
||||
"/.well-known/matrix/server".extraConfig =
|
||||
mkMatrixWellKnown matrixServerConfig;
|
||||
|
||||
"/client" = mkMatrixSliderLoc;
|
||||
"/_matrix/client/unstable/org.matrix.msc3575/sync" =
|
||||
mkMatrixSliderLoc;
|
||||
|
||||
"/_matrix" = mkMatrixLoc;
|
||||
"/_synapse/client" = mkMatrixLoc;
|
||||
}
|
||||
else {
|
||||
"/.well-known/matrix/client".extraConfig =
|
||||
mkMatrixWellKnown matrixClientConfig;
|
||||
"/.well-known/matrix/server".extraConfig =
|
||||
@ -934,7 +856,7 @@ in
|
||||
|
||||
"/_matrix" = mkMatrixLoc;
|
||||
"/_synapse/client" = mkMatrixLoc;
|
||||
};
|
||||
});
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -1045,7 +967,6 @@ in
|
||||
server_name = "tapenet.org";
|
||||
signing_key_path = "${config.sops.secrets.synapse_signing_key.path}";
|
||||
url_preview_enabled = false;
|
||||
max_upload_size = maxUploadSize;
|
||||
plugins = with config.services.matrix-synapse.package.plugins; [ matrix-synapse-mjolnir-antispam ];
|
||||
app_service_config_files = [
|
||||
"/var/lib/heisenbridge/registration.yml"
|
||||
|
@ -90,8 +90,7 @@ in
|
||||
ollama = {
|
||||
enable = true;
|
||||
acceleration = "rocm";
|
||||
host = "localhost";
|
||||
port = oLlamaPort;
|
||||
listenAddress = "localhost:${toString oLlamaPort}";
|
||||
};
|
||||
prometheus = {
|
||||
enable = true;
|
||||
|
@ -268,7 +268,6 @@ in
|
||||
};
|
||||
|
||||
services = {
|
||||
avahi.enable = true;
|
||||
rkvm.client = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
@ -2,8 +2,10 @@
|
||||
imports = [
|
||||
./backup.nix
|
||||
./golink.nix
|
||||
./gotosocial.nix
|
||||
./lock-action.nix
|
||||
./rtlamr2mqtt.nix
|
||||
./sliding-sync.nix
|
||||
./ssh-fido-agent.nix
|
||||
./tsvnstat.nix
|
||||
./veilid-server.nix
|
||||
|
83
modules/gotosocial.nix
Normal file
83
modules/gotosocial.nix
Normal file
@ -0,0 +1,83 @@
|
||||
{ config
|
||||
, lib
|
||||
, pkgs
|
||||
, ...
|
||||
}:
|
||||
with pkgs; let
|
||||
cfg = config.services.gotosocial;
|
||||
gotosocial = callPackage ../pkgs/gotosocial.nix { };
|
||||
settingsFormat = pkgs.formats.json { };
|
||||
settingsType = settingsFormat.type;
|
||||
prettyJSON = conf:
|
||||
pkgs.runCommandLocal "gotosocial-config.json" { } ''
|
||||
echo '${
|
||||
builtins.toJSON conf
|
||||
}' | ${pkgs.buildPackages.jq}/bin/jq 'del(._module)' > $out
|
||||
'';
|
||||
in
|
||||
{
|
||||
options = with lib; {
|
||||
services.gotosocial = {
|
||||
enable = mkEnableOption "Enable gotosocial";
|
||||
|
||||
user = mkOption {
|
||||
type = with types; oneOf [ str int ];
|
||||
default = "gotosocial";
|
||||
description = ''
|
||||
The user the service will use.
|
||||
'';
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = with types; oneOf [ str int ];
|
||||
default = "gotosocial";
|
||||
description = ''
|
||||
The user the service will use.
|
||||
'';
|
||||
};
|
||||
|
||||
configuration = mkOption {
|
||||
type = settingsType;
|
||||
description = ''
|
||||
Specify the configuration for GoToSocial in Nix.
|
||||
'';
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = gotosocial;
|
||||
defaultText = literalExpression "pkgs.gotosocial";
|
||||
description = "The package to use for gotosocial";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
users.groups.gotosocial = { };
|
||||
users.users.gotosocial = {
|
||||
description = "Gotosocial service user";
|
||||
isSystemUser = true;
|
||||
home = "/var/lib/gotosocial";
|
||||
createHome = true;
|
||||
group = "gotosocial";
|
||||
};
|
||||
|
||||
systemd.services.gotosocial = {
|
||||
enable = true;
|
||||
description = "GoToSocial server";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "postgresql.service" ];
|
||||
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
|
||||
RuntimeDirectory = "/var/lib/gotosocial";
|
||||
|
||||
ExecStart = "${cfg.package}/bin/gotosocial --config-path ${
|
||||
prettyJSON cfg.configuration
|
||||
} server start";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
104
modules/sliding-sync.nix
Normal file
104
modules/sliding-sync.nix
Normal file
@ -0,0 +1,104 @@
|
||||
{ lib
|
||||
, config
|
||||
, pkgs
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
cfg = config.services.sliding-sync;
|
||||
in
|
||||
{
|
||||
options = with lib; {
|
||||
services.sliding-sync = {
|
||||
enable = lib.mkEnableOption "Enable sliding-sync";
|
||||
|
||||
user = mkOption {
|
||||
type = with types; oneOf [ str int ];
|
||||
default = "syncv3";
|
||||
description = ''
|
||||
The user the service will use.
|
||||
'';
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = with types; oneOf [ str int ];
|
||||
default = "syncv3";
|
||||
description = ''
|
||||
The group the service will use.
|
||||
'';
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/sliding-sync";
|
||||
description = "Path sliding-sync home directory";
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.sliding-sync;
|
||||
defaultText = literalExpression "pkgs.sliding-sync";
|
||||
description = "The package to use for sliding-sync";
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
default = 8098;
|
||||
description = "The port sliding-sync should listen on.";
|
||||
};
|
||||
|
||||
address = mkOption {
|
||||
type = types.str;
|
||||
default = "127.0.0.1";
|
||||
description = "The address sliding-sync should listen on.";
|
||||
};
|
||||
|
||||
server = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = "The matrix server to talk to.";
|
||||
};
|
||||
|
||||
envFile = mkOption {
|
||||
type = types.path;
|
||||
default = "/run/secrets/sliding_sync_env";
|
||||
description = ''
|
||||
Path to a file containing the sliding-sync secret information.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
users.groups.${cfg.group} = { };
|
||||
users.users.${cfg.user} = {
|
||||
description = "sliding-sync service user";
|
||||
isSystemUser = true;
|
||||
home = "${cfg.dataDir}";
|
||||
createHome = true;
|
||||
group = "${cfg.group}";
|
||||
};
|
||||
|
||||
systemd.services.sliding-sync = {
|
||||
enable = true;
|
||||
description = "sliding-sync server";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" "matrix-synapse.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
|
||||
environment = {
|
||||
HOME = "${cfg.dataDir}";
|
||||
SYNCV3_BINDADDR = "${cfg.address}:${toString cfg.port}";
|
||||
SYNCV3_SERVER = cfg.server;
|
||||
};
|
||||
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
|
||||
ExecStart = "${cfg.package}/bin/syncv3";
|
||||
EnvironmentFile = cfg.envFile;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -4,10 +4,13 @@ set logfile /var/log/monit.log
|
||||
|
||||
include /run/secrets/monit_cfg
|
||||
|
||||
set mail-format {
|
||||
set mail-format {
|
||||
from: alerts@bolddaemon.com
|
||||
subject: $SERVICE @ $HOST $EVENT on $DATE
|
||||
subject: $SERVICE $EVENT on $DATE
|
||||
message: $DESCRIPTION
|
||||
}
|
||||
|
||||
check system $HOST
|
||||
if memory usage > 80% for 10 cycles then alert
|
||||
if cpu usage > 200% for 20 cycles then alert
|
||||
|
||||
|
@ -11,18 +11,6 @@ in
|
||||
nixpkgs.overlays = [
|
||||
heisenbridge
|
||||
matrix-synapse
|
||||
(_: super: {
|
||||
smug = super.smug.overrideAttrs (_: rec {
|
||||
version = "0.3.3";
|
||||
|
||||
src = super.fetchFromGitHub {
|
||||
owner = "ivaaaan";
|
||||
repo = "smug";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-dQp9Ov8Si9DfziVtX3dXsJg+BNKYOoL9/WwdalQ5TVw=";
|
||||
};
|
||||
});
|
||||
})
|
||||
] ++
|
||||
(if isUnstable
|
||||
then [
|
||||
|
@ -1,7 +1,7 @@
|
||||
let
|
||||
version = "1.119.0";
|
||||
hash = "sha256-+3FrxSfQteIga5uiRNzAlV+xNESB9PUX/UkkL6UMETQ=";
|
||||
sha256 = "sha256-c/19RaBmtfKkFFQyDBwH+yqHp4YNQSqCu23WYbpOc98=";
|
||||
version = "1.115.0";
|
||||
hash = "sha256-R7TAuAdEGvk/cAttxbrOZkZfsfbrsPujt0zVcp3aDZQ=";
|
||||
sha256 = "sha256-h84Hp+vhGfunbD3nRb1EXPnGhnMXncjk3ASKdRr805Y=";
|
||||
matrix-synapse-unwrapped = _: super: {
|
||||
matrix-synapse-unwrapped = super.matrix-synapse-unwrapped.overrideAttrs (_: rec {
|
||||
inherit version;
|
||||
|
@ -3,11 +3,10 @@
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
emacsPkg =
|
||||
if (pkgs.system == "x86_64-linux") then
|
||||
pkgs.emacs-pgtk
|
||||
else
|
||||
pkgs.emacs;
|
||||
emacsPkg = (if (pkgs.system == "x86_64-linux") then
|
||||
pkgs.emacs-pgtk
|
||||
else
|
||||
pkgs.emacs);
|
||||
in
|
||||
emacsWithPackagesFromUsePackage {
|
||||
config = ../configs/emacs.org;
|
||||
|
60
pkgs/gotosocial.nix
Normal file
60
pkgs/gotosocial.nix
Normal file
@ -0,0 +1,60 @@
|
||||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, go
|
||||
, ffmpeg
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
gotosocialVersion = "0.16.0";
|
||||
gtswaHash = "sha256:1gampfm5yrjfx7cxhjj9zpw1qsxlmfsijwy523brp8dgj9vjk539";
|
||||
gtssHash = "sha256-QoG09+jmq5e5vxDVtkhY35098W/9B1HsYTuUnz43LV4=";
|
||||
gotosocialWebAssets = builtins.fetchurl {
|
||||
url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v${gotosocialVersion}/gotosocial_${gotosocialVersion}_web-assets.tar.gz";
|
||||
sha256 = gtswaHash;
|
||||
};
|
||||
in
|
||||
with lib;
|
||||
buildGoModule rec {
|
||||
pname = "gotosocial";
|
||||
version = gotosocialVersion;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "superseriousbusiness";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = gtssHash;
|
||||
};
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-extldflags '-static'"
|
||||
"-X 'main.Commit=${version}'"
|
||||
"-X 'main.Version=${version}'"
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ ffmpeg ];
|
||||
|
||||
proxyVendor = false;
|
||||
vendorHash = null;
|
||||
|
||||
doCheck = false;
|
||||
|
||||
preBuild = ''
|
||||
echo ${go}/bin/go
|
||||
${go}/bin/go version
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/assets
|
||||
tar -C $out/assets/ -zxvf ${gotosocialWebAssets}
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Fast, fun, ActivityPub server, powered by Go.";
|
||||
homepage = "https://github.com/superseriousbusiness/gotosocial";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ qbit ];
|
||||
};
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
{ lib
|
||||
, mkTclDerivation
|
||||
, fetchFromGitHub
|
||||
, bwidget
|
||||
, libnotify
|
||||
, tclcurl
|
||||
, tcltls
|
||||
, tk
|
||||
}:
|
||||
|
||||
mkTclDerivation {
|
||||
|
||||
pname = "irken";
|
||||
version = "2024-11-19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dlowe-net";
|
||||
repo = "irken";
|
||||
rev = "2196a9c0d4549d43972fbc56ef38a06b2b569c4f";
|
||||
hash = "sha256-vK7eoJDMh9D/+BJMyGaDAsQSC8ENgu4D9ZNV5d1zLr0=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
bwidget
|
||||
libnotify
|
||||
tclcurl
|
||||
tcltls
|
||||
tk
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/bin
|
||||
cp irken.tcl $out/bin/irken
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/dlowe-net/irken";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ qbit ];
|
||||
};
|
||||
}
|
@ -33,6 +33,7 @@ stdenv.mkDerivation {
|
||||
|
||||
# See discussion in https://github.com/NixOS/nixpkgs/pull/16966
|
||||
./openssh/dont_create_privsep_path.patch
|
||||
./openssh/fix-164ea4380564a2a83713eacf71908e3946e5e4e4.diff
|
||||
];
|
||||
|
||||
postPatch =
|
||||
|
@ -0,0 +1,12 @@
|
||||
diff --git a/sshd-auth.c b/sshd-auth.c
|
||||
index 53658cf11..b071c59b1 100644
|
||||
--- a/sshd-auth.c
|
||||
+++ b/sshd-auth.c
|
||||
@@ -464,7 +464,6 @@ main(int ac, char **av)
|
||||
__progname = ssh_get_progname(av[0]);
|
||||
|
||||
/* Save argv. Duplicate so setproctitle emulation doesn't clobber it */
|
||||
- saved_argc = ac;
|
||||
saved_argv = xcalloc(ac + 1, sizeof(*saved_argv));
|
||||
for (i = 0; (int)i < ac; i++)
|
||||
saved_argv[i] = xstrdup(av[i]);
|
@ -1,8 +1,8 @@
|
||||
{
|
||||
"owner": "openssh",
|
||||
"repo": "openssh-portable",
|
||||
"rev": "8eabd2ae2ca1d7756417a1ee5b41f09c5d997634",
|
||||
"hash": "sha256-sdGdWulAM9+EIf816DQ0Y7edJDJrH0EHTr87qy7prAI=",
|
||||
"version": "2024-11-27",
|
||||
"comment": "upstream: fix argument of "Compression" directive in ssh -G config"
|
||||
"rev": "98a0883bdef28a06c7e017f27adf21ba57898bf4",
|
||||
"hash": "sha256-JkVvbmLc1Ur9qtixqZD/P+uNNC5O5pg0pnMQaVSOV9Y=",
|
||||
"version": "2024-10-14",
|
||||
"comment": "fix capsicum sandbox"
|
||||
}
|
||||
|
29
pkgs/sliding-sync.nix
Normal file
29
pkgs/sliding-sync.nix
Normal file
@ -0,0 +1,29 @@
|
||||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, ...
|
||||
}:
|
||||
with lib;
|
||||
buildGoModule rec {
|
||||
pname = "sliding-sync";
|
||||
version = "0.99.19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "matrix-org";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-w4VL+MioNeJ/R48Ln9tYaqlfg7NvT3mQs0dWOZTHQK4=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-THjvc0TepIBFOTte7t63Dmadf3HMuZ9m0YzQMI5e5Pw=";
|
||||
|
||||
# Note: tests require a postgres install accessible to the current user
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "An implementation of MSC3575";
|
||||
homepage = "https://github.com/matrix-org/sliding-sync";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ qbit ];
|
||||
};
|
||||
}
|
@ -6,13 +6,13 @@
|
||||
with lib;
|
||||
buildGoModule rec {
|
||||
pname = "yarr";
|
||||
version = "unstable-2024-11-28";
|
||||
version = "2.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nkanaev";
|
||||
repo = pname;
|
||||
rev = "321ad7608fbb3368b6c89b2e9bfa07a4eb3bdc40";
|
||||
sha256 = "sha256-ZX9qs8zAbEiFcq0YVwM3TiUWTcx+N63HV83JI8iGdrA=";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-ZMQ+IX8dZuxyxQhD/eWAe4bGGCVcaCeVgF+Wqs79G+k=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
@ -25,6 +25,12 @@ buildGoModule rec {
|
||||
|
||||
doCheck = false;
|
||||
|
||||
subPackages = [ "./src/main.go" ];
|
||||
|
||||
postInstall = ''
|
||||
mv $out/bin/main $out/bin/yarr
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Yet Another RSS Reader";
|
||||
homepage = "https://github.com/nkanaev/yarr";
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
description = "thing: stuff and things";
|
||||
|
||||
inputs.nixpkgs.url = "nixpkgs/nixos-24.11";
|
||||
inputs.nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||
|
||||
outputs =
|
||||
{ self
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
description = "thing: stuff and things";
|
||||
|
||||
inputs.nixpkgs.url = "nixpkgs/nixos-24.11";
|
||||
inputs.nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||
|
||||
outputs =
|
||||
{ self
|
||||
@ -21,7 +21,7 @@
|
||||
pkgs = nixpkgsFor.${system};
|
||||
in
|
||||
{
|
||||
thing = pkgs.buildGoModule rec {
|
||||
thing = pkgs.buildGoModule {
|
||||
pname = "thing";
|
||||
version = "v0.0.0";
|
||||
src = ./.;
|
||||
@ -31,7 +31,6 @@
|
||||
|
||||
nativeBuildInputs = with pkgs; [ pkg-config ];
|
||||
buildInputs = with pkgs; [
|
||||
fyne
|
||||
git
|
||||
glfw
|
||||
libGL
|
||||
@ -45,17 +44,6 @@
|
||||
xorg.libXxf86vm
|
||||
xorg.xinput
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
${fyne}/bin/fyne package
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
pkg="$PWD/${pname}.tar.xz"
|
||||
cd $out
|
||||
tar --strip-components=1 -xvf $pkg
|
||||
'';
|
||||
};
|
||||
});
|
||||
|
||||
@ -72,7 +60,6 @@
|
||||
echo "Go `${pkgs.go}/bin/go version`"
|
||||
'';
|
||||
buildInputs = with pkgs; [
|
||||
fyne
|
||||
git
|
||||
go_1_20
|
||||
gopls
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
description = "thing: stuff and things";
|
||||
|
||||
inputs.nixpkgs.url = "nixpkgs/nixos-24.11";
|
||||
inputs.nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||
|
||||
outputs =
|
||||
{ self
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
description = "thing: stuff and things";
|
||||
|
||||
inputs.nixpkgs.url = "nixpkgs/nixos-24.11";
|
||||
inputs.nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||
|
||||
outputs =
|
||||
{ self
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
description = "thing: stuff and things";
|
||||
|
||||
inputs.nixpkgs.url = "nixpkgs/nixos-24.11";
|
||||
inputs.nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||
|
||||
outputs =
|
||||
{ self
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
description = "thing: stuff and things";
|
||||
|
||||
inputs.nixpkgs.url = "nixpkgs/nixos-24.11";
|
||||
inputs.nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||
|
||||
outputs =
|
||||
{ self
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
description = "thing: stuff and things";
|
||||
|
||||
inputs.nixpkgs.url = "nixpkgs/nixos-24.11";
|
||||
inputs.nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||
|
||||
outputs =
|
||||
{ self
|
||||
|
@ -1,9 +1,6 @@
|
||||
[formatter.statix]
|
||||
#command = "statix"
|
||||
#options = ["check"]
|
||||
command = "sh"
|
||||
options = ["-euc", "for file in \"$@\"; do statix check \"$file\"; done"]
|
||||
includes = [ "*.nix" ]
|
||||
command = "statix"
|
||||
options = ["check"]
|
||||
priority = 1
|
||||
|
||||
[formatter.deadnix]
|
||||
|
Loading…
Reference in New Issue
Block a user