Compare commits
70 Commits
42cab14829
...
main
Author | SHA1 | Date | |
---|---|---|---|
e28f9d5f2f
|
|||
6381ccf530
|
|||
35e7c0df79
|
|||
047e54ef74
|
|||
6dfad3f7f1
|
|||
74ecc77048
|
|||
5c74dc820b
|
|||
89de487f68
|
|||
07c5526868
|
|||
d3bb262f7a
|
|||
d5560fd847
|
|||
751cb87d8d
|
|||
d2cc6663e7
|
|||
64f21a317b
|
|||
849bd2a5e0
|
|||
79d07a5bfd
|
|||
351272fc5c
|
|||
f68ff8d18c
|
|||
f475b7b4ab
|
|||
e65e523992
|
|||
38cb13a195
|
|||
fa648a174d
|
|||
95235d5ad5
|
|||
4d1b3e9911
|
|||
e1fd8a07bd | |||
8e9ab3aa38 | |||
5da7636a42 | |||
9fd98e97fe | |||
af966ab2f3
|
|||
ff981dc3f4
|
|||
8b2bcf41d4
|
|||
4874017b4f
|
|||
37b631f68b
|
|||
cc362f7b5b
|
|||
933b9bb6d6 | |||
f3bf8d650a | |||
0cdb821d5b | |||
bace54a43d | |||
b260743b9e
|
|||
f51c7e4267
|
|||
2839974006 | |||
fe6d12b060 | |||
f09dfbc108
|
|||
ceeb4980ef | |||
ae43972aa3 | |||
abc634dab8 | |||
67cb031d5e | |||
a321537c40 | |||
66f7a1be30 | |||
71390267eb
|
|||
be91e1e877
|
|||
a6b7791093
|
|||
329e741553
|
|||
5c9cce1e4a
|
|||
59f36caeb1
|
|||
2f90d8e0e8
|
|||
2df3077b80
|
|||
1628be3e62 | |||
92f20c250b
|
|||
8ecf066196
|
|||
b072ac82e1 | |||
a79b1b7281
|
|||
38cb4a54b1
|
|||
ca45586276
|
|||
51f96a1158
|
|||
e384a2bb8b
|
|||
ad155e63ce | |||
87b73dc10e
|
|||
6d3dea12ff
|
|||
5c78d0c1f5
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
result
|
@@ -1,7 +1,7 @@
|
|||||||
keys:
|
keys:
|
||||||
- &v-th-ctr-01 age1cs2p7tgk9356tjmet6526k3ghwq9we82nz6z7qggqns656paku6sx30tkg
|
- &v-th-ctr-01 age1cs2p7tgk9356tjmet6526k3ghwq9we82nz6z7qggqns656paku6sx30tkg
|
||||||
|
- &p-th-rpi-01 age1dd7xpgnak6z6zmwa9889pjd6hmj42zaxq7ea8s47dlk3v6u5f37sldkt97
|
||||||
creation_rules:
|
creation_rules:
|
||||||
- path_regex: secrets/deploy.yaml$
|
- path_regex: secrets/deploy.yaml$
|
||||||
key_groups:
|
age: >-
|
||||||
- age:
|
age1cs2p7tgk9356tjmet6526k3ghwq9we82nz6z7qggqns656paku6sx30tkg,age12gjtehffgmepyga9vaqkurn9fyvte8n7wsklmg866z5usezvuqlsr2m5mp
|
||||||
- *v-th-ctr-01
|
|
||||||
|
72
README.md
72
README.md
@@ -3,6 +3,7 @@
|
|||||||
## New system install guide
|
## New system install guide
|
||||||
|
|
||||||
### 1. Install Nixos with ISO
|
### 1. Install Nixos with ISO
|
||||||
|
|
||||||
[Nixos download](https://nixos.org/download)
|
[Nixos download](https://nixos.org/download)
|
||||||
|
|
||||||
### 2. Copy hardware configuration to hosts directory
|
### 2. Copy hardware configuration to hosts directory
|
||||||
@@ -10,14 +11,85 @@
|
|||||||
### 3. Generate ssh-keys
|
### 3. Generate ssh-keys
|
||||||
|
|
||||||
**Archserver**
|
**Archserver**
|
||||||
|
|
||||||
1. `ssh-keygen -f ~/.ssh/archserver`
|
1. `ssh-keygen -f ~/.ssh/archserver`
|
||||||
2. `ssh-copy-id -i ~/.ssh/archserver 192.168.1.20`
|
2. `ssh-copy-id -i ~/.ssh/archserver 192.168.1.20`
|
||||||
|
|
||||||
**Gitea**
|
**Gitea**
|
||||||
|
|
||||||
1. `ssh-keygen -f ~/.ssh/gitea -t ed25519 -C "me+gitea@xeovalyte.dev"`
|
1. `ssh-keygen -f ~/.ssh/gitea -t ed25519 -C "me+gitea@xeovalyte.dev"`
|
||||||
2. Upload to [Gitea](https://gitea.xeovalyt.dev)
|
2. Upload to [Gitea](https://gitea.xeovalyt.dev)
|
||||||
3. Verify ssh key (follow instructions on Gitea)
|
3. Verify ssh key (follow instructions on Gitea)
|
||||||
|
|
||||||
### 4. Add SSH keys
|
### 4. Add SSH keys
|
||||||
|
|
||||||
1. `ssh-add ~/.ssh/gitea`
|
1. `ssh-add ~/.ssh/gitea`
|
||||||
2. `ssh-add ~/.ssh/archserver`
|
2. `ssh-add ~/.ssh/archserver`
|
||||||
|
|
||||||
|
## Homelab
|
||||||
|
|
||||||
|
List over services
|
||||||
|
|
||||||
|
| Service | Description | Link |
|
||||||
|
| -------------- | ---------------------------------- | ---------------------------------------------------------------------- |
|
||||||
|
| Caddy | Reverse proxy | - |
|
||||||
|
| Kanidm | Openid provider | [auth.tbmrs.nl](https://auth.tbmrs.nl) |
|
||||||
|
| Forgejo | Git provider | [git.tbmrs.nl](https://git.tbmrs.nl) |
|
||||||
|
| Immich | Photo and videos | [photos.tbmrs.nl](https://photos.tbmrs.nl) |
|
||||||
|
| Homepage | Dashboard | [home.tbmrs.nl](https://home.tbmrs.nl) |
|
||||||
|
| Uptime Kuma | Uptime monitor | [uptime.tbmrs.nl](https://uptime.tbmrs.nl) |
|
||||||
|
| Pingvin share | Sharing of files | [share.tbmrs.nl](https://share.tbmrs.nl) |
|
||||||
|
| Vaultwarden | Password manager | [vault.local.tbmrs.nl](https://vault.local.tbmrs.nl) |
|
||||||
|
| Paperless NGX | Documents management | [paperless.local.tbmrs.nl](https://paperless.local.tbmrs.nl) |
|
||||||
|
| Beszel | Resource usage | [monitor.local.tbmrs.nl](https://monitor.local.tbmrs.nl) |
|
||||||
|
| Dufs | File manager | [files.tbmrs.nl](https://files.tbmrs.nl) |
|
||||||
|
| Syncthing | File syncing | [syncthing.local.tbmrs.nl](https://syncthing.local.tbmrs.nl) |
|
||||||
|
| Home Assistant | Home automation | [home-assistant.local.tbmrs.nl](https://home-assistant.local.tbmrs.nl) |
|
||||||
|
| ~~Karakeep~~ | Bookmarking | ~~[karakeep.local.tbmrs.nl](https://karakeep.local.tbmrs.nl)~~ |
|
||||||
|
| Vikunja | Tasks management | [vikunja.local.tbmrs.nl](https://vikunja.local.tbmrs.nl) |
|
||||||
|
| Stalwart | Mailserver | [mail.tbmrs.nl](https://mail.tbmrs.nl) |
|
||||||
|
| Linkding | Bookmark managment | [links.local.tbmrs.nl](https://links.local.tbmrs.nl) |
|
||||||
|
| Jellyfin | Movies, series and music streaming | [stream.local.tbmrs.nl](https://stream.local.tbmrs.nl) |
|
||||||
|
|
||||||
|
### Todo
|
||||||
|
|
||||||
|
- Install koreader selfhosted sync
|
||||||
|
|
||||||
|
### Openid commands
|
||||||
|
|
||||||
|
#### Configure new openid client
|
||||||
|
|
||||||
|
From: [Kanidm Docs](https://kanidm.github.io/kanidm/master/integrations/oauth2/examples.html)
|
||||||
|
|
||||||
|
Replace `<service>` with the name of the service.
|
||||||
|
|
||||||
|
1. Create a new Kanidm group, and add your regular account to it:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ kanidm group create <service>_users
|
||||||
|
$ kanidm group add-members <service>_users your_username
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Create a new OAuth2 application configuration in Kanidm, configure the redirect URL, and scope access to the group:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ kanidm system oauth2 create <service> <servicename> <service_login_url>
|
||||||
|
$ kanidm system oauth2 add-redirect-url <service> <redirect_url>
|
||||||
|
$ kanidm system oauth2 update-scope-map <service> <service>_users email openid profile groups
|
||||||
|
```
|
||||||
|
|
||||||
|
3. (Optional) Disable PKCE
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ kanidm system oauth2 warning-insecure-client-disable-pkce <service>
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Get the OAuth2 client secret from Kanidm
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ kanidm system oauth2 show-basic-secret <service>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Useful links
|
||||||
|
|
||||||
|
Womier keyboard permissions denied or not finding: https://github.com/the-via/releases/issues/257
|
||||||
|
BIN
assets/wallpaper-2-blurred.png
Normal file
BIN
assets/wallpaper-2-blurred.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.0 MiB |
497
flake.lock
generated
497
flake.lock
generated
@@ -5,11 +5,11 @@
|
|||||||
"fromYaml": "fromYaml"
|
"fromYaml": "fromYaml"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732200724,
|
"lastModified": 1746562888,
|
||||||
"narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=",
|
"narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=",
|
||||||
"owner": "SenchoPens",
|
"owner": "SenchoPens",
|
||||||
"repo": "base16.nix",
|
"repo": "base16.nix",
|
||||||
"rev": "153d52373b0fb2d343592871009a286ec8837aec",
|
"rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -37,11 +37,11 @@
|
|||||||
"base16-helix": {
|
"base16-helix": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1736852337,
|
"lastModified": 1748408240,
|
||||||
"narHash": "sha256-esD42YdgLlEh7koBrSqcT7p2fsMctPAcGl/+2sYJa2o=",
|
"narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "base16-helix",
|
"repo": "base16-helix",
|
||||||
"rev": "03860521c40b0b9c04818f2218d9cc9efc21e7a5",
|
"rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -83,72 +83,60 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"firefox-gnome-theme": {
|
"disko": {
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1743774811,
|
|
||||||
"narHash": "sha256-oiHLDHXq7ymsMVYSg92dD1OLnKLQoU/Gf2F1GoONLCE=",
|
|
||||||
"owner": "rafaelmardojai",
|
|
||||||
"repo": "firefox-gnome-theme",
|
|
||||||
"rev": "df53a7a31872faf5ca53dd0730038a62ec63ca9e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "rafaelmardojai",
|
|
||||||
"repo": "firefox-gnome-theme",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-compat": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1717312683,
|
|
||||||
"narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-compat_2": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1733328505,
|
|
||||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": [
|
"nixpkgs": [
|
||||||
"stylix",
|
"nixpkgs"
|
||||||
"systems"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1751854533,
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
"narHash": "sha256-U/OQFplExOR1jazZY4KkaQkJqOl59xlh21HP9mI79Vc=",
|
||||||
"owner": "numtide",
|
"owner": "nix-community",
|
||||||
"repo": "flake-utils",
|
"repo": "disko",
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
"rev": "16b74a1e304197248a1bc663280f2548dbfcae3c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "numtide",
|
"owner": "nix-community",
|
||||||
"repo": "flake-utils",
|
"repo": "disko",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"firefox-gnome-theme": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748383148,
|
||||||
|
"narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=",
|
||||||
|
"owner": "rafaelmardojai",
|
||||||
|
"repo": "firefox-gnome-theme",
|
||||||
|
"rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rafaelmardojai",
|
||||||
|
"repo": "firefox-gnome-theme",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"stylix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1749398372,
|
||||||
|
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -168,67 +156,19 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"git-hooks": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": [
|
|
||||||
"stylix",
|
|
||||||
"flake-compat"
|
|
||||||
],
|
|
||||||
"gitignore": "gitignore",
|
|
||||||
"nixpkgs": [
|
|
||||||
"stylix",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1742649964,
|
|
||||||
"narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gitignore": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"stylix",
|
|
||||||
"git-hooks",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1709087332,
|
|
||||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gnome-shell": {
|
"gnome-shell": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732369855,
|
"lastModified": 1744584021,
|
||||||
"narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=",
|
"narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=",
|
||||||
"owner": "GNOME",
|
"owner": "GNOME",
|
||||||
"repo": "gnome-shell",
|
"repo": "gnome-shell",
|
||||||
"rev": "dadd58f630eeea41d645ee225a63f719390829dc",
|
"rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "GNOME",
|
"owner": "GNOME",
|
||||||
"ref": "47.2",
|
"ref": "48.1",
|
||||||
"repo": "gnome-shell",
|
"repo": "gnome-shell",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -240,39 +180,73 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745557122,
|
"lastModified": 1751810233,
|
||||||
"narHash": "sha256-eqSo9ugzsqhFgaDFYUZj943nurlX4L6f+AW0skJ4W+M=",
|
"narHash": "sha256-kllkNbIqQi3VplgTMeGzuh1t8Gk8TauvkTRt93Km+tQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "dd26f75fb4ec1c731d4b1396eaf4439ce40a91c1",
|
"rev": "9b0873b46c9f9e4b7aa01eb634952c206af53068",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-24.11",
|
"ref": "release-25.05",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager_2": {
|
"niri": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"niri-stable": "niri-stable",
|
||||||
"stylix",
|
"niri-unstable": "niri-unstable",
|
||||||
"nixpkgs"
|
"nixpkgs": "nixpkgs",
|
||||||
]
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
|
"xwayland-satellite-stable": "xwayland-satellite-stable",
|
||||||
|
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743808813,
|
"lastModified": 1752057206,
|
||||||
"narHash": "sha256-2lDQBOmlz9ggPxcS7/GvcVdzXMIiT+PpMao6FbLJSr0=",
|
"narHash": "sha256-f8fNAag3K3WAq+lJr2EEu2f3xVSFLPddLgJKZRzXa3M=",
|
||||||
"owner": "nix-community",
|
"owner": "sodiboo",
|
||||||
"repo": "home-manager",
|
"repo": "niri-flake",
|
||||||
"rev": "a9f8b3db211b4609ddd83683f9db89796c7f6ac6",
|
"rev": "90c2edcf32d0fcb511fee9a0b8c580a18178c109",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "sodiboo",
|
||||||
"ref": "release-24.11",
|
"repo": "niri-flake",
|
||||||
"repo": "home-manager",
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"niri-stable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748151941,
|
||||||
|
"narHash": "sha256-z4viQZLgC2bIJ3VrzQnR+q2F3gAOEQpU1H5xHtX/2fs=",
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"rev": "8ba57fcf25d2fc9565131684a839d58703f1dae7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"ref": "v25.05.1",
|
||||||
|
"repo": "niri",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"niri-unstable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1750791124,
|
||||||
|
"narHash": "sha256-F5iVU/hjoSHSSe0gllxm0PcAaseEtGNanYK5Ha3k2Tg=",
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"rev": "37458d94b288945f6cfbd3c5c233f634d59f246c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -295,34 +269,13 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixos-cosmic": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat",
|
|
||||||
"nixpkgs": "nixpkgs",
|
|
||||||
"nixpkgs-stable": "nixpkgs-stable",
|
|
||||||
"rust-overlay": "rust-overlay"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1745752145,
|
|
||||||
"narHash": "sha256-SRvolJBy9oRUdfik/xtcsguQtcDHrkzq1yf5NbsLBhY=",
|
|
||||||
"owner": "lilyinstarlight",
|
|
||||||
"repo": "nixos-cosmic",
|
|
||||||
"rev": "0ba6c63681ae317d122a5e76bc2bf556737a53d0",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "lilyinstarlight",
|
|
||||||
"repo": "nixos-cosmic",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745503349,
|
"lastModified": 1752048960,
|
||||||
"narHash": "sha256-bUGjvaPVsOfQeTz9/rLTNLDyqbzhl0CQtJJlhFPhIYw=",
|
"narHash": "sha256-gATnkOe37eeVwKKYCsL+OnS2gU4MmLuZFzzWCtaKLI8=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "f7bee55a5e551bd8e7b5b82c9bc559bc50d868d1",
|
"rev": "7ced9122cff2163c6a0212b8d1ec8c33a1660806",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -334,11 +287,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745526057,
|
"lastModified": 1751792365,
|
||||||
"narHash": "sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA=",
|
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "f771eb401a46846c1aebd20552521b233dd7e18b",
|
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -365,27 +318,27 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745487689,
|
"lastModified": 1751943650,
|
||||||
"narHash": "sha256-FQoi3R0NjQeBAsEOo49b5tbDPcJSMWc3QhhaIi9eddw=",
|
"narHash": "sha256-7orTnNqkGGru8Je6Un6mq1T8YVVU/O5kyW4+f9C1mZQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5630cf13cceac06cefe9fc607e8dfa8fb342dde3",
|
"rev": "88983d4b665fb491861005137ce2b11a9f89f203",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-24.11",
|
"ref": "nixos-25.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745526057,
|
"lastModified": 1751792365,
|
||||||
"narHash": "sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA=",
|
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "f771eb401a46846c1aebd20552521b233dd7e18b",
|
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -395,6 +348,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751943650,
|
||||||
|
"narHash": "sha256-7orTnNqkGGru8Je6Un6mq1T8YVVU/O5kyW4+f9C1mZQ=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "88983d4b665fb491861005137ce2b11a9f89f203",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"ref": "nixos-25.05",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744868846,
|
"lastModified": 1744868846,
|
||||||
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
|
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
|
||||||
@@ -410,68 +378,71 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743703532,
|
"lastModified": 1751211869,
|
||||||
"narHash": "sha256-s1KLDALEeqy+ttrvqV3jx9mBZEvmthQErTVOAzbjHZs=",
|
"narHash": "sha256-1Cu92i1KSPbhPCKxoiVG5qnoRiKTgR5CcGSRyLpOd7Y=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "bdb91860de2f719b57eef819b5617762f7120c70",
|
"rev": "b43c397f6c213918d6cfe6e3550abfe79b5d1c51",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-24.11",
|
"ref": "nixos-25.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nur": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": [
|
||||||
|
"stylix",
|
||||||
|
"flake-parts"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"stylix",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751320053,
|
||||||
|
"narHash": "sha256-3m6RMw0FbbaUUa01PNaMLoO7D99aBClmY5ed9V3vz+0=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NUR",
|
||||||
|
"rev": "cbde1735782f9c2bb2c63d5e05fba171a14a4670",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NUR",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"disko": "disko",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
|
"niri": "niri",
|
||||||
"nix-colors": "nix-colors",
|
"nix-colors": "nix-colors",
|
||||||
"nixos-cosmic": "nixos-cosmic",
|
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": [
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nixos-cosmic",
|
|
||||||
"nixpkgs-stable"
|
|
||||||
],
|
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"stylix": "stylix"
|
"stylix": "stylix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-overlay": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixos-cosmic",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1745721366,
|
|
||||||
"narHash": "sha256-dm93104HXjKWzkrr7yAPtxpbllOSzrwFFruc+rKQHSg=",
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"rev": "621131c9e281d1047bf8937547ed77e97c464aba",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"sops-nix": {
|
"sops-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745310711,
|
"lastModified": 1751606940,
|
||||||
"narHash": "sha256-ePyTpKEJTgX0gvgNQWd7tQYQ3glIkbqcW778RpHlqgA=",
|
"narHash": "sha256-KrDPXobG7DFKTOteqdSVeL1bMVitDcy7otpVZWDE6MA=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "5e3e92b16d6fdf9923425a8d4df7496b2434f39c",
|
"rev": "3633fc4acf03f43b260244d94c71e9e14a2f6e0d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -487,28 +458,28 @@
|
|||||||
"base16-helix": "base16-helix",
|
"base16-helix": "base16-helix",
|
||||||
"base16-vim": "base16-vim",
|
"base16-vim": "base16-vim",
|
||||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-parts": "flake-parts",
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"git-hooks": "git-hooks",
|
|
||||||
"gnome-shell": "gnome-shell",
|
"gnome-shell": "gnome-shell",
|
||||||
"home-manager": "home-manager_2",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nur": "nur",
|
||||||
"systems": "systems",
|
"systems": "systems",
|
||||||
"tinted-foot": "tinted-foot",
|
"tinted-foot": "tinted-foot",
|
||||||
"tinted-kitty": "tinted-kitty",
|
"tinted-kitty": "tinted-kitty",
|
||||||
"tinted-tmux": "tinted-tmux"
|
"tinted-schemes": "tinted-schemes",
|
||||||
|
"tinted-tmux": "tinted-tmux",
|
||||||
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745750068,
|
"lastModified": 1752014016,
|
||||||
"narHash": "sha256-LbbioU14KbJpXE0DKcPJaW6W2lB8ayHE4YddupfvU+c=",
|
"narHash": "sha256-Gn6cnUPchPenxUFDt+dh7836CNu3GM13aghTabfZUrU=",
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "ed3f7d9ecbf2c95cc4fe633f648cb776385efd86",
|
"rev": "26042c1f59ae868193fa4378f85e4f6240f25ff8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
"ref": "release-24.11",
|
"ref": "release-25.05",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -548,28 +519,43 @@
|
|||||||
"tinted-kitty": {
|
"tinted-kitty": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1716423189,
|
"lastModified": 1735730497,
|
||||||
"narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=",
|
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "tinted-kitty",
|
"repo": "tinted-kitty",
|
||||||
"rev": "eb39e141db14baef052893285df9f266df041ff8",
|
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "tinted-kitty",
|
"repo": "tinted-kitty",
|
||||||
"rev": "eb39e141db14baef052893285df9f266df041ff8",
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-schemes": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1750770351,
|
||||||
|
"narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "schemes",
|
||||||
|
"rev": "5a775c6ffd6e6125947b393872cde95867d85a2a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "schemes",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tinted-tmux": {
|
"tinted-tmux": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743296873,
|
"lastModified": 1751159871,
|
||||||
"narHash": "sha256-8IQulrb1OBSxMwdKijO9fB70ON//V32dpK9Uioy7FzY=",
|
"narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "tinted-tmux",
|
"repo": "tinted-tmux",
|
||||||
"rev": "af5152c8d7546dfb4ff6df94080bf5ff54f64e3a",
|
"rev": "bded5e24407cec9d01bd47a317d15b9223a1546c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -577,6 +563,77 @@
|
|||||||
"repo": "tinted-tmux",
|
"repo": "tinted-tmux",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"tinted-zed": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751158968,
|
||||||
|
"narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-zed",
|
||||||
|
"rev": "86a470d94204f7652b906ab0d378e4231a5b3384",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-zed",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"stylix",
|
||||||
|
"nur",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733222881,
|
||||||
|
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xwayland-satellite-stable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748488455,
|
||||||
|
"narHash": "sha256-IiLr1alzKFIy5tGGpDlabQbe6LV1c9ABvkH6T5WmyRI=",
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"rev": "3ba30b149f9eb2bbf42cf4758d2158ca8cceef73",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"ref": "v0.6",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xwayland-satellite-unstable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751228685,
|
||||||
|
"narHash": "sha256-MENtauGBhJ+kDeFaawvWGXaFG3Il6qQzjaP0RmtfM0k=",
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"rev": "557ebeb616e03d5e4a8049862bbbd1f02c6f020b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
136
flake.nix
136
flake.nix
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
description = "Nixos configuration for Xeovalyte";
|
description = "Nixos configuration for Timo";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "nixpkgs/nixos-24.11";
|
nixpkgs.url = "nixpkgs/nixos-25.05";
|
||||||
|
|
||||||
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/release-24.11";
|
url = "github:nix-community/home-manager/release-25.05";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -15,133 +15,139 @@
|
|||||||
|
|
||||||
nix-colors.url = "github:misterio77/nix-colors";
|
nix-colors.url = "github:misterio77/nix-colors";
|
||||||
|
|
||||||
stylix.url = "github:danth/stylix/release-24.11";
|
stylix.url = "github:danth/stylix/release-25.05";
|
||||||
|
|
||||||
nixpkgs.follows = "nixos-cosmic/nixpkgs-stable";
|
|
||||||
|
|
||||||
nixos-cosmic = {
|
|
||||||
url = "github:lilyinstarlight/nixos-cosmic";
|
|
||||||
};
|
|
||||||
|
|
||||||
sops-nix.url = "github:Mic92/sops-nix";
|
sops-nix.url = "github:Mic92/sops-nix";
|
||||||
|
niri.url = "github:sodiboo/niri-flake";
|
||||||
|
|
||||||
|
disko.url = "github:nix-community/disko";
|
||||||
|
disko.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, home-manager, nix-colors, stylix, nixos-cosmic, sops-nix, ... }:
|
outputs = {
|
||||||
let
|
self,
|
||||||
system = "x86_64-linux";
|
nixpkgs,
|
||||||
overlay-unstable = final: prev: {
|
home-manager,
|
||||||
unstable = import nixpkgs-unstable {
|
nix-colors,
|
||||||
config.allowUnfree = true;
|
stylix,
|
||||||
localSystem = { inherit system; };
|
sops-nix,
|
||||||
};
|
niri,
|
||||||
};
|
disko,
|
||||||
|
...
|
||||||
|
} @ inputs: let
|
||||||
|
inherit (self) outputs;
|
||||||
|
systems = [
|
||||||
|
"x86_64-linux"
|
||||||
|
"aarch64-linux"
|
||||||
|
];
|
||||||
|
forAllSystems = nixpkgs.lib.genAttrs systems;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system} );
|
||||||
|
overlays = import ./overlays { inherit inputs; };
|
||||||
|
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
ti-clt-lpt01 = nixpkgs.lib.nixosSystem {
|
ti-clt-lpt01 = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
specialArgs = { inherit inputs outputs; };
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
modules = [
|
||||||
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
|
|
||||||
|
|
||||||
inputs.nixos-hardware.nixosModules.framework-13-7040-amd
|
inputs.nixos-hardware.nixosModules.framework-13-7040-amd
|
||||||
|
|
||||||
./hosts/ti-clt-lpt01
|
./hosts/ti-clt-lpt01/configuration.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
ch-clt-dsk01 = nixpkgs.lib.nixosSystem {
|
ch-clt-dsk01 = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
specialArgs = { inherit inputs outputs; };
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
modules = [
|
||||||
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
|
./hosts/ch-clt-dsk01/configuration.nix
|
||||||
|
|
||||||
./hosts/ch-clt-dsk01
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
ti-clt-tbl01 = nixpkgs.lib.nixosSystem {
|
ti-clt-tbl01 = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
specialArgs = { inherit inputs outputs; };
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
modules = [
|
||||||
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
|
|
||||||
|
|
||||||
inputs.nixos-hardware.nixosModules.microsoft-surface-go
|
inputs.nixos-hardware.nixosModules.microsoft-surface-go
|
||||||
|
|
||||||
./hosts/ti-clt-tbl01
|
./hosts/ti-clt-tbl01/configuration.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Timo's desktop
|
||||||
ti-clt-dsk01 = nixpkgs.lib.nixosSystem {
|
ti-clt-dsk01 = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
specialArgs = { inherit inputs outputs; };
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
modules = [
|
||||||
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
|
./hosts/ti-clt-dsk01/configuration.nix
|
||||||
|
|
||||||
./hosts/ti-clt-dsk01
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
v-th-ctr-01 = nixpkgs.lib.nixosSystem {
|
v-th-ctr-01 = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
specialArgs = { inherit inputs outputs; };
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
modules = [
|
||||||
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
|
./hosts/v-th-ctr-01/configuration.nix
|
||||||
./hosts/v-th-ctr-01
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Raspberry pi
|
||||||
|
p-th-rpi-01 = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs outputs; };
|
||||||
|
modules = [
|
||||||
|
./hosts/p-th-rpi-01/configuration.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
homeConfigurations = {
|
homeConfigurations = {
|
||||||
|
# Timo
|
||||||
"xeovalyte@ti-clt-lpt01" = home-manager.lib.homeManagerConfiguration {
|
"xeovalyte@ti-clt-lpt01" = home-manager.lib.homeManagerConfiguration {
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
extraSpecialArgs = { inherit inputs nix-colors; };
|
extraSpecialArgs = { inherit inputs outputs; };
|
||||||
modules = [
|
modules = [
|
||||||
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
|
|
||||||
|
|
||||||
./hosts/ti-clt-lpt01/home.nix
|
./hosts/ti-clt-lpt01/home.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
"kiiwy@ch-clt-dsk01" = home-manager.lib.homeManagerConfiguration {
|
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
|
||||||
extraSpecialArgs = { inherit inputs nix-colors; };
|
|
||||||
modules = [
|
|
||||||
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
|
|
||||||
|
|
||||||
./hosts/ch-clt-dsk01/home.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
"xeovalyte@ti-clt-tbl01" = home-manager.lib.homeManagerConfiguration {
|
"xeovalyte@ti-clt-tbl01" = home-manager.lib.homeManagerConfiguration {
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
extraSpecialArgs = { inherit inputs nix-colors; };
|
extraSpecialArgs = { inherit inputs outputs; };
|
||||||
modules = [
|
modules = [
|
||||||
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
|
|
||||||
|
|
||||||
./hosts/ti-clt-tbl01/home.nix
|
./hosts/ti-clt-tbl01/home.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
"xeovalyte@ti-clt-dsk01" = home-manager.lib.homeManagerConfiguration {
|
"xeovalyte@ti-clt-dsk01" = home-manager.lib.homeManagerConfiguration {
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
extraSpecialArgs = { inherit inputs nix-colors; };
|
extraSpecialArgs = { inherit inputs outputs; };
|
||||||
modules = [
|
modules = [
|
||||||
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
|
|
||||||
|
|
||||||
./hosts/ti-clt-dsk01/home.nix
|
./hosts/ti-clt-dsk01/home.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Christa
|
||||||
|
"kiiwy@ch-clt-dsk01" = home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
extraSpecialArgs = { inherit inputs outputs; };
|
||||||
|
modules = [
|
||||||
|
./hosts/ch-clt-dsk01/home.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Deploy
|
||||||
"deploy@v-th-ctr-01" = home-manager.lib.homeManagerConfiguration {
|
"deploy@v-th-ctr-01" = home-manager.lib.homeManagerConfiguration {
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
extraSpecialArgs = { inherit inputs nix-colors; };
|
extraSpecialArgs = { inherit inputs outputs; };
|
||||||
modules = [
|
modules = [
|
||||||
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
|
|
||||||
|
|
||||||
./hosts/v-th-ctr-01/home.nix
|
./hosts/v-th-ctr-01/home.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Deploy
|
||||||
|
"deploy@p-th-rpi-01" = home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = nixpkgs.legacyPackages.aarch64-linux;
|
||||||
|
extraSpecialArgs = { inherit inputs outputs; };
|
||||||
|
modules = [
|
||||||
|
./hosts/p-th-rpi-01/home.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -6,10 +6,11 @@
|
|||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
# Import modules
|
# Import modules
|
||||||
../../modules/system/default.nix
|
../../modules/system
|
||||||
];
|
];
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
hostname = "ch-clt-dsk01";
|
||||||
display-manager = "gdm";
|
display-manager = "gdm";
|
||||||
desktop-environments = {
|
desktop-environments = {
|
||||||
cosmic.enable = false;
|
cosmic.enable = false;
|
||||||
@@ -37,20 +38,14 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nix.settings = {
|
# Users
|
||||||
experimental-features = [ "nix-command" "flakes" ];
|
users.users.kiiwy = {
|
||||||
|
isNormalUser = true;
|
||||||
substituters = [
|
description = "Christa Boomers";
|
||||||
"https://nix-community.cachix.org"
|
extraGroups = [ "networkmanager" "wheel" "dialout" ];
|
||||||
"https://cosmic.cachix.org/"
|
|
||||||
];
|
|
||||||
|
|
||||||
trusted-public-keys = [
|
|
||||||
"cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Bootloader.
|
# Bootloader
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
boot.loader.grub = {
|
boot.loader.grub = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -59,28 +54,5 @@
|
|||||||
configurationLimit = 32;
|
configurationLimit = 32;
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.hostName = "ch-clt-dsk01"; # Define your hostname.
|
system.stateVersion = "24.11";
|
||||||
|
|
||||||
networking.firewall = {
|
|
||||||
enable = true;
|
|
||||||
allowedTCPPorts = [ 80 443 53 ];
|
|
||||||
allowedUDPPorts = [ 80 443 53 ];
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users.kiiwy = {
|
|
||||||
isNormalUser = true;
|
|
||||||
description = "Christa Boomers";
|
|
||||||
extraGroups = [ "networkmanager" "wheel" "dialout" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
nix.settings.trusted-users = [ "root" "kiiwy" ];
|
|
||||||
|
|
||||||
# Prevent system freeze on high load
|
|
||||||
services.earlyoom = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# boot.kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
|
||||||
}
|
}
|
@@ -13,8 +13,10 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
host = "c-clt-dsk01";
|
||||||
|
|
||||||
applications.common.enable = true;
|
applications.common.enable = true;
|
||||||
applications.alacritty.enable = false;
|
applications.alacritty.enable = true;
|
||||||
applications.devenv.enable = false;
|
applications.devenv.enable = false;
|
||||||
applications.firefox.enable = true;
|
applications.firefox.enable = true;
|
||||||
applications.git.enable = true;
|
applications.git.enable = true;
|
||||||
@@ -41,6 +43,7 @@
|
|||||||
prismlauncher
|
prismlauncher
|
||||||
unstable.signal-desktop
|
unstable.signal-desktop
|
||||||
unstable.vesktop
|
unstable.vesktop
|
||||||
|
unstable.webcord
|
||||||
unstable.prusa-slicer
|
unstable.prusa-slicer
|
||||||
blender
|
blender
|
||||||
|
|
||||||
|
@@ -1,14 +1,18 @@
|
|||||||
{ ... }:
|
# Edit this configuration file to define what should be installed on
|
||||||
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
|
|
||||||
|
{ modulesPath, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./configuration.nix
|
./hardware-configuration.nix
|
||||||
|
# Include the container-specific autogenerated configuration.
|
||||||
# Import modules
|
|
||||||
../../modules/system/default.nix
|
../../modules/system/default.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
hostname = "p-th-rpi-01";
|
||||||
display-manager = "none";
|
display-manager = "none";
|
||||||
desktop-environments = {
|
desktop-environments = {
|
||||||
cosmic.enable = false;
|
cosmic.enable = false;
|
||||||
@@ -39,31 +43,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nix.settings = {
|
|
||||||
experimental-features = [ "nix-command" "flakes" ];
|
|
||||||
|
|
||||||
substituters = [
|
|
||||||
"https://nix-community.cachix.org"
|
|
||||||
"https://cosmic.cachix.org/"
|
|
||||||
];
|
|
||||||
|
|
||||||
trusted-public-keys = [
|
|
||||||
"cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.hostName = "v-th-ctr-01"; # Define your hostname.
|
|
||||||
|
|
||||||
networking.firewall = {
|
|
||||||
enable = true;
|
|
||||||
allowedTCPPorts = [ 1080 1443 1053 ];
|
|
||||||
allowedUDPPorts = [ 1080 1443 1053 ];
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.hosts = {
|
|
||||||
"127.0.0.1" = [ "tbmrs.nl" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users.deploy = {
|
users.users.deploy = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "Deploy";
|
description = "Deploy";
|
||||||
@@ -71,7 +50,20 @@
|
|||||||
linger = true;
|
linger = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
nix.settings.trusted-users = [ "root" "deploy" ];
|
# networking
|
||||||
|
networking = {
|
||||||
|
dhcpcd.enable = false;
|
||||||
|
useDHCP = false;
|
||||||
|
useHostResolvConf = false;
|
||||||
|
};
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
networking.hosts = {
|
||||||
|
"127.0.0.1" = [ "tbmrs.nl" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall = {
|
||||||
|
enable = true;
|
||||||
|
allowedTCPPorts = [ 1080 1443 1053 ];
|
||||||
|
allowedUDPPorts = [ 1080 1443 1053 ];
|
||||||
|
};
|
||||||
}
|
}
|
76
hosts/p-th-rpi-01/home.nix
Normal file
76
hosts/p-th-rpi-01/home.nix
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
# Modules
|
||||||
|
../../modules/home/default.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
config = {
|
||||||
|
home = {
|
||||||
|
username = "deploy";
|
||||||
|
homeDirectory = "/home/deploy";
|
||||||
|
};
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
host = "p-th-rpi-01";
|
||||||
|
|
||||||
|
applications.common.enable = false;
|
||||||
|
applications.alacritty.enable = false;
|
||||||
|
applications.devenv.enable = false;
|
||||||
|
applications.firefox.enable = false;
|
||||||
|
applications.git.enable = false;
|
||||||
|
applications.helix.enable = true;
|
||||||
|
applications.zsh.enable = true;
|
||||||
|
applications.ssh.enable = true;
|
||||||
|
applications.thunderbird.enable = false;
|
||||||
|
applications.yazi.enable = true;
|
||||||
|
applications.zellij.enable = true;
|
||||||
|
applications.wezterm.enable = false;
|
||||||
|
|
||||||
|
services.nextcloud-sync.enable = false;
|
||||||
|
services.podman.enable = true;
|
||||||
|
services.sops.enable = true;
|
||||||
|
|
||||||
|
theming.fonts.enable = false;
|
||||||
|
theming.stylix.enable = false;
|
||||||
|
theming.stylix.wallpaper = "wallpaper-2.png";
|
||||||
|
theming.stylix.theme = "da-one-ocean";
|
||||||
|
|
||||||
|
desktop-environments.hyprland.enable = false;
|
||||||
|
|
||||||
|
containers = {
|
||||||
|
network.enable = true;
|
||||||
|
|
||||||
|
nginx.enable = false;
|
||||||
|
caddy.enable = true;
|
||||||
|
kanidm.enable = false;
|
||||||
|
forgejo.enable = false;
|
||||||
|
immich.enable = false;
|
||||||
|
homepage.enable = false;
|
||||||
|
uptime-kuma.enable = false;
|
||||||
|
pingvin-share.enable = false;
|
||||||
|
vaultwarden.enable = false;
|
||||||
|
paperless-ngx.enable = false;
|
||||||
|
beszel.enable = false;
|
||||||
|
storage.enable = false;
|
||||||
|
homeassistant.enable = false;
|
||||||
|
karakeep.enable = false;
|
||||||
|
vikunja.enable = false;
|
||||||
|
stalwart.enable = false;
|
||||||
|
linkding.enable = false;
|
||||||
|
static.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
unstable.helix
|
||||||
|
lazygit
|
||||||
|
];
|
||||||
|
|
||||||
|
# Enable home-manager
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
home.stateVersion = "24.05";
|
||||||
|
};
|
||||||
|
}
|
97
hosts/ti-clt-dsk01/configuration.nix
Normal file
97
hosts/ti-clt-dsk01/configuration.nix
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
{ inputs, outputs, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./hardware-configuration.nix
|
||||||
|
|
||||||
|
../../modules/system
|
||||||
|
];
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
hostname = "ti-clt-dsk01";
|
||||||
|
display-manager = "greetd";
|
||||||
|
desktop-environments = {
|
||||||
|
cosmic.enable = false;
|
||||||
|
hyprland.enable = false;
|
||||||
|
gnome.enable = false;
|
||||||
|
niri.enable = true;
|
||||||
|
};
|
||||||
|
applications = {
|
||||||
|
common.enable = true;
|
||||||
|
steam.enable = true;
|
||||||
|
thunar.enable = false;
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
docker.enable = true;
|
||||||
|
quickemu.enable = false;
|
||||||
|
sunshine.enable = true;
|
||||||
|
garbage-collection.enable = true;
|
||||||
|
ssh.enable = true;
|
||||||
|
};
|
||||||
|
hardware = {
|
||||||
|
fprint.enable = false;
|
||||||
|
printing.enable = true;
|
||||||
|
bluetooth.enable = true;
|
||||||
|
firewall.enable = true;
|
||||||
|
locale.enable = true;
|
||||||
|
nvidia.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Users
|
||||||
|
users.users.xeovalyte = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "Timo Boomers";
|
||||||
|
extraGroups = [ "wheel" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Boot
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
boot.loader.grub = {
|
||||||
|
enable = true;
|
||||||
|
efiSupport = true;
|
||||||
|
device = "nodev";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Networking
|
||||||
|
networking.interfaces.enp7s0.wakeOnLan.enable = true;
|
||||||
|
networking.hosts = {
|
||||||
|
"192.168.100.118" = [
|
||||||
|
"tbmrs.nl"
|
||||||
|
"auth.tbmrs.nl"
|
||||||
|
"git.tbmrs.nl"
|
||||||
|
"photos.tbmrs.nl"
|
||||||
|
"home.tbmrs.nl"
|
||||||
|
"uptime.tbmrs.nl"
|
||||||
|
"share.tbmrs.nl"
|
||||||
|
"files.tbmrs.nl"
|
||||||
|
"mail.tbmrs.nl"
|
||||||
|
"vault.local.tbmrs.nl"
|
||||||
|
"paperless.local.tbmrs.nl"
|
||||||
|
"monitor.local.tbmrs.nl"
|
||||||
|
"syncthing.local.tbmrs.nl"
|
||||||
|
"home-assistant.local.tbmrs.nl"
|
||||||
|
"tasks.local.tbmrs.nl"
|
||||||
|
"links.local.tbmrs.nl"
|
||||||
|
"stream.local.tbmrs.nl"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Temp keyboard override
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
via
|
||||||
|
vial
|
||||||
|
];
|
||||||
|
services.udev.packages = with pkgs; [
|
||||||
|
via
|
||||||
|
vial
|
||||||
|
];
|
||||||
|
|
||||||
|
# manual udev override
|
||||||
|
# services.udev.extraRules = ''
|
||||||
|
# KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{serial}=="*vial:f64c2b3c*", ATTRS{idVendor}=="320f", ATTRS{idProduct}=="5055", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
|
||||||
|
# '';
|
||||||
|
|
||||||
|
# state version
|
||||||
|
system.stateVersion = "24.11";
|
||||||
|
}
|
@@ -1,103 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# Include the results of the hardware scan.
|
|
||||||
./hardware-configuration.nix
|
|
||||||
|
|
||||||
# Import modules
|
|
||||||
../../modules/system/default.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
display-manager = "cosmic-greeter";
|
|
||||||
desktop-environments = {
|
|
||||||
cosmic.enable = true;
|
|
||||||
hyprland.enable = false;
|
|
||||||
gnome.enable = false;
|
|
||||||
};
|
|
||||||
applications = {
|
|
||||||
common.enable = true;
|
|
||||||
steam.enable = true;
|
|
||||||
thunar.enable = false;
|
|
||||||
};
|
|
||||||
services = {
|
|
||||||
docker.enable = true;
|
|
||||||
quickemu.enable = false;
|
|
||||||
sunshine.enable = true;
|
|
||||||
garbage-collection.enable = true;
|
|
||||||
};
|
|
||||||
hardware = {
|
|
||||||
fprint.enable = false;
|
|
||||||
printing.enable = true;
|
|
||||||
bluetooth.enable = false;
|
|
||||||
firewall.enable = true;
|
|
||||||
locale.enable = true;
|
|
||||||
nvidia.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.firewall = {
|
|
||||||
allowedTCPPorts = [ 3000 ];
|
|
||||||
allowedUDPPorts = [ 3000 ];
|
|
||||||
};
|
|
||||||
|
|
||||||
nix.settings = {
|
|
||||||
experimental-features = [ "nix-command" "flakes" ];
|
|
||||||
|
|
||||||
substituters = [
|
|
||||||
"https://nix-community.cachix.org"
|
|
||||||
"https://cosmic.cachix.org/"
|
|
||||||
];
|
|
||||||
|
|
||||||
trusted-public-keys = [
|
|
||||||
"cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="
|
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Bootloader.
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
boot.loader.grub = {
|
|
||||||
enable = true;
|
|
||||||
efiSupport = true;
|
|
||||||
device = "nodev";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Networking configuration
|
|
||||||
networking.hostName = "ti-clt-dsk01"; # Define your hostname.
|
|
||||||
networking.interfaces.enp7s0.wakeOnLan.enable = true;
|
|
||||||
|
|
||||||
users.users.xeovalyte = {
|
|
||||||
isNormalUser = true;
|
|
||||||
description = "Timo Boomers";
|
|
||||||
extraGroups = [ "networkmanager" "wheel" "dialout" "fuse" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
nix.settings.trusted-users = [ "root" "xeovalyte" ];
|
|
||||||
|
|
||||||
networking.hosts = {
|
|
||||||
"192.168.100.118" = [
|
|
||||||
"tbmrs.nl"
|
|
||||||
"auth.tbmrs.nl"
|
|
||||||
"git.tbmrs.nl"
|
|
||||||
"photos.tbmrs.nl"
|
|
||||||
"home.tbmrs.nl"
|
|
||||||
"uptime.tbmrs.nl"
|
|
||||||
"share.tbmrs.nl"
|
|
||||||
"vault.local.tbmrs.nl"
|
|
||||||
"paperless.local.tbmrs.nl"
|
|
||||||
"monitor.local.tbmrs.nl"
|
|
||||||
"files.tbmrs.nl"
|
|
||||||
"syncthing.local.tbmrs.nl"
|
|
||||||
"home-assistant.local.tbmrs.nl"
|
|
||||||
"karakeep.local.tbmrs.nl"
|
|
||||||
"vikunja.local.tbmrs.nl"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.openssh.enable = true;
|
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
|
||||||
|
|
||||||
}
|
|
@@ -13,18 +13,30 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
host = "ti-clt-dsk01";
|
||||||
|
|
||||||
applications.common.enable = true;
|
applications.common.enable = true;
|
||||||
applications.alacritty.enable = false;
|
applications.alacritty.enable = false;
|
||||||
applications.devenv.enable = true;
|
applications.devenv.enable = true;
|
||||||
applications.firefox.enable = true;
|
applications.firefox.enable = true;
|
||||||
applications.git.enable = true;
|
applications.git.enable = true;
|
||||||
applications.helix.enable = true;
|
applications.helix = {
|
||||||
|
enable = true;
|
||||||
|
markdown = true;
|
||||||
|
rust = true;
|
||||||
|
systemverilog = true;
|
||||||
|
nix = true;
|
||||||
|
latex = true;
|
||||||
|
vue = true;
|
||||||
|
};
|
||||||
applications.zsh.enable = true;
|
applications.zsh.enable = true;
|
||||||
applications.ssh.enable = true;
|
applications.ssh.enable = true;
|
||||||
applications.thunderbird.enable = true;
|
applications.thunderbird.enable = true;
|
||||||
applications.yazi.enable = true;
|
applications.yazi.enable = true;
|
||||||
applications.zellij.enable = true;
|
applications.zellij.enable = true;
|
||||||
applications.wezterm.enable = true;
|
applications.wezterm.enable = true;
|
||||||
|
applications.typst.enable = true;
|
||||||
|
applications.obs-studio.enable = true;
|
||||||
|
|
||||||
services.nextcloud-sync.enable = true;
|
services.nextcloud-sync.enable = true;
|
||||||
|
|
||||||
@@ -34,29 +46,30 @@
|
|||||||
theming.stylix.theme = "da-one-ocean";
|
theming.stylix.theme = "da-one-ocean";
|
||||||
|
|
||||||
desktop-environments.hyprland.enable = false;
|
desktop-environments.hyprland.enable = false;
|
||||||
|
desktop-environments.niri.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
unstable.prismlauncher
|
unstable.prismlauncher
|
||||||
unstable.vesktop
|
vesktop
|
||||||
unstable.rnote
|
unstable.rnote
|
||||||
unstable.inkscape
|
unstable.inkscape
|
||||||
unstable.gimp
|
unstable.gimp
|
||||||
unstable.openscad-unstable
|
|
||||||
unstable.brave
|
unstable.brave
|
||||||
unstable.freecad
|
unstable.freecad
|
||||||
unstable.hoppscotch
|
hoppscotch
|
||||||
|
unstable.blender
|
||||||
unstable.signal-desktop
|
unstable.signal-desktop
|
||||||
unstable.ladybird
|
unstable.ladybird
|
||||||
unstable.prusa-slicer
|
unstable.prusa-slicer
|
||||||
|
|
||||||
unstable.surfer # waveform viewer
|
unstable.surfer # waveform viewer
|
||||||
|
pomodoro-gtk
|
||||||
|
|
||||||
# Office
|
# Office
|
||||||
libreoffice
|
libreoffice
|
||||||
|
|
||||||
# Scripts
|
# Scripts
|
||||||
wl-clipboard-rs
|
|
||||||
(import ../../modules/scripts/save_image.nix { inherit pkgs; })
|
(import ../../modules/scripts/save_image.nix { inherit pkgs; })
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@@ -6,15 +6,17 @@
|
|||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
# Import modules
|
# Import modules
|
||||||
../../modules/system/default.nix
|
../../modules/system
|
||||||
];
|
];
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
display-manager = "cosmic-greeter";
|
hostname = "ti-clt-lpt01";
|
||||||
|
display-manager = "greetd";
|
||||||
desktop-environments = {
|
desktop-environments = {
|
||||||
cosmic.enable = true;
|
cosmic.enable = false;
|
||||||
hyprland.enable = true;
|
hyprland.enable = false;
|
||||||
gnome.enable = false;
|
gnome.enable = false;
|
||||||
|
niri.enable = true;
|
||||||
};
|
};
|
||||||
applications = {
|
applications = {
|
||||||
common.enable = true;
|
common.enable = true;
|
||||||
@@ -38,30 +40,20 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nix.settings = {
|
# Users
|
||||||
experimental-features = [ "nix-command" "flakes" ];
|
users.users.xeovalyte = {
|
||||||
|
isNormalUser = true;
|
||||||
substituters = [
|
description = "Timo Boomers";
|
||||||
"https://nix-community.cachix.org"
|
extraGroups = [ "networkmanager" "wheel" "dialout" "adbusers" ];
|
||||||
"https://cosmic.cachix.org/"
|
|
||||||
];
|
|
||||||
|
|
||||||
trusted-public-keys = [
|
|
||||||
"cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable host
|
networking.networkmanager.enable = true;
|
||||||
networking.hosts = {
|
|
||||||
"127.0.0.1" = [
|
|
||||||
"tbmrs.nl"
|
|
||||||
"auth.tbmrs.nl"
|
|
||||||
"forgejo.tbmrs.nl"
|
|
||||||
"immich.tbmrs.nl"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Bootloader.
|
programs.nix-ld.enable = true;
|
||||||
|
programs.adb.enable = true;
|
||||||
|
services.power-profiles-daemon.enable = true;
|
||||||
|
|
||||||
|
# Boot.
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
boot.loader.grub = {
|
boot.loader.grub = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -69,8 +61,24 @@
|
|||||||
device = "nodev";
|
device = "nodev";
|
||||||
configurationLimit = 32;
|
configurationLimit = 32;
|
||||||
};
|
};
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
boot.supportedFilesystems = [ "nfs" ];
|
||||||
|
|
||||||
networking.hostName = "ti-clt-lpt01"; # Define your hostname.
|
# Networking
|
||||||
|
networking.hosts = {
|
||||||
|
"127.0.0.1" = [
|
||||||
|
"tbmrs.nl"
|
||||||
|
"auth.tbmrs.nl"
|
||||||
|
"git.tbmrs.nl"
|
||||||
|
"photos.tbmrs.nl"
|
||||||
|
"home.tbmrs.nl"
|
||||||
|
"uptime.tbmrs.nl"
|
||||||
|
"share.tbmrs.nl"
|
||||||
|
"vault.local.tbmrs.nl"
|
||||||
|
"paperless.local.tbmrs.nl"
|
||||||
|
"monitor.local.tbmrs.nl"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
networking.firewall = {
|
networking.firewall = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -78,20 +86,24 @@
|
|||||||
allowedUDPPorts = [ 80 443 53 ];
|
allowedUDPPorts = [ 80 443 53 ];
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.xeovalyte = {
|
# Obs
|
||||||
isNormalUser = true;
|
programs.obs-studio = {
|
||||||
description = "Timo Boomers";
|
|
||||||
extraGroups = [ "networkmanager" "wheel" "dialout" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
nix.settings.trusted-users = [ "root" "xeovalyte" ];
|
|
||||||
|
|
||||||
# Prevent system freeze on high load
|
|
||||||
services.earlyoom = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
|
||||||
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
# optional Nvidia hardware acceleration
|
||||||
|
package = (
|
||||||
|
pkgs.obs-studio.override {
|
||||||
|
cudaSupport = true;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
plugins = with pkgs.obs-studio-plugins; [
|
||||||
|
wlrobs
|
||||||
|
obs-vaapi #optional AMD hardware acceleration
|
||||||
|
obs-gstreamer
|
||||||
|
obs-vkcapture
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.05";
|
||||||
}
|
}
|
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, lib, inputs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
@@ -13,12 +13,22 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
host = "ti-clt-lpt01";
|
||||||
|
|
||||||
applications.common.enable = true;
|
applications.common.enable = true;
|
||||||
applications.alacritty.enable = true;
|
applications.alacritty.enable = true;
|
||||||
applications.devenv.enable = true;
|
applications.devenv.enable = true;
|
||||||
applications.firefox.enable = true;
|
applications.firefox.enable = true;
|
||||||
applications.git.enable = true;
|
applications.git.enable = true;
|
||||||
applications.helix.enable = true;
|
applications.helix = {
|
||||||
|
enable = true;
|
||||||
|
markdown = true;
|
||||||
|
rust = true;
|
||||||
|
systemverilog = true;
|
||||||
|
nix = true;
|
||||||
|
latex = true;
|
||||||
|
vue = true;
|
||||||
|
};
|
||||||
applications.zsh.enable = true;
|
applications.zsh.enable = true;
|
||||||
applications.ssh.enable = true;
|
applications.ssh.enable = true;
|
||||||
applications.thunderbird.enable = true;
|
applications.thunderbird.enable = true;
|
||||||
@@ -26,6 +36,8 @@
|
|||||||
applications.zellij.enable = true;
|
applications.zellij.enable = true;
|
||||||
applications.wezterm.enable = true;
|
applications.wezterm.enable = true;
|
||||||
applications.nushell.enable = false;
|
applications.nushell.enable = false;
|
||||||
|
applications.typst.enable = true;
|
||||||
|
# applications.obs-studio.enable = true;
|
||||||
|
|
||||||
services.nextcloud-sync.enable = true;
|
services.nextcloud-sync.enable = true;
|
||||||
|
|
||||||
@@ -35,15 +47,16 @@
|
|||||||
theming.stylix.theme = "da-one-ocean";
|
theming.stylix.theme = "da-one-ocean";
|
||||||
|
|
||||||
desktop-environments.hyprland.enable = false;
|
desktop-environments.hyprland.enable = false;
|
||||||
|
desktop-environments.niri.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# Desktop Applications
|
# Desktop Applications
|
||||||
kdenlive
|
|
||||||
prismlauncher
|
prismlauncher
|
||||||
unstable.prusa-slicer
|
unstable.prusa-slicer
|
||||||
signal-desktop
|
signal-desktop
|
||||||
unstable.vesktop
|
unstable.vesktop
|
||||||
|
unstable.webcord
|
||||||
blender
|
blender
|
||||||
unstable.freecad-wayland
|
unstable.freecad-wayland
|
||||||
loupe
|
loupe
|
||||||
@@ -52,6 +65,9 @@
|
|||||||
unstable.hoppscotch
|
unstable.hoppscotch
|
||||||
unstable.apostrophe
|
unstable.apostrophe
|
||||||
unstable.surfer # waveform viewer
|
unstable.surfer # waveform viewer
|
||||||
|
unstable.vscode
|
||||||
|
pomodoro-gtk
|
||||||
|
unstable.brave
|
||||||
|
|
||||||
# Office
|
# Office
|
||||||
libreoffice
|
libreoffice
|
||||||
@@ -59,10 +75,6 @@
|
|||||||
# Image editing
|
# Image editing
|
||||||
gimp
|
gimp
|
||||||
inkscape
|
inkscape
|
||||||
unstable.obs-studio
|
|
||||||
|
|
||||||
# Development
|
|
||||||
unstable.drawio
|
|
||||||
|
|
||||||
unstable.moonlight-qt
|
unstable.moonlight-qt
|
||||||
|
|
||||||
@@ -70,7 +82,6 @@
|
|||||||
(import ../../modules/scripts/save_image.nix { inherit pkgs; })
|
(import ../../modules/scripts/save_image.nix { inherit pkgs; })
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
# Enable home-manager
|
# Enable home-manager
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
@@ -6,10 +6,11 @@
|
|||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
# Import modules
|
# Import modules
|
||||||
../../modules/system/default.nix
|
../../modules/system
|
||||||
];
|
];
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
hostname = "ti-clt-tbl01";
|
||||||
display-manager = "gdm";
|
display-manager = "gdm";
|
||||||
desktop-environments = {
|
desktop-environments = {
|
||||||
cosmic.enable = false;
|
cosmic.enable = false;
|
||||||
@@ -37,17 +38,11 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nix.settings = {
|
# Users
|
||||||
experimental-features = [ "nix-command" "flakes" ];
|
users.users.xeovalyte = {
|
||||||
|
isNormalUser = true;
|
||||||
substituters = [
|
description = "Timo Boomers";
|
||||||
"https://nix-community.cachix.org"
|
extraGroups = [ "networkmanager" "wheel" "dialout" ];
|
||||||
"https://cosmic.cachix.org/"
|
|
||||||
];
|
|
||||||
|
|
||||||
trusted-public-keys = [
|
|
||||||
"cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Bootloader.
|
# Bootloader.
|
||||||
@@ -58,24 +53,8 @@
|
|||||||
device = "nodev";
|
device = "nodev";
|
||||||
configurationLimit = 32;
|
configurationLimit = 32;
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.hostName = "ti-clt-tbl01"; # Define your hostname.
|
|
||||||
|
|
||||||
users.users.xeovalyte = {
|
|
||||||
isNormalUser = true;
|
|
||||||
description = "Timo Boomers";
|
|
||||||
extraGroups = [ "networkmanager" "wheel" "dialout" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
nix.settings.trusted-users = [ "root" "xeovalyte" ];
|
|
||||||
|
|
||||||
# Prevent system freeze on high load
|
|
||||||
services.earlyoom = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
boot.kernelPackages = lib.mkForce pkgs.linuxPackages_latest;
|
boot.kernelPackages = lib.mkForce pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.11";
|
||||||
|
|
||||||
}
|
}
|
@@ -13,6 +13,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
host = "ti-clt-tbl01";
|
||||||
|
|
||||||
applications.common.enable = true;
|
applications.common.enable = true;
|
||||||
applications.alacritty.enable = false;
|
applications.alacritty.enable = false;
|
||||||
applications.devenv.enable = false;
|
applications.devenv.enable = false;
|
||||||
|
@@ -2,21 +2,74 @@
|
|||||||
# your system. Help is available in the configuration.nix(5) man page
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
|
|
||||||
{ modulesPath, ... }:
|
{ modulesPath, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# Include the default incus configuration.
|
# Include the default incus configuration.
|
||||||
"${modulesPath}/virtualisation/lxc-container.nix"
|
"${modulesPath}/virtualisation/lxc-container.nix"
|
||||||
# Include the container-specific autogenerated configuration.
|
# Include the container-specific autogenerated configuration.
|
||||||
|
../../modules/system/default.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
hostname = "v-th-ctr-01";
|
||||||
|
display-manager = "none";
|
||||||
|
desktop-environments = {
|
||||||
|
cosmic.enable = false;
|
||||||
|
hyprland.enable = false;
|
||||||
|
gnome.enable = false;
|
||||||
|
};
|
||||||
|
applications = {
|
||||||
|
common.enable = true;
|
||||||
|
steam.enable = false;
|
||||||
|
thunar.enable = false;
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
docker.enable = false;
|
||||||
|
podman.enable = true;
|
||||||
|
quickemu.enable = false;
|
||||||
|
sunshine.enable = false;
|
||||||
|
garbage-collection.enable = true;
|
||||||
|
incus.enable = false;
|
||||||
|
ssh.enable = true;
|
||||||
|
};
|
||||||
|
hardware = {
|
||||||
|
fprint.enable = false;
|
||||||
|
printing.enable = false;
|
||||||
|
bluetooth.enable = false;
|
||||||
|
firewall.enable = true;
|
||||||
|
locale.enable = true;
|
||||||
|
nvidia.enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.deploy = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "Deploy";
|
||||||
|
extraGroups = [ "networkmanager" "wheel" "dialout" ];
|
||||||
|
linger = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# networking
|
||||||
networking = {
|
networking = {
|
||||||
dhcpcd.enable = false;
|
dhcpcd.enable = false;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
useHostResolvConf = false;
|
useHostResolvConf = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
networking.hosts = {
|
||||||
|
"127.0.0.1" = [ "tbmrs.nl" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall = {
|
||||||
|
enable = true;
|
||||||
|
allowedTCPPorts = [ 1080 1443 1053 ];
|
||||||
|
allowedUDPPorts = [ 1080 1443 1053 ];
|
||||||
|
};
|
||||||
|
|
||||||
systemd.network = {
|
systemd.network = {
|
||||||
enable = true;
|
enable = true;
|
||||||
networks."50-eth0" = {
|
networks."50-eth0" = {
|
||||||
|
@@ -13,12 +13,14 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
host = "v-th-ctr-01";
|
||||||
|
|
||||||
applications.common.enable = false;
|
applications.common.enable = false;
|
||||||
applications.alacritty.enable = false;
|
applications.alacritty.enable = false;
|
||||||
applications.devenv.enable = false;
|
applications.devenv.enable = false;
|
||||||
applications.firefox.enable = false;
|
applications.firefox.enable = false;
|
||||||
applications.git.enable = false;
|
applications.git.enable = false;
|
||||||
applications.helix.enable = false;
|
applications.helix.enable = true;
|
||||||
applications.zsh.enable = true;
|
applications.zsh.enable = true;
|
||||||
applications.ssh.enable = true;
|
applications.ssh.enable = true;
|
||||||
applications.thunderbird.enable = false;
|
applications.thunderbird.enable = false;
|
||||||
@@ -53,6 +55,11 @@
|
|||||||
beszel.enable = true;
|
beszel.enable = true;
|
||||||
storage.enable = true;
|
storage.enable = true;
|
||||||
homeassistant.enable = true;
|
homeassistant.enable = true;
|
||||||
|
karakeep.enable = false;
|
||||||
|
vikunja.enable = true;
|
||||||
|
stalwart.enable = true;
|
||||||
|
linkding.enable = true;
|
||||||
|
jellyfin.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
7
justfile
7
justfile
@@ -30,3 +30,10 @@ alias sh := switch-home-manager
|
|||||||
|
|
||||||
switch-home-manager:
|
switch-home-manager:
|
||||||
home-manager switch --flake .
|
home-manager switch --flake .
|
||||||
|
|
||||||
|
alias gc := collect-garbage
|
||||||
|
|
||||||
|
collect-garbage:
|
||||||
|
sudo nix-collect-garbage -d
|
||||||
|
nix-collect-garbage -d
|
||||||
|
|
||||||
|
@@ -22,6 +22,9 @@ in {
|
|||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
unstable.firefoxpwa
|
unstable.firefoxpwa
|
||||||
];
|
];
|
||||||
|
|
||||||
|
stylix.targets.firefox.profileNames = [ "${config.home.username}" ];
|
||||||
|
|
||||||
programs.firefox = lib.mkMerge [
|
programs.firefox = lib.mkMerge [
|
||||||
{
|
{
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -65,8 +68,9 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
profiles.xeovalyte = {
|
profiles.${config.home.username} = {
|
||||||
bookmarks = [
|
bookmarks.force = true;
|
||||||
|
bookmarks.settings = [
|
||||||
{
|
{
|
||||||
name = "Toolbar";
|
name = "Toolbar";
|
||||||
toolbar = true;
|
toolbar = true;
|
||||||
@@ -130,12 +134,12 @@ in {
|
|||||||
definedAliases = [ "@sp" ];
|
definedAliases = [ "@sp" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Bing".metaData.hidden = true;
|
"bing".metaData.hidden = true;
|
||||||
"Google".metaData.hidden = true;
|
"google".metaData.hidden = true;
|
||||||
"eBay".metaData.hidden = true;
|
"ebay".metaData.hidden = true;
|
||||||
};
|
};
|
||||||
search.force = true;
|
search.force = true;
|
||||||
search.default = "SearXNG";
|
search.default = "ddg";
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
"browser.disableResetPrompt" = true;
|
"browser.disableResetPrompt" = true;
|
||||||
|
@@ -12,47 +12,79 @@ in {
|
|||||||
Enable helix text editor
|
Enable helix text editor
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings.applications.helix.markdown = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Enable markdown language support
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.applications.helix.systemverilog = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Enable systemverilog language support
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.applications.helix.nix = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Enable nix language support
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.applications.helix.latex = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Enable latex language support
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.applications.helix.vue = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Enable vue/nuxt language support
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.applications.helix.rust = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Enable rust language support
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; lib.concatLists [
|
||||||
# Markdown
|
(lib.optionals cfg.markdown [ unstable.marksman unstable.markdown-oxide dprint ])
|
||||||
unstable.marksman
|
(lib.optionals cfg.systemverilog [ unstable.svls ])
|
||||||
unstable.markdown-oxide
|
(lib.optionals cfg.nix [ unstable.nix unstable.nixpkgs-fmt ])
|
||||||
dprint
|
(lib.optionals cfg.latex [ tectonic unstable.texlab ])
|
||||||
|
(lib.optionals cfg.vue [ unstable.vue-language-server unstable.typescript unstable.typescript-language-server ])
|
||||||
# Systemverilog
|
|
||||||
unstable.svls
|
|
||||||
|
|
||||||
# Assembly
|
|
||||||
unstable.asm-lsp
|
|
||||||
|
|
||||||
# Nixos
|
|
||||||
unstable.nil
|
|
||||||
unstable.nixpkgs-fmt
|
|
||||||
|
|
||||||
# Latex
|
|
||||||
tectonic
|
|
||||||
unstable.texlab
|
|
||||||
|
|
||||||
# Vue/Nuxt
|
|
||||||
unstable.vue-language-server
|
|
||||||
unstable.typescript
|
|
||||||
unstable.typescript-language-server
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Markdown
|
# Markdown
|
||||||
home.file.".config/.dprint.json".text =''
|
home.file.".config/.dprint.json" = lib.mkIf cfg.markdown {
|
||||||
{
|
text = ''
|
||||||
"markdown": {
|
{
|
||||||
"lineWidth":120,
|
"markdown": {
|
||||||
},
|
"lineWidth":120,
|
||||||
"excludes": [],
|
},
|
||||||
"plugins": [
|
"excludes": [],
|
||||||
"https://plugins.dprint.dev/markdown-0.16.1.wasm"
|
"plugins": [
|
||||||
]
|
"https://plugins.dprint.dev/markdown-0.16.1.wasm"
|
||||||
}
|
]
|
||||||
'';
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
programs.helix = {
|
programs.helix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -62,27 +94,23 @@ in {
|
|||||||
editor.cursor-shape = {
|
editor.cursor-shape = {
|
||||||
insert = "bar";
|
insert = "bar";
|
||||||
};
|
};
|
||||||
|
editor.end-of-line-diagnostics = "hint";
|
||||||
};
|
};
|
||||||
languages = {
|
languages = {
|
||||||
# Rust
|
# Rust
|
||||||
language-server.rust-analyzer.config = {
|
language-server.rust-analyzer.config = lib.mkIf cfg.rust {
|
||||||
cargo = {
|
cargo = {
|
||||||
features = "all";
|
features = "all";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Systemverilog
|
# Systemverilog
|
||||||
language-server.svls = {
|
language-server.svls = lib.mkIf cfg.systemverilog {
|
||||||
command = "svls";
|
command = "svls";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Systemverilog
|
|
||||||
language-server.asm = {
|
|
||||||
command = "asm-lsp";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Latex
|
# Latex
|
||||||
language-server.texlab = {
|
language-server.texlab = lib.mkIf cfg.latex {
|
||||||
config = {
|
config = {
|
||||||
texlab.chktex = {
|
texlab.chktex = {
|
||||||
onOpenAndSave = true;
|
onOpenAndSave = true;
|
||||||
@@ -116,7 +144,7 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
language-server.typescript-language-server.config = {
|
language-server.typescript-language-server.config = lib.mkIf cfg.vue {
|
||||||
# tsserver = {
|
# tsserver = {
|
||||||
# path = "${pkgs.unstable.typescript}/bin/tsserver";
|
# path = "${pkgs.unstable.typescript}/bin/tsserver";
|
||||||
# };
|
# };
|
||||||
@@ -148,18 +176,12 @@ in {
|
|||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
|
|
||||||
language = [
|
language = lib.concatLists [
|
||||||
{
|
(lib.optionals cfg.systemverilog [{
|
||||||
name = "verilog";
|
name = "verilog";
|
||||||
language-servers = [ "svls" ];
|
language-servers = [ "svls" ];
|
||||||
}
|
}])
|
||||||
{
|
(lib.optionals cfg.markdown [{
|
||||||
name = "asm";
|
|
||||||
scope = "source.s";
|
|
||||||
language-servers = [ "asm" ];
|
|
||||||
file-types = [ "s" "S" ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "markdown";
|
name = "markdown";
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
language-servers = [ "markdown-oxide" ];
|
language-servers = [ "markdown-oxide" ];
|
||||||
@@ -170,11 +192,11 @@ in {
|
|||||||
name = "typst";
|
name = "typst";
|
||||||
auto-format = false;
|
auto-format = false;
|
||||||
formatter.command = "${pkgs.typstfmt}/bin/typstfmt";
|
formatter.command = "${pkgs.typstfmt}/bin/typstfmt";
|
||||||
}
|
}])
|
||||||
{
|
(lib.optionals cfg.vue [{
|
||||||
name = "vue";
|
name = "vue";
|
||||||
language-servers = ["vuels" "typescript-language-server"];
|
language-servers = ["vuels" "typescript-language-server"];
|
||||||
}
|
}])
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
27
modules/home/applications/obs-studio.nix
Normal file
27
modules/home/applications/obs-studio.nix
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.applications.obs-studio;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.applications.obs-studio.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
description = ''
|
||||||
|
Enable obs studio with optional plugins
|
||||||
|
'';
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.obs-studio = {
|
||||||
|
enable = true;
|
||||||
|
plugins = with pkgs.obs-studio-plugins; [
|
||||||
|
wlrobs
|
||||||
|
obs-vaapi #optional AMD hardware acceleration
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
24
modules/home/applications/typst.nix
Normal file
24
modules/home/applications/typst.nix
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.applications.typst;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.applications.typst.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
description = ''
|
||||||
|
Enable typst
|
||||||
|
'';
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
unstable.typst
|
||||||
|
unstable.typst-live
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
@@ -49,6 +49,11 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs-local.routes.beszel = {
|
||||||
|
host = "monitor";
|
||||||
|
url = "beszel:8090";
|
||||||
|
};
|
||||||
|
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
"containers/beszel/key" = { };
|
"containers/beszel/key" = { };
|
||||||
};
|
};
|
||||||
|
@@ -4,21 +4,61 @@ with lib;
|
|||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.settings.containers.caddy;
|
cfg = config.settings.containers.caddy;
|
||||||
|
|
||||||
|
toInternal = name: routesDef: {
|
||||||
|
name = name;
|
||||||
|
host = routesDef.host;
|
||||||
|
url = routesDef.url;
|
||||||
|
};
|
||||||
|
|
||||||
|
generateRoutes = domain: entries: lib.concatMapStrings (route: ''
|
||||||
|
@${route.name} host ${route.host}.${domain}
|
||||||
|
handle @${route.name} {
|
||||||
|
reverse_proxy ${route.url}
|
||||||
|
}
|
||||||
|
'') entries;
|
||||||
|
|
||||||
|
routesOption = lib.mkOption {
|
||||||
|
type = types.attrsOf (types.submodule {
|
||||||
|
options = {
|
||||||
|
url = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
host = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
settings.containers.caddy.enable = lib.mkOption {
|
settings.containers.caddy.enable = mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
Enable caddy container
|
Enable caddy container
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes = mkOption {
|
||||||
|
type = lib.types.attrsOf (types.submodule {
|
||||||
|
options = {
|
||||||
|
routes = routesOption;
|
||||||
|
domain = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
services.podman.containers.caddy = {
|
services.podman.containers.caddy = {
|
||||||
image = "localhost/tboomers/caddy-custom:latest";
|
image = "localhost/tboomers/caddy-custom:latest";
|
||||||
network = "proxy";
|
network = "proxy";
|
||||||
|
networkAlias = [
|
||||||
|
"mail.tbmrs.nl"
|
||||||
|
];
|
||||||
ports = [
|
ports = [
|
||||||
"1080:80"
|
"1080:80"
|
||||||
"1443:443"
|
"1443:443"
|
||||||
@@ -30,6 +70,11 @@ in {
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes = {
|
||||||
|
tbmrs.domain = "tbmrs.nl";
|
||||||
|
tbmrs-local.domain = "local.tbmrs.nl";
|
||||||
|
};
|
||||||
|
|
||||||
home.file."containers/caddy/Caddyfile".text = ''
|
home.file."containers/caddy/Caddyfile".text = ''
|
||||||
*.tbmrs.nl, tbmrs.nl {
|
*.tbmrs.nl, tbmrs.nl {
|
||||||
tls {
|
tls {
|
||||||
@@ -37,45 +82,7 @@ in {
|
|||||||
resolvers 1.1.1.1
|
resolvers 1.1.1.1
|
||||||
}
|
}
|
||||||
|
|
||||||
@root host tbmrs.nl
|
${generateRoutes cfg.routes.tbmrs.domain (mapAttrsToList toInternal cfg.routes.tbmrs.routes)}
|
||||||
handle @root {
|
|
||||||
respond "Hello there"
|
|
||||||
}
|
|
||||||
|
|
||||||
@kanidm host auth.tbmrs.nl
|
|
||||||
handle @kanidm {
|
|
||||||
reverse_proxy https://auth.tbmrs.nl
|
|
||||||
}
|
|
||||||
|
|
||||||
@forgejo host git.tbmrs.nl
|
|
||||||
handle @forgejo {
|
|
||||||
reverse_proxy forgejo:3000
|
|
||||||
}
|
|
||||||
|
|
||||||
@immich host photos.tbmrs.nl
|
|
||||||
handle @immich {
|
|
||||||
reverse_proxy immich-server:2283
|
|
||||||
}
|
|
||||||
|
|
||||||
@homepage host home.tbmrs.nl
|
|
||||||
handle @homepage {
|
|
||||||
reverse_proxy homepage:3000
|
|
||||||
}
|
|
||||||
|
|
||||||
@uptime-kuma host uptime.tbmrs.nl
|
|
||||||
handle @uptime-kuma {
|
|
||||||
reverse_proxy uptime-kuma:3001
|
|
||||||
}
|
|
||||||
|
|
||||||
@pingvin-share host share.tbmrs.nl
|
|
||||||
handle @pingvin-share {
|
|
||||||
reverse_proxy pingvin-share:3000
|
|
||||||
}
|
|
||||||
|
|
||||||
@dufs host files.tbmrs.nl
|
|
||||||
handle @dufs {
|
|
||||||
reverse_proxy dufs:5000
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
*.local.tbmrs.nl {
|
*.local.tbmrs.nl {
|
||||||
@@ -84,30 +91,7 @@ in {
|
|||||||
resolvers 1.1.1.1
|
resolvers 1.1.1.1
|
||||||
}
|
}
|
||||||
|
|
||||||
@vaultwarden host vault.local.tbmrs.nl
|
${generateRoutes cfg.routes.tbmrs-local.domain (mapAttrsToList toInternal cfg.routes.tbmrs-local.routes)}
|
||||||
handle @vaultwarden {
|
|
||||||
reverse_proxy vaultwarden:80
|
|
||||||
}
|
|
||||||
|
|
||||||
@paperless-ngx host paperless.local.tbmrs.nl
|
|
||||||
handle @paperless-ngx {
|
|
||||||
reverse_proxy paperless-ngx:8000
|
|
||||||
}
|
|
||||||
|
|
||||||
@beszel host monitor.local.tbmrs.nl
|
|
||||||
handle @beszel {
|
|
||||||
reverse_proxy beszel:8090
|
|
||||||
}
|
|
||||||
|
|
||||||
@syncthing host syncthing.local.tbmrs.nl
|
|
||||||
handle @syncthing {
|
|
||||||
reverse_proxy syncthing:8384
|
|
||||||
}
|
|
||||||
|
|
||||||
@homeassistant host home-assistant.local.tbmrs.nl
|
|
||||||
handle @homeassistant {
|
|
||||||
reverse_proxy homeassistant:8123
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@@ -28,5 +28,10 @@ in {
|
|||||||
FORGEJO__service__ENABLE_PASSWORD_SIGNIN_FORM = false;
|
FORGEJO__service__ENABLE_PASSWORD_SIGNIN_FORM = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs.routes.forgejo = {
|
||||||
|
host = "git";
|
||||||
|
url = "forgejo:3000";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -27,5 +27,10 @@ in {
|
|||||||
TZ = "Europe/Amsterdam";
|
TZ = "Europe/Amsterdam";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs-local.routes.home-assistant = {
|
||||||
|
host = "home-assistant";
|
||||||
|
url = "homeassistant:8123";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -32,45 +32,29 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs.routes.homepage = {
|
||||||
|
host = "home";
|
||||||
|
url = "homepage:3000";
|
||||||
|
};
|
||||||
|
|
||||||
home.file."containers/homepage/config/settings.yaml".source = (pkgs.formats.yaml { }).generate "settings" {
|
home.file."containers/homepage/config/settings.yaml".source = (pkgs.formats.yaml { }).generate "settings" {
|
||||||
title = "Timo's Server";
|
title = "Timo's Server";
|
||||||
description = "server from Timo";
|
description = "server from Timo";
|
||||||
theme = "dark";
|
theme = "dark";
|
||||||
color = "slate";
|
color = "slate";
|
||||||
|
layout = {
|
||||||
|
Services = {
|
||||||
|
style = "row";
|
||||||
|
columns = "4";
|
||||||
|
};
|
||||||
|
Infra = {
|
||||||
|
style = "row";
|
||||||
|
columns = "4";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.file."containers/homepage/config/services.yaml".source = (pkgs.formats.yaml { }).generate "services" [
|
home.file."containers/homepage/config/services.yaml".source = (pkgs.formats.yaml { }).generate "services" [
|
||||||
{
|
|
||||||
"Infra" = [
|
|
||||||
{
|
|
||||||
"Kanidm" = {
|
|
||||||
href = "https://auth.tbmrs.nl";
|
|
||||||
description = "Oauth2 and ldap provider";
|
|
||||||
icon = "kanidm";
|
|
||||||
server = "podman";
|
|
||||||
container = "kanidm";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"Uptime Kuma" = {
|
|
||||||
href = "https://uptime.tbmrs.nl";
|
|
||||||
description = "Uptime and status";
|
|
||||||
icon = "uptime-kuma";
|
|
||||||
server = "podman";
|
|
||||||
container = "uptime-kuma";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"Beszel" = {
|
|
||||||
href = "https://monitor.local.tbmrs.nl";
|
|
||||||
description = "Server monitoring";
|
|
||||||
icon = "beszel";
|
|
||||||
server = "podman";
|
|
||||||
container = "beszel";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
"Services" = [
|
"Services" = [
|
||||||
{
|
{
|
||||||
@@ -118,6 +102,82 @@ in {
|
|||||||
container = "paperless-ngx";
|
container = "paperless-ngx";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
"Home Assistant" = {
|
||||||
|
href = "https://home-assistant.local.tbmrs.nl";
|
||||||
|
description = "Home automation";
|
||||||
|
icon = "home-assistant";
|
||||||
|
server = "podman";
|
||||||
|
container = "homeassistant";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"Syncthing" = {
|
||||||
|
href = "https://syncthing.local.tbmrs.nl";
|
||||||
|
description = "File syncronisation";
|
||||||
|
icon = "syncthing";
|
||||||
|
server = "podman";
|
||||||
|
container = "syncthing";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"Dufs" = {
|
||||||
|
href = "https://files.tbmrs.nl";
|
||||||
|
description = "File management";
|
||||||
|
icon = "dufs";
|
||||||
|
server = "podman";
|
||||||
|
container = "dufs";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"Linkding" = {
|
||||||
|
href = "https://links.local.tbmrs.nl";
|
||||||
|
description = "Bookmarks";
|
||||||
|
icon = "linkding";
|
||||||
|
server = "podman";
|
||||||
|
container = "linkding";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"Stalwart" = {
|
||||||
|
href = "https://mail.tbmrs.nl";
|
||||||
|
description = "Mailserver";
|
||||||
|
icon = "stalwart";
|
||||||
|
server = "podman";
|
||||||
|
container = "stalwart";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"Infra" = [
|
||||||
|
{
|
||||||
|
"Kanidm" = {
|
||||||
|
href = "https://auth.tbmrs.nl";
|
||||||
|
description = "Oauth2 and ldap provider";
|
||||||
|
icon = "kanidm";
|
||||||
|
server = "podman";
|
||||||
|
container = "kanidm";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"Uptime Kuma" = {
|
||||||
|
href = "https://uptime.tbmrs.nl";
|
||||||
|
description = "Uptime and status";
|
||||||
|
icon = "uptime-kuma";
|
||||||
|
server = "podman";
|
||||||
|
container = "uptime-kuma";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"Beszel" = {
|
||||||
|
href = "https://monitor.local.tbmrs.nl";
|
||||||
|
description = "Server monitoring";
|
||||||
|
icon = "beszel";
|
||||||
|
server = "podman";
|
||||||
|
container = "beszel";
|
||||||
|
};
|
||||||
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@@ -71,5 +71,10 @@ in {
|
|||||||
};
|
};
|
||||||
exec = ''postgres -c shared_preload_libraries=vectors.so -c 'search_path="$$user", public, vectors' -c logging_collector=on -c max_wal_size=2GB -c shared_buffers=512MB -c wal_compression=on'';
|
exec = ''postgres -c shared_preload_libraries=vectors.so -c 'search_path="$$user", public, vectors' -c logging_collector=on -c max_wal_size=2GB -c shared_buffers=512MB -c wal_compression=on'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs.routes.immich = {
|
||||||
|
host = "photos";
|
||||||
|
url = "immich-server:2283";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
35
modules/home/containers/jellyfin.nix
Normal file
35
modules/home/containers/jellyfin.nix
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.containers.jellyfin;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.containers.jellyfin.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Enable jellyfin container
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.podman.containers.jellyfin = {
|
||||||
|
image = "jellyfin/jellyfin";
|
||||||
|
network = "proxy";
|
||||||
|
volumes = [
|
||||||
|
"%h/containers/jellyfin/config:/config"
|
||||||
|
"%h/containers/jellyfin/cache:/cache"
|
||||||
|
"%h/media:/media"
|
||||||
|
];
|
||||||
|
userNS = "keep-id";
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs-local.routes.jellyfin = {
|
||||||
|
host = "stream";
|
||||||
|
url = "jellyfin:8096";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@@ -36,5 +36,10 @@ in {
|
|||||||
KANIDM_ORIGIN = "https://auth.tbmrs.nl";
|
KANIDM_ORIGIN = "https://auth.tbmrs.nl";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs.routes.kanidm = {
|
||||||
|
host = "auth";
|
||||||
|
url = "https://auth.tbmrs.nl";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
82
modules/home/containers/karakeep.nix
Normal file
82
modules/home/containers/karakeep.nix
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.containers.karakeep;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.containers.karakeep.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Enable karakeep container
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.podman.containers.karakeep = {
|
||||||
|
image = "ghcr.io/karakeep-app/karakeep:release";
|
||||||
|
network = "proxy";
|
||||||
|
volumes = [
|
||||||
|
"%h/containers/karakeep/data:/data"
|
||||||
|
];
|
||||||
|
environment = {
|
||||||
|
MEILI_ADDR = "http://karakeep-meilisearch:7700";
|
||||||
|
BROWSER_WEB_URL = "http://karakeep-chrome:9222";
|
||||||
|
DATA_DIR = "/data";
|
||||||
|
};
|
||||||
|
environmentFile = [
|
||||||
|
"${config.sops.templates."container-karakeep.env".path}"
|
||||||
|
];
|
||||||
|
extraConfig = {
|
||||||
|
Unit = {
|
||||||
|
After = [
|
||||||
|
"podman-karakeep-chrome.service"
|
||||||
|
"podman-karakeep-meilisearch.service"
|
||||||
|
];
|
||||||
|
Requires = [
|
||||||
|
"podman-karakeep-chrome.service"
|
||||||
|
"podman-karakeep-meilisearch.service"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.podman.containers.karakeep-chrome = {
|
||||||
|
image = "gcr.io/zenika-hub/alpine-chrome:123";
|
||||||
|
network = "proxy";
|
||||||
|
exec = "--no-sandbox --disable-gpu --disable-dev-shm-usage --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222 --hide-scrollbars";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.podman.containers.karakeep-meilisearch = {
|
||||||
|
image = "getmeili/meilisearch:v1.13.3";
|
||||||
|
network = "proxy";
|
||||||
|
environment = {
|
||||||
|
MEILI_NO_ANALYTICS = "true";
|
||||||
|
};
|
||||||
|
volumes = [
|
||||||
|
"%h/containers/karakeep/meilisearch:/meili_data"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.services.sops.enable = true;
|
||||||
|
|
||||||
|
sops.secrets = {
|
||||||
|
"containers/karakeep/nextauth-secret" = { };
|
||||||
|
"containers/karakeep/meili-key" = { };
|
||||||
|
};
|
||||||
|
|
||||||
|
sops.templates = {
|
||||||
|
"container-karakeep.env" = {
|
||||||
|
content = ''
|
||||||
|
KARAKEEP_VERSION=release
|
||||||
|
NEXTAUTH_SECRET=${config.sops.placeholder."containers/karakeep/nextauth-secret"}
|
||||||
|
MEILI_MASTER_KEY=${config.sops.placeholder."containers/karakeep/meili-key"}
|
||||||
|
NEXTAUTH_URL=https://karakeep.local.tbmrs.nl
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
58
modules/home/containers/linkding.nix
Normal file
58
modules/home/containers/linkding.nix
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.containers.linkding;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.containers.linkding.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Enable linkding container
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.podman.containers.linkding = {
|
||||||
|
image = "ghcr.io/sissbruecker/linkding:latest";
|
||||||
|
network = "proxy";
|
||||||
|
volumes = [
|
||||||
|
"%h/containers/linkding/data:/etc/linkding/data"
|
||||||
|
];
|
||||||
|
environment = {
|
||||||
|
LD_ENABLE_OIDC = "True";
|
||||||
|
OIDC_RP_CLIENT_ID = "linkding";
|
||||||
|
OIDC_OP_AUTHORIZATION_ENDPOINT = "https://auth.tbmrs.nl/ui/oauth2";
|
||||||
|
OIDC_OP_TOKEN_ENDPOINT = "https://auth.tbmrs.nl/oauth2/token";
|
||||||
|
OIDC_OP_USER_ENDPOINT = "https://auth.tbmrs.nl/oauth2/openid/linkding/userinfo";
|
||||||
|
OIDC_OP_JWKS_ENDPOINT = "https://auth.tbmrs.nl/oauth2/openid/linkding/public_key.jwk";
|
||||||
|
OIDC_RP_SIGN_ALGO = "ES256";
|
||||||
|
};
|
||||||
|
environmentFile = [
|
||||||
|
"${config.sops.templates."container-linkding.env".path}"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs-local.routes.linkding = {
|
||||||
|
host = "links";
|
||||||
|
url = "linkding:9090";
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.services.sops.enable = true;
|
||||||
|
|
||||||
|
sops.templates = {
|
||||||
|
"container-linkding.env" = {
|
||||||
|
content = /*bash*/ ''
|
||||||
|
OIDC_RP_CLIENT_SECRET=${config.sops.placeholder."containers/linkding/oidc-secret"}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sops.secrets = {
|
||||||
|
"containers/linkding/oidc-secret" = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@@ -3,7 +3,7 @@
|
|||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.settings.containers.nginx;
|
cfg = config.settings.containers.network;
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
settings.containers.network.enable = lib.mkOption {
|
settings.containers.network.enable = lib.mkOption {
|
||||||
@@ -18,6 +18,7 @@ in {
|
|||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
services.podman.networks.proxy = {
|
services.podman.networks.proxy = {
|
||||||
description = "Container network for the proxy";
|
description = "Container network for the proxy";
|
||||||
|
driver = "bridge";
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@@ -88,6 +88,11 @@ in {
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs-local.routes.paperless-ngx = {
|
||||||
|
host = "paperless";
|
||||||
|
url = "paperless-ngx:8000";
|
||||||
|
};
|
||||||
|
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
"containers/paperless-ngx/db-password" = { };
|
"containers/paperless-ngx/db-password" = { };
|
||||||
"containers/paperless-ngx/secret" = { };
|
"containers/paperless-ngx/secret" = { };
|
||||||
|
@@ -39,6 +39,11 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs.routes.pingvin = {
|
||||||
|
host = "share";
|
||||||
|
url = "pingvin-share:3000";
|
||||||
|
};
|
||||||
|
|
||||||
sops.templates = {
|
sops.templates = {
|
||||||
"container-pingvin.yaml" = {
|
"container-pingvin.yaml" = {
|
||||||
content = /*yaml*/ ''
|
content = /*yaml*/ ''
|
||||||
|
42
modules/home/containers/stalwart.nix
Normal file
42
modules/home/containers/stalwart.nix
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.containers.stalwart;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.containers.stalwart.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Enable stalwart mailserver container
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.podman.containers.stalwart = {
|
||||||
|
image = "stalwartlabs/mail-server:latest";
|
||||||
|
network = "proxy";
|
||||||
|
ports = [
|
||||||
|
"1025:25"
|
||||||
|
"1587:587"
|
||||||
|
"1465:465"
|
||||||
|
"1143:143"
|
||||||
|
"1993:993"
|
||||||
|
"14190:4190"
|
||||||
|
"1110:110"
|
||||||
|
"1995:995"
|
||||||
|
];
|
||||||
|
volumes = [
|
||||||
|
"%h/containers/stalwart/data:/opt/stalwart-mail"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs.routes.stalwart = {
|
||||||
|
host = "mail";
|
||||||
|
url = "stalwart:8080";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
60
modules/home/containers/static.nix
Normal file
60
modules/home/containers/static.nix
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.containers.static;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.containers.static.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Enable static pages containers
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
settings.services.sops.enable = true;
|
||||||
|
|
||||||
|
services.podman.containers.wrbapp = {
|
||||||
|
image = "gitea.xeovalyte.dev/xeovalyte/wrbapp:latest-arm";
|
||||||
|
network = "proxy";
|
||||||
|
environmentFile = [
|
||||||
|
"${config.sops.templates."container-wrbapp.env".path}"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.podman.containers.hunshin = {
|
||||||
|
image = "gitea.xeovalyte.dev/xeovalyte/hunshin:latest-arm";
|
||||||
|
network = "proxy";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.podman.containers.bijlobke = {
|
||||||
|
image = "gitea.xeovalyte.dev/xeovalyte/bijlobke:latest-arm";
|
||||||
|
network = "proxy";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.podman.containers.ardsite = {
|
||||||
|
image = "gitea.xeovalyte.dev/ardsite/ardsite:latest-arm";
|
||||||
|
network = "proxy";
|
||||||
|
};
|
||||||
|
|
||||||
|
sops.templates = {
|
||||||
|
"container-wrbapp.env" = {
|
||||||
|
content = ''
|
||||||
|
NUXT_PRIVATE_KEY_ID: "${config.sops.placeholder."containers/wrbapp/private-key-id"}"
|
||||||
|
NUXT_PRIVATE_KEY: "${config.sops.placeholder."containers/wrbapp/private-key"}"
|
||||||
|
NUXT_CLIENT_ID: "${config.sops.placeholder."containers/wrbapp/client-id"}"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sops.secrets = {
|
||||||
|
"containers/wrbapp/private-key-id" = { };
|
||||||
|
"containers/wrbapp/private-key" = { };
|
||||||
|
"containers/wrbapp/client-id" = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@@ -43,5 +43,15 @@ in {
|
|||||||
"22000:22000/udp"
|
"22000:22000/udp"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs-local.routes.sycnthing = {
|
||||||
|
host = "syncthing";
|
||||||
|
url = "syncthing:8384";
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs.routes.dufs = {
|
||||||
|
host = "files";
|
||||||
|
url = "dufs:5000";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -17,11 +17,16 @@ in {
|
|||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
services.podman.containers.uptime-kuma = {
|
services.podman.containers.uptime-kuma = {
|
||||||
image = "louislam/uptime-kuma:1";
|
image = "louislam/uptime-kuma:beta";
|
||||||
network = "proxy";
|
network = "proxy";
|
||||||
volumes = [
|
volumes = [
|
||||||
"%h/containers/uptime-kuma/data:/app/data"
|
"%h/containers/uptime-kuma/data:/app/data"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs.routes.uptime-kuma = {
|
||||||
|
host = "uptime";
|
||||||
|
url = "uptime-kuma:3001";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -27,5 +27,11 @@ in {
|
|||||||
SIGNUPS_ALLOWED = true;
|
SIGNUPS_ALLOWED = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs-local.routes.vaultwarden = {
|
||||||
|
host = "vault";
|
||||||
|
url = "vaultwarden:80";
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
34
modules/home/containers/vikunja.nix
Normal file
34
modules/home/containers/vikunja.nix
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.containers.vikunja;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.containers.vikunja.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Enable vikunja container
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.podman.containers.vikunja = {
|
||||||
|
image = "vikunja/vikunja";
|
||||||
|
network = "proxy";
|
||||||
|
userNS = "keep-id";
|
||||||
|
volumes = [
|
||||||
|
"%h/containers/vikunja/files:/app/vikunja/files"
|
||||||
|
"%h/containers/vikunja/db:/db"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs-local.routes.vikunja = {
|
||||||
|
host = "tasks";
|
||||||
|
url = "vikunja:3456";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@@ -1,6 +1,13 @@
|
|||||||
{ ... }:
|
{ inputs, outputs, config, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
options = {
|
||||||
|
settings.host = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
description = "Hostname";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./applications/alacritty.nix
|
./applications/alacritty.nix
|
||||||
./applications/common.nix
|
./applications/common.nix
|
||||||
@@ -15,6 +22,8 @@
|
|||||||
./applications/zellij.nix
|
./applications/zellij.nix
|
||||||
./applications/wezterm.nix
|
./applications/wezterm.nix
|
||||||
./applications/nushell.nix
|
./applications/nushell.nix
|
||||||
|
./applications/typst.nix
|
||||||
|
./applications/obs-studio.nix
|
||||||
|
|
||||||
./services/nextcloud.nix
|
./services/nextcloud.nix
|
||||||
./services/podman.nix
|
./services/podman.nix
|
||||||
@@ -24,6 +33,7 @@
|
|||||||
./theming/stylix.nix
|
./theming/stylix.nix
|
||||||
|
|
||||||
./desktop-environments/hyprland/default.nix
|
./desktop-environments/hyprland/default.nix
|
||||||
|
./desktop-environments/niri/default.nix
|
||||||
|
|
||||||
./containers/network.nix
|
./containers/network.nix
|
||||||
|
|
||||||
@@ -40,5 +50,21 @@
|
|||||||
./containers/beszel.nix
|
./containers/beszel.nix
|
||||||
./containers/storage.nix
|
./containers/storage.nix
|
||||||
./containers/homeassistant.nix
|
./containers/homeassistant.nix
|
||||||
|
./containers/karakeep.nix
|
||||||
|
./containers/vikunja.nix
|
||||||
|
./containers/stalwart.nix
|
||||||
|
./containers/static.nix
|
||||||
|
./containers/linkding.nix
|
||||||
|
./containers/jellyfin.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
config = {
|
||||||
|
nixpkgs = {
|
||||||
|
overlays = [
|
||||||
|
outputs.overlays.unstable-packages
|
||||||
|
outputs.overlays.additions
|
||||||
|
outputs.overlays.modifications
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@@ -15,7 +15,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./waybar.nix
|
# ./waybar.nix
|
||||||
./fixes.nix
|
./fixes.nix
|
||||||
./dunst.nix
|
./dunst.nix
|
||||||
./rofi.nix
|
./rofi.nix
|
||||||
|
216
modules/home/desktop-environments/niri/default.nix
Normal file
216
modules/home/desktop-environments/niri/default.nix
Normal file
@@ -0,0 +1,216 @@
|
|||||||
|
{ config, pkgs, lib, inputs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.desktop-environments.niri;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.desktop-environments.niri.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
description = ''
|
||||||
|
Enable niri window manager configuration
|
||||||
|
'';
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
inputs.niri.homeModules.niri
|
||||||
|
./waybar.nix
|
||||||
|
./mako.nix
|
||||||
|
./swww.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
fuzzel
|
||||||
|
brightnessctl
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.alacritty = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
window.decorations = "None";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
# Configure default applications
|
||||||
|
xdg.mimeApps = {
|
||||||
|
enable = true;
|
||||||
|
defaultApplications = {
|
||||||
|
"text/html" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/http" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/https" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/about" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/unknown" = "firefox.desktop";
|
||||||
|
"application/pdf" = "firefox.desktop";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.niri.enable = true;
|
||||||
|
programs.niri.package = pkgs.unstable.niri;
|
||||||
|
|
||||||
|
programs.niri.settings.outputs = lib.mkIf (config.settings.host == "ti-clt-dsk01") {
|
||||||
|
"HDMI-A-1".position = {
|
||||||
|
x = 1920;
|
||||||
|
y = 0;
|
||||||
|
};
|
||||||
|
"DP-1".position = {
|
||||||
|
x = 0;
|
||||||
|
y = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.niri.settings.layout = {
|
||||||
|
gaps = 8;
|
||||||
|
focus-ring = {
|
||||||
|
width = 2;
|
||||||
|
};
|
||||||
|
preset-column-widths = [
|
||||||
|
{ proportion = 1. / 3.; }
|
||||||
|
{ proportion = 1. / 2.; }
|
||||||
|
{ proportion = 2. / 3.; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.niri.settings.workspaces = {
|
||||||
|
"00-app" = { name = "app"; open-on-output = "DP-1"; };
|
||||||
|
"01-term" = { name = "term"; open-on-output = "DP-1"; };
|
||||||
|
"10-web" = { name = "web"; open-on-output = "HDMI-A-1"; };
|
||||||
|
"11-mus" = { name = "mus"; open-on-output = "HDMI-A-1"; };
|
||||||
|
"12-com" = { name = "com"; open-on-output = "HDMI-A-1"; };
|
||||||
|
};
|
||||||
|
|
||||||
|
# Default startup applications
|
||||||
|
programs.niri.settings.spawn-at-startup = [
|
||||||
|
{ command = ["vesktop"]; }
|
||||||
|
{ command = ["thunderbird"]; }
|
||||||
|
{ command = ["xwayland-satellite" ":10"]; }
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.niri.settings.environment.DISPLAY = ":10";
|
||||||
|
|
||||||
|
programs.niri.settings.window-rules = [
|
||||||
|
{
|
||||||
|
matches = [
|
||||||
|
{ at-startup = true; app-id = "vesktop"; }
|
||||||
|
{ at-startup = true; app-id = "thunderbird"; }
|
||||||
|
];
|
||||||
|
open-on-workspace = "com";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
# Configure overview
|
||||||
|
programs.niri.settings.layer-rules = [
|
||||||
|
{
|
||||||
|
matches = [
|
||||||
|
{ namespace = "wallpaper"; }
|
||||||
|
];
|
||||||
|
place-within-backdrop = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.niri.settings.binds = with config.lib.niri.actions; {
|
||||||
|
"Mod+Shift+Slash".action = show-hotkey-overlay;
|
||||||
|
|
||||||
|
# Spawn applications
|
||||||
|
"Mod+Space".action = spawn "fuzzel";
|
||||||
|
"Mod+T".action = spawn "alacritty";
|
||||||
|
"Mod+B".action = spawn "firefox";
|
||||||
|
|
||||||
|
# Volume controls
|
||||||
|
"XF86AudioRaiseVolume".action = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+";
|
||||||
|
"XF86AudioLowerVolume".action = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-";
|
||||||
|
"XF86AudioMute".action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK" "toggle";
|
||||||
|
|
||||||
|
# Media controls
|
||||||
|
"XF86AudioPlay".action = spawn "playerctl" "play-pause";
|
||||||
|
"XF86AudioNext".action = spawn "playerctl" "next";
|
||||||
|
"XF86AudioPrev".action = spawn "playerctl" "previous";
|
||||||
|
|
||||||
|
# Brightness controls
|
||||||
|
"XF86MonBrightnessUp".action = spawn "brightnessctl" "set" "5%+";
|
||||||
|
"XF86MonBrightnessDown".action = spawn "brightnessctl" "set" "5%-";
|
||||||
|
|
||||||
|
|
||||||
|
"Mod+O".action = toggle-overview;
|
||||||
|
"Mod+Q".action = close-window;
|
||||||
|
"Mod+C".action = center-column;
|
||||||
|
"Mod+R".action = switch-preset-column-width;
|
||||||
|
"Mod+Escape".action = quit;
|
||||||
|
|
||||||
|
# Sizing
|
||||||
|
"Mod+Minus".action = set-column-width "-10%";
|
||||||
|
"Mod+Equal".action = set-column-width "+10%";
|
||||||
|
|
||||||
|
# Full screen
|
||||||
|
"Mod+F".action = maximize-column;
|
||||||
|
"Mod+Shift+F".action = fullscreen-window;
|
||||||
|
"Mod+Ctrl+F".action = expand-column-to-available-width;
|
||||||
|
|
||||||
|
# Toggle floating
|
||||||
|
"Mod+V".action = toggle-window-floating;
|
||||||
|
"Mod+Shift+V".action = switch-focus-between-floating-and-tiling;
|
||||||
|
|
||||||
|
# Print screen
|
||||||
|
"Print".action = screenshot { show-pointer=false; };
|
||||||
|
|
||||||
|
# Window focus
|
||||||
|
"Mod+H".action = focus-column-left;
|
||||||
|
"Mod+J".action = focus-window-down;
|
||||||
|
"Mod+K".action = focus-window-up;
|
||||||
|
"Mod+L".action = focus-column-right;
|
||||||
|
|
||||||
|
# Window moving
|
||||||
|
"Mod+Ctrl+H".action = move-column-left;
|
||||||
|
"Mod+Ctrl+J".action = move-window-down;
|
||||||
|
"Mod+Ctrl+K".action = move-window-up;
|
||||||
|
"Mod+Ctrl+L".action = move-column-right;
|
||||||
|
|
||||||
|
# Focus to different monitor
|
||||||
|
"Mod+Shift+H".action = focus-monitor-left;
|
||||||
|
"Mod+Shift+J".action = focus-monitor-down;
|
||||||
|
"Mod+Shift+K".action = focus-monitor-up;
|
||||||
|
"Mod+Shift+L".action = focus-monitor-right;
|
||||||
|
|
||||||
|
# Move to different monitor
|
||||||
|
"Mod+Ctrl+Shift+H".action = move-column-to-monitor-left;
|
||||||
|
"Mod+Ctrl+Shift+J".action = move-column-to-monitor-down;
|
||||||
|
"Mod+Ctrl+Shift+K".action = move-column-to-monitor-up;
|
||||||
|
"Mod+Ctrl+Shift+L".action = move-column-to-monitor-right;
|
||||||
|
|
||||||
|
# Switch workspaces
|
||||||
|
"Mod+Page_Down".action = focus-workspace-down;
|
||||||
|
"Mod+Page_Up".action = focus-workspace-up;
|
||||||
|
"Mod+U".action = focus-workspace-down;
|
||||||
|
"Mod+I".action = focus-workspace-up;
|
||||||
|
|
||||||
|
# Move workspaces
|
||||||
|
"Mod+Ctrl+Page_Down".action = move-column-to-workspace-down;
|
||||||
|
"Mod+Ctrl+Page_Up".action = move-column-to-workspace-up;
|
||||||
|
"Mod+Ctrl+U".action = move-column-to-workspace-down;
|
||||||
|
"Mod+Ctrl+I".action = move-column-to-workspace-up;
|
||||||
|
|
||||||
|
# Workspace scrolling
|
||||||
|
"Mod+WheelScrollDown" = {
|
||||||
|
action = focus-workspace-down;
|
||||||
|
cooldown-ms = 150;
|
||||||
|
};
|
||||||
|
"Mod+WheelScrollUp" = {
|
||||||
|
action = focus-workspace-up;
|
||||||
|
cooldown-ms = 150;
|
||||||
|
};
|
||||||
|
"Mod+Shift+WheelScrollDown" = {
|
||||||
|
action = focus-column-left;
|
||||||
|
cooldown-ms = 150;
|
||||||
|
};
|
||||||
|
"Mod+Shift+WheelScrollUp" = {
|
||||||
|
action = focus-column-right;
|
||||||
|
cooldown-ms = 150;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
21
modules/home/desktop-environments/niri/mako.nix
Normal file
21
modules/home/desktop-environments/niri/mako.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{ config, pkgs, lib, inputs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.desktop-environments.niri.mako;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.desktop-environments.niri.mako.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
description = ''
|
||||||
|
Enable mako notifiaction deamon
|
||||||
|
'';
|
||||||
|
default = config.settings.desktop-environments.niri.enable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.mako.enable = true;
|
||||||
|
};
|
||||||
|
}
|
56
modules/home/desktop-environments/niri/swww.nix
Normal file
56
modules/home/desktop-environments/niri/swww.nix
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
{ config, pkgs, lib, inputs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.desktop-environments.niri.swww;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.desktop-environments.niri.swww.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
description = ''
|
||||||
|
Enable swww wallpapers deamon
|
||||||
|
'';
|
||||||
|
default = config.settings.desktop-environments.niri.enable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
swww
|
||||||
|
swaybg
|
||||||
|
];
|
||||||
|
|
||||||
|
systemd.user.services.swaybg = {
|
||||||
|
Unit = {
|
||||||
|
After = [ "graphical-session.target" ];
|
||||||
|
PartOf = [ "graphical-session.target" ];
|
||||||
|
Requisite = [ "graphical-session.target" ];
|
||||||
|
Description = "Enable swaybg wallpaper management";
|
||||||
|
};
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "niri.service"];
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
ExecStart = ''${pkgs.swaybg}/bin/swaybg -m fill -i "%h/nix/assets/wallpaper-2-blurred.png"'';
|
||||||
|
Restart = ''on-failure'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.services.swww = {
|
||||||
|
Unit = {
|
||||||
|
After = [ "graphical-session.target" ];
|
||||||
|
PartOf = [ "graphical-session.target" ];
|
||||||
|
Requisite = [ "graphical-session.target" ];
|
||||||
|
Description = "Enable swww wallpaper management";
|
||||||
|
};
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "niri.service"];
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
ExecStart = ''${pkgs.swww}/bin/swww-daemon'';
|
||||||
|
Restart = ''on-failure'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
127
modules/home/desktop-environments/niri/waybar.nix
Normal file
127
modules/home/desktop-environments/niri/waybar.nix
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
{ config, pkgs, lib, inputs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.desktop-environments.niri.waybar;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.desktop-environments.niri.waybar.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
description = ''
|
||||||
|
Enable waybar configuration for configuration
|
||||||
|
'';
|
||||||
|
default = config.settings.desktop-environments.niri.enable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
stylix.targets.waybar.addCss = false;
|
||||||
|
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.unstable.waybar;
|
||||||
|
systemd.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.waybar.settings = {
|
||||||
|
main = {
|
||||||
|
layer = "top";
|
||||||
|
position = "top";
|
||||||
|
modules-left = [
|
||||||
|
"niri/workspaces"
|
||||||
|
];
|
||||||
|
modules-center = [
|
||||||
|
"clock"
|
||||||
|
];
|
||||||
|
modules-right = [
|
||||||
|
"tray"
|
||||||
|
"network"
|
||||||
|
"pulseaudio"
|
||||||
|
"battery"
|
||||||
|
];
|
||||||
|
|
||||||
|
"clock" = {
|
||||||
|
"format" = "{:%H:%M - %d}";
|
||||||
|
};
|
||||||
|
|
||||||
|
"tray" = {
|
||||||
|
"spacing" = 8;
|
||||||
|
};
|
||||||
|
|
||||||
|
"battery" = {
|
||||||
|
"bat" = "BAT1";
|
||||||
|
"interval" = 60;
|
||||||
|
"states" = {
|
||||||
|
"warning" = 30;
|
||||||
|
"critical" = 15;
|
||||||
|
};
|
||||||
|
"format" = "{icon} {capacity}%";
|
||||||
|
"format-icons" = [ "" "" "" "" "" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"pulseaudio" = {
|
||||||
|
"format" = "{icon} {volume}%";
|
||||||
|
"format-bluetooth" = "{volume}% {icon}";
|
||||||
|
"format-muted" = "";
|
||||||
|
"format-icons" = {
|
||||||
|
"headphone" = "";
|
||||||
|
"hands-free" = "";
|
||||||
|
"headset" = "";
|
||||||
|
"phone" = "";
|
||||||
|
"portable" = "";
|
||||||
|
"car" = "";
|
||||||
|
"default" = ["" ""];
|
||||||
|
};
|
||||||
|
"scroll-step" = 1;
|
||||||
|
"on-click" = "pavucontrol";
|
||||||
|
"ignored-sinks" = ["Easy Effects Sink"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"network" = {
|
||||||
|
"interface" = "wlan0";
|
||||||
|
"format" = "{ifname}";
|
||||||
|
"format-wifi" = " {essid}";
|
||||||
|
"format-ethernet" = " {ipaddr}/{cidr}";
|
||||||
|
"format-disconnected" = "";
|
||||||
|
"tooltip-format" = "{ifname} via {gwaddr}";
|
||||||
|
"tooltip-format-wifi" = "{essid} ({signalStrength}%)";
|
||||||
|
"tooltip-format-ethernet" = "{ifname}";
|
||||||
|
"tooltip-format-disconnected" = "Disconnected";
|
||||||
|
"max-length" = 50;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.waybar.style = /* css */''
|
||||||
|
#workspaces,#window,#clock,#battery,#tray,#pulseaudio,#network {
|
||||||
|
background-color: @base01;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 0px 10px;
|
||||||
|
margin-top: 3px;
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 0 5px;
|
||||||
|
background: transparent;
|
||||||
|
color: @base05;
|
||||||
|
border-bottom: 2px solid transparent;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
border-bottom: 2px solid @base05;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
padding: 0 5px;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
@@ -13,11 +13,30 @@ in {
|
|||||||
Enable podman configuration
|
Enable podman configuration
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings.services.podman.systemctlAliases = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Enable podman systemctl aliases configuration
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
services.podman = {
|
services.podman = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.shellAliases = lib.mkIf cfg.systemctlAliases {
|
||||||
|
scu = "systemctl --user";
|
||||||
|
scus = "systemctl --user start";
|
||||||
|
scur = "systemctl --user restart";
|
||||||
|
scust = "systemctl --user stop";
|
||||||
|
scusts = "systemctl --user status";
|
||||||
|
|
||||||
|
jcu = "journalctl --user";
|
||||||
|
jcur = "journalctl --user -xe";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -23,7 +23,7 @@ in {
|
|||||||
font-awesome
|
font-awesome
|
||||||
dejavu_fonts
|
dejavu_fonts
|
||||||
roboto
|
roboto
|
||||||
(nerdfonts.override { fonts = [ "DejaVuSansMono" ]; })
|
nerd-fonts.dejavu-sans-mono
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -29,7 +29,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
inputs.stylix.homeManagerModules.stylix
|
inputs.stylix.homeModules.stylix
|
||||||
];
|
];
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
@@ -42,7 +42,11 @@ in {
|
|||||||
stylix.base16Scheme = lib.mkIf (cfg.theme != "theme") "${pkgs.base16-schemes}/share/themes/${cfg.theme}.yaml";
|
stylix.base16Scheme = lib.mkIf (cfg.theme != "theme") "${pkgs.base16-schemes}/share/themes/${cfg.theme}.yaml";
|
||||||
|
|
||||||
stylix.autoEnable = true;
|
stylix.autoEnable = true;
|
||||||
stylix.opacity.terminal = 0.95;
|
|
||||||
|
stylix.fonts.monospace = {
|
||||||
|
package = pkgs.nerd-fonts.dejavu-sans-mono;
|
||||||
|
name = "DejaVuSansM Nerd Font Propo";
|
||||||
|
};
|
||||||
|
|
||||||
stylix.cursor = {
|
stylix.cursor = {
|
||||||
package = pkgs.phinger-cursors;
|
package = pkgs.phinger-cursors;
|
||||||
|
5
modules/overlays.nix
Normal file
5
modules/overlays.nix
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
@@ -23,6 +23,7 @@ in {
|
|||||||
git
|
git
|
||||||
yazi
|
yazi
|
||||||
zoxide
|
zoxide
|
||||||
|
home-manager
|
||||||
|
|
||||||
just
|
just
|
||||||
];
|
];
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
{ ... }:
|
{ outputs, config, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
@@ -24,7 +24,43 @@
|
|||||||
./desktop-environments/cosmic.nix
|
./desktop-environments/cosmic.nix
|
||||||
./desktop-environments/hyprland.nix
|
./desktop-environments/hyprland.nix
|
||||||
./desktop-environments/gnome.nix
|
./desktop-environments/gnome.nix
|
||||||
|
./desktop-environments/niri.nix
|
||||||
|
|
||||||
./display-managers/default.nix
|
./display-managers/default.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
options = {
|
||||||
|
settings.hostname = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
description = ''
|
||||||
|
Set hostname of the system
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
nixpkgs = {
|
||||||
|
overlays = [
|
||||||
|
outputs.overlays.unstable-packages
|
||||||
|
outputs.overlays.additions
|
||||||
|
outputs.overlays.modifications
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
nix.settings = {
|
||||||
|
experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
|
||||||
|
substituters = [
|
||||||
|
"https://nix-community.cachix.org"
|
||||||
|
"https://cosmic.cachix.org/"
|
||||||
|
];
|
||||||
|
|
||||||
|
trusted-public-keys = [
|
||||||
|
"cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="
|
||||||
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.hostName = config.settings.hostname;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
{ lib, config, inputs, ... }:
|
{ lib, config, inputs, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
@@ -14,15 +14,20 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
# imports = [
|
||||||
inputs.nixos-cosmic.nixosModules.default
|
# inputs.nixos-cosmic.nixosModules.default
|
||||||
];
|
# ];
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
services.desktopManager.cosmic.enable = true;
|
services.desktopManager.cosmic.enable = true;
|
||||||
|
|
||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
COSMIC_DISABLE_DIRECT_SCANOUT = "true";
|
COSMIC_DISABLE_DIRECT_SCANOUT = "true";
|
||||||
|
COSMIC_DATA_CONTROL_ENABLED = 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
wl-clipboard-rs
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
49
modules/system/desktop-environments/niri.nix
Normal file
49
modules/system/desktop-environments/niri.nix
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
{ lib, config, inputs, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.desktop-environments.niri;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.desktop-environments.niri.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
description = ''
|
||||||
|
Enable niri desktop environment
|
||||||
|
'';
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
inputs.niri.nixosModules.niri
|
||||||
|
];
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
nix = {
|
||||||
|
settings = {
|
||||||
|
substituters = [
|
||||||
|
"https://niri.cachix.org"
|
||||||
|
];
|
||||||
|
trusted-public-keys = [
|
||||||
|
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.niri.enable = true;
|
||||||
|
programs.niri.package = pkgs.unstable.niri;
|
||||||
|
nixpkgs.overlays = [ inputs.niri.overlays.niri ];
|
||||||
|
environment.variables.NIXOS_OZONE_WL = "1";
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
wl-clipboard
|
||||||
|
wayland-utils
|
||||||
|
libsecret
|
||||||
|
cage
|
||||||
|
gamescope
|
||||||
|
xwayland-satellite-unstable
|
||||||
|
swaybg
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
@@ -7,7 +7,7 @@ let
|
|||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
settings.display-manager = lib.mkOption {
|
settings.display-manager = lib.mkOption {
|
||||||
type = lib.types.enum ["sddm" "cosmic-greeter" "gdm" "none"];
|
type = lib.types.enum ["sddm" "cosmic-greeter" "gdm" "none" "greetd"];
|
||||||
description = ''
|
description = ''
|
||||||
Specify which display manager to use
|
Specify which display manager to use
|
||||||
'';
|
'';
|
||||||
@@ -18,5 +18,6 @@ in {
|
|||||||
./sddm.nix
|
./sddm.nix
|
||||||
./cosmic-greeter.nix
|
./cosmic-greeter.nix
|
||||||
./gdm.nix
|
./gdm.nix
|
||||||
|
./greetd.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
35
modules/system/display-managers/greetd.nix
Normal file
35
modules/system/display-managers/greetd.nix
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.display-manager;
|
||||||
|
in {
|
||||||
|
config = mkIf (cfg == "greetd") {
|
||||||
|
# systemd.services.greetd = {
|
||||||
|
# serviceConfig.Type = "idle";
|
||||||
|
# # unitConfig.After = [ "docker.service" ];
|
||||||
|
# };
|
||||||
|
|
||||||
|
systemd.services.greetd.serviceConfig = {
|
||||||
|
Type = "idle";
|
||||||
|
StandardInput = "tty";
|
||||||
|
StandardOutput = "tty";
|
||||||
|
StandardError = "journal"; # Without this errors will spam on screen
|
||||||
|
# Without these bootlogs will spam on screen
|
||||||
|
TTYReset = true;
|
||||||
|
TTYVHangup = true;
|
||||||
|
TTYVTDisallocate = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.greetd = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
default_session = {
|
||||||
|
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --cmd niri-session";
|
||||||
|
user = "greeter";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
18
overlays/default.nix
Normal file
18
overlays/default.nix
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{ inputs, ...}: {
|
||||||
|
# This one brings our custom packages from the 'pkgs' directory
|
||||||
|
additions = final: prev: import ../pkgs final.pkgs;
|
||||||
|
|
||||||
|
# This one contains whatever you want to overlay
|
||||||
|
# You can change versions, add patches, set compilation flags, anything really.
|
||||||
|
# https://nixos.wiki/wiki/Overlays
|
||||||
|
modifications = final: prev: {
|
||||||
|
};
|
||||||
|
|
||||||
|
unstable-packages = final: _prev: {
|
||||||
|
unstable = import inputs.nixpkgs-unstable {
|
||||||
|
system = final.system;
|
||||||
|
config.allowUnfree = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
3
pkgs/default.nix
Normal file
3
pkgs/default.nix
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
pkgs: {
|
||||||
|
|
||||||
|
}
|
@@ -1,13 +1,22 @@
|
|||||||
example-key: ENC[AES256_GCM,data:zQ4Sb+IOxM/JB/0KZQ==,iv:SgpzREfqbgBgd8psV7Optl4nDpMmDBDsitGQZLLSAL0=,tag:mZ48ExMkupiuMqJvgoIK+g==,type:str]
|
example-key: ENC[AES256_GCM,data:ijBs+W5luWy8bD2u9Q==,iv:SgpzREfqbgBgd8psV7Optl4nDpMmDBDsitGQZLLSAL0=,tag:E8lN8xCOye2UPs2x21c0Jw==,type:str]
|
||||||
containers:
|
containers:
|
||||||
pingvin-share:
|
pingvin-share:
|
||||||
oidc-secret: ENC[AES256_GCM,data:jO5fvIK/1XnFweqKvedPMED0xvsqErjDP+eT7wAwXFuREbS6KakwY7pUzi20wdI0,iv:SnnmXiZoawpZV83483esQ1TIaFTACiIUcA6hcoXsw0I=,tag:cC/ftyj8jlK1re/rX4IiEw==,type:str]
|
oidc-secret: ENC[AES256_GCM,data:V8bFxcEfWEJvt0ZRnHRNQhQ2qCsivngRkKyDhupz9HFxBw0BZLb7U2mDothtE1XS,iv:SnnmXiZoawpZV83483esQ1TIaFTACiIUcA6hcoXsw0I=,tag:M3h/ueLRZx1oOzW2WJjJDQ==,type:str]
|
||||||
|
linkding:
|
||||||
|
oidc-secret: ENC[AES256_GCM,data:2KP6B7s9fKyg6PHKzWvvqe5TcrFvl80goQ8Gy91pW6CwOZWywcNnwsnrrSjpJL9O,iv:IlbwHY8BXB93L0UYDU9jmbXX7s6ovHQp9BUAmDBhgwk=,tag:0pnhkJVVQTYd5Jy9yPz+Kw==,type:str]
|
||||||
beszel:
|
beszel:
|
||||||
key: ENC[AES256_GCM,data:rRtx8Jx/aHOqeRa9dlyc42/62UwwqhkiLDLnZCM65rpW5nL5cQG2dS81YOMVPrE7Sa/cHlE3bvxqETaxMmsJGYukjmZph8skpF0qukCDe4Q=,iv:OS/+jF4MtwPdijXPpG2pgpJQTYyer9bms97B+kO8XhI=,tag:va7jCSGrXp2YKBlYzLI39g==,type:str]
|
key: ENC[AES256_GCM,data:BfhgCX2Ws/xpQ2Nz+qJv04Ag99pmOtD8js2Yq0vNEoRb7KGeoeBiJSepbXPZNWkdyRztXA/LPEbcVCQwmCzu3+emcAvsVRTX41Bxt9nQ2Kw=,iv:OS/+jF4MtwPdijXPpG2pgpJQTYyer9bms97B+kO8XhI=,tag:AYhQltmzceVaTuM//mtFYw==,type:str]
|
||||||
|
karakeep:
|
||||||
|
nextauth-secret: ENC[AES256_GCM,data:Izp5kO9dhD28mUzHOS4TqBINbbQ03spP865nrfUWbhqpx2dgW/rbExFZDXmgp1tX,iv:98su3bR8jMLr1jF5XBiNePMZ7qz4pMDQ6B4i8rMxIQQ=,tag:gyzJA6dsKy6YWkE8r5JXqg==,type:str]
|
||||||
|
meili-key: ENC[AES256_GCM,data:47t3gk/189dmtriOb37MT4XC2pwBdwr2n+22t3K7q8Hf6tX2iHaq6zg1EV6W51F/,iv:OjAmWJWmGtIsSeIFWNlqT8hv8H8LLz+WQtvlvyu9Lx0=,tag:v4acQvlJPK64l0yCVpBqCQ==,type:str]
|
||||||
|
wrbapp:
|
||||||
|
private-key-id: ENC[AES256_GCM,data:VEPNv774ZI+5IAM43BSKJr7LoGYquUpLTk3iE4xObSscDtr/pVTnZQ==,iv:HVZHRU3v/REhrb9DTsKLyfryROU2WkPzg6tM0wz8Myc=,tag:rfjNGz5B526nvLw4Pj8hQw==,type:str]
|
||||||
|
private-key: ENC[AES256_GCM,data:vZIoRJH6bc/RBeZxr+g5mLWdBYWERetRHuoqntE5Ah1FnDmmShpSwBS8wYNaAEbq2FSDSe0RSbJ5OArmnhMnp8sm/VgVjY+AYm0IqRKkLCyf4sReCZ3duHcFnO9PjYULM2ABqAUofQqFqDD3BV44eFLeTudqY3fE8lCsDT0kdzKyyNVy3esQfbmTOTBcWVc54tI8hXcKsYGPMmzaxpnYqB9pc52KI7iOeSDoXxi7cjvHKPsYBLiK71oYi8T4JtwbR/uaT02kwY9cBNWThdaUpotYFO0D71pbLjQZ6gqEcWLSeUpUROwtmWoPPmR89cwUBuSbce9ovhsYlbqAE/AjwoJFUxuhZHa6wAdsjswR9wWXs9TZFsIzQVq6uGP3S80N1z2QPQnbT4Zha29V78iQXN8/Aq27/MjCtebgnVC9+mFY0zM4/5DpTT0D9HsNYixoUmDq5CIU1VS4JB2jgC5CublSCgs2ciXEwXTA/7nfctdIrE8g1UGPPw4wk34EAIvXz+tMdar3u+fQB9b+J6BuCW4TFVAUe9Nb6SHdIeLxgCDYbtGWSDY7laLNBSWrN0JY5t4ZMXlKVYHgGCdPcmJRrS4KE7LWjLrrVOzUiIslrBRYmNNrO5LJrpBQ8UDGUVVbGMH8UCFpPlytXskhjG5msioCOQ2ctVvoTrvvA1T7zVqaMZLdP1Lzxmw8brhHX34hu5q8z+lO/whrZxgqPbZ1WZrgoBGgAwp7+tn8Ddsq/8Ui8i8g89lny45ttjGHyroh2qlt3kBTJdU71Qg8JiiWgS6Wk0AbtkGO08SGJmMgJ5CtXo0zmq6pfrDmgursM5ItuVtvutZDyD+vz1BFdrli6ZNTAXVVq5bbCGUuKAM4AgHCJ1yS75l336xUxsIiTaLD9VDHd+XWetHXQWXk8xv9y02puiQAp+fJFISGn8TZya2CigW7OsibYSc3bFaZjm72pgfFhDm0a1q9AYTuF49PuLKi/McuJctuOc/iF6mbLnotIOF6Cc64/Iie1MCjX/IJzCZWlXJE8+0n8FTR9t+d1f4EBMxL8Z+h8pp4r8B3u+8ZKIUiCTmc+PZ0Mmr+acTOjY+X04RcrVcwQz49172NHwI3/C2we0ZUaZTjxTm253ikif/xcxYjxlCCP6WERR1rI0OMFr5RvA0+2RkzIBmHQtDlHNk11Tfauz7jyWkh4RfG9PYFr40khyNSD9vX4ePWTeIEQxMcdHLlRztLc3lbxiKumivHvLYlJmZ0eodp0/RpWv1l3VyVEsvqB04lKYzm42uJe6NkWTF0l+7XCWem7IchWWxrKW0P9UqLjrN3FAif2NVu6HjAtexMLp82yRUJFiLZufssm3QB91MAUebZOIW4fURrJOQpRj2xo3p7BSe+0nb4Hd00W187Q3HHbwZXK3yPaGX/wRD3cYFMku9AMWXgewHXwynkBITk1eEiZpwy7eyCBtxaScmglEbxtTEAs7PXLeUD7iQ0eM3MV4qRL3Nu/LRUTjpKZDXs22FpHbT3jUw24JgzB7jeJiYtEa/zIlDGvY3tPuhCruvJA+W8f8TWzTYVZoJjBhwCukD7l8APeiBNT58ulUPUz8Fn2lrUmujM3pXAJUSYknmUo4urBh/zQq5DCIbAWvvrU/OHHQDu547UTjguLMbqkAVF4nlb9RPdaBaUWLPsYDNHFGuHLuNvA5b6ymMa3oDuLZZVWT3FyGXQui4sNRQceKasEH3reSOMPvNUQ0af604rzlGrJlMX8QDq2GZR/Os+jdJwWahDlwincdEaRikAF6PD0vHlKGkcvm/E278ClSRQ2l2raF54B1EZ7NZ/+t5HaztTrx85xnt1l5hA/Gms9z58PBKi69oIv389KLxhviQWUo0PsEpeFx8KIk6h6FdjJwvzKaYpmjNwt4kxK8fI73rcjaDer+FhNYsUzluKmk4KNnWSMZPTEIHRnF9RrXPbw5x+nKrJrMx3tBswBAvif5xK5jlrnIsyo3f+bc3eXpioccxidCMMmKwSzcRj8u7N9Tevsvm2NmgCgawTLubisWkOE75jJuHexWDzU6jg/ArBczKXci0L5vCKC+Aq+U9q13Hgl5hbunlKq7jVPwemj6Ko7yEZ5ohw4UhLAKgSk1uN3XXQ2f7vQvo0zArEU567uWfGp6Jw3JHGL0AxjKCPvyFqd/AhqEFj1rS7XAx4yR1Ws8cDg9Y+tA/ils8FF4m9Th9xShLFNl3zphoU8z7OB+qrqzFirbKJ0uas1j7z/7962DGhg4QOicdPvNda,iv:rMdIIc6MszxdOGX5rPQNqNrK7RbleEbKhFVcx4oWUZk=,tag:ti7O+u8PYNj2eKF7+jUfWQ==,type:str]
|
||||||
|
client-id: ENC[AES256_GCM,data:rVWPkR8RUhJL0vsUFNxBuqgfJBm4,iv:7WbzSt04QPcEf86eduT3R3K29tfVlQ6bWdBjSAHIf40=,tag:6OiHIR+7ncX4gMnH6ePj8w==,type:str]
|
||||||
paperless-ngx:
|
paperless-ngx:
|
||||||
db-password: ENC[AES256_GCM,data:H21HVshmFuWJ5qNIrjm0VMGHEsT7cCvScgamU+CAaNZ6j5ux/r4xiF9zP7Qh40sKTOvyoWGTcHGPHE5ClpGuQA==,iv:tDIRfThBOfHr+gGRqywlHAk/x4MkhHRFsJEp5nnlGPA=,tag:XbYKD90l3u93Ur4VOqOn6w==,type:str]
|
db-password: ENC[AES256_GCM,data:Trlr577CSZHBdaIya/UwAYGPq7Td+f7k7QeNWbpz41sIEEuBGtiOXaAi17292E2nhBCLMDsrugGVusugBo+Z7g==,iv:tDIRfThBOfHr+gGRqywlHAk/x4MkhHRFsJEp5nnlGPA=,tag:3LeYyRjgA/ZOIaFsrcEZGQ==,type:str]
|
||||||
secret: ENC[AES256_GCM,data:+1hriBiSbt+zUjEkBTEM90PFNlxfNwRAmz8wHyeyOnq6ThI+PtlDu83sunBFL2FUYJX0N4h3R4FvJBUkrPr0NQ==,iv:zzhFaoLnskspp1S291KABLZITgcof63cjShnsZrlAmw=,tag:+aafTLgZVBWeclQLQvVlQg==,type:str]
|
secret: ENC[AES256_GCM,data:eS/hG9A87fcop0Wey8HVLM8wwVQfzN9pmxhos9GkmtW0b9lsrjq/A2k2ngyJFNN+YKTqVIATD0VbQ28WvWRj1A==,iv:zzhFaoLnskspp1S291KABLZITgcof63cjShnsZrlAmw=,tag:ZxHsyxJSfVVSaOTlDuByCw==,type:str]
|
||||||
openid-providers: ENC[AES256_GCM,data:bpUnVFvvMUTkjApqkWi8gcVXgvaM8d/bcuoiQgco/UJZBQqbSEQys8BSb9yaSx8HAIZEcWjpb4N5FEb3P1uH8de4Nq7nlAg+GdDuS4WjInF5KOWQY9p0T4HfnMJyfx7zIiWW7nPSaxPNtMNZxQiXnW8oJr1fmz/O49T4egw1tdxWj6CO4d+T6aRKBsS26Ie1HYJ6BTT1B6qiIgiBpAvXh558nduk3tIz1blTCeV9XpnZgKlj45mS+g6+Eqqj0ATI7CC5y5CEVaMs1rC0NzlVm7/rEV4dBpVlmHtN5KE4aRMiH3YUYnJ5Nbo7EVfPQ7xkEPRmIOtXzXut8Hpml3QkFhdvHH5ZbworFrwL+LHm4GpHbUyCGc6OkWZ9+/mILos3o4BaI0qLQRchoGddvx5dOJyn5lJj3AfRgLB8zu9JSXZDre/LHovcJwpzmOip09mmjk7CGjea2f8wDnnX2HRXlM9alUbwlvXU69+MhTJBmqWe4kCBB8riz5gHRg2lQRMnMg64roPv7C7B1VoHANISDA3LHG4hocXknO69rBnjTjIYJNblDEtTztSTJdQvYb2102gFrxg4Grxu6/gQcXTbe4DScqUmIhebk98Nc7xlca9l+FGzmFB8cbznFFiaLE3wRK3G7g540+GOPoyXXxTGp3l5cOi6VE8cDd+HK5KDBnlgFecR/5QCRw40e9qvmCSttaxDCme+YrFHW248jgVwWvsNiFT5bBR4phS5c0VjrHdcy+1zY3R6GsnmXMfonIYHcq8apMhqVCdqHAzV2Qij4/RIyqCQoOeX86fi/pdDCvtMEbYt2nVqITmmxgOFRk4GSbLcjkbKG0SPVQWjGGXNkB/MfhUsvHG7E00IrAt1DgFEzqSar4Ildd7D4MzURJZxWNqoES0IhyVcxOgweCTakXM9QHqt,iv:ba2bri2F/B6Sp3HfpXVWZ/WMVFOPF4+DyAtdS56yNqQ=,tag:1uW6iDXiZm0vXUjmJPBchw==,type:str]
|
openid-providers: ENC[AES256_GCM,data:AsAVxsJ6mtjj2J2CaIYeizMTyEv4bb4RUBYOIP8enB1GbGbZ7dJWvRAAgjwoYZxPkBgc8/WeVQQUzrhhg/eoKFJRQSn3e+p+83GfymVJCdQNy1yCQFqe7IwnbVBX9unHcWiUPGo1lhU4CWKDVqoL56Zt3gVoJo/cNVR4Se2xlY1TuYl7YoSm2E3LjX5eTwamChPldON5sER23dh3IRCzK5A+ep4aGyqvMdiW9U6kHyuFBEd9P8ftUHY7ZrOu41nPOg8ezbu8w8PEI8oxxSPMFszwfroIaa41Nxxgheft6SCI+/570WVw+pAaW3gxEjBw5+qv07yshJOFEC1dYVTvZK5hWRAdVcpSl7ejN+KxAANvviAxA9tvJFAyHhfvoxd3YhG9BKVWLI+ZCUelcUY80cMFXt1By/WOjxaisTuqw8JCaEICrTNevAqLN4xfvYGLyNoZLGgqCtXjT9apXcwP1YYoxDGRDCEGb46/CuUvLMLa9VHZXY4wKJTgxdqq5yR/VQMD98ATBatzfrMsfJyBuJYNXjGuPhh9kobTIThDF4vJehWevIbroSL9GGeJd5CJAODo8vAu4pRPvkCHGQQg0NGwMo1GRY3OXm5TqHBlOAHu/qGe0zd/3DS0bL+jU/qR6JpzEzv95OVxRzbyGJvVTbCGkzavvxS9IiDc3buCNuHj+RFo6xFLFl5XPPH+RvH+WtCmXDrXJJ1KqVzWEbaB0M6tGLL3gxyqUXB6zxJkCIugL5Jq7SLIdvnBRebXvDuVqTy4wRjMtHdAhsZ/f9lDxTa2QFmewg0sJhBsRt95LVlRmcZeDEy5HUqEePfhbuJCExT0ZPRmPVnKF4lphHKzRDROt5DAz6DvYaWbDtRPtTHNFVZqyZXPnarn1Xc+Iy3bfIcK+cOL2RyF/nlYnOmoIFqa5b9a,iv:ba2bri2F/B6Sp3HfpXVWZ/WMVFOPF4+DyAtdS56yNqQ=,tag:k+tPX9QDGhgLYgNC/C9kKw==,type:str]
|
||||||
sops:
|
sops:
|
||||||
kms: []
|
kms: []
|
||||||
gcp_kms: []
|
gcp_kms: []
|
||||||
@@ -17,14 +26,23 @@ sops:
|
|||||||
- recipient: age1cs2p7tgk9356tjmet6526k3ghwq9we82nz6z7qggqns656paku6sx30tkg
|
- recipient: age1cs2p7tgk9356tjmet6526k3ghwq9we82nz6z7qggqns656paku6sx30tkg
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkZ3BnZ3JoT3l2RmQrSzJV
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGWWk1WE8wS1RneSswWmhj
|
||||||
aUk4MEV1aUxKUXBhLyt4T1FBT0pyWTdxYmpFCkdlMm9qYUxtR0UvblhJSlVaMno4
|
TTgzYk1tbEdiRkl2WGcwVU9RY2YwZk9ZTzJnCm8yWDVlMXIzb1hEOFI4WVl2N3NN
|
||||||
NGtUcVZSaUprZ2lEeVpPaUFNcGlxSFUKLS0tIEcydm1tR0xxM2JpYzZBblBXSUZF
|
Ny9VUDI1R3JTeVRmL2lsQkk0dGU4bVkKLS0tIDRxT0xzdXZUUTJxcjlDdHRJc25D
|
||||||
bGpsMnpoQWlxbmlobVdVSjU2ZWp1dGMKql+6ZqtuixZ9TJgJMaTOFsB0gsLLvuqE
|
aXB4WTVoYUNXRFVCZkhnYXlsV1MxaW8KFJf3ufkinpKEG8YAAjGURUq/+p+RpaAF
|
||||||
ZQikUHunrP8d5n/TvzL4VyIF2Oqy+cjTnjX/9fcqsjB6w3oY4qDXkg==
|
kUTvl95nvmED73OcLLn6wCssoSPsi2iJWWY/7QeBh5KbGjz1ofTb1Q==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-04-30T13:11:24Z"
|
- recipient: age12gjtehffgmepyga9vaqkurn9fyvte8n7wsklmg866z5usezvuqlsr2m5mp
|
||||||
mac: ENC[AES256_GCM,data:JA1T9q0otjshJWyb8fingvD0CmYyTKdhvNMI3RVoZaMEAwBV4AwMCftG9zWMOgof4NcG4EhdOI7KG7qhctpo25K9j5IhaY8GA/p7BStBopuowTTUZecWHxXy4OFEtuW1PXBGrkgfkupV+RZfeisoa1gGFhQ2tW+fOqtoTFFCLHA=,iv:CM5zgvA2krzLHGiVeiSTVzcswwk9+QJmNCr+3hqw+To=,tag:H0x1UasoXNb38+Cq0CP0YA==,type:str]
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBldkJ3c2E0Yjdvd3dhd0hM
|
||||||
|
WTVCdFkxSGU1N3ZpT0s4UENmUjRTNGJYWHpnCkJna3lCTjR3MlAwZU02TkV5RnhK
|
||||||
|
anR3dVg4MDN4Wk05WDdEOTlBUDNRMmsKLS0tIFFUL1FVOTcxK1NkaEJOaGdRbGdn
|
||||||
|
SzhxRnVPMHg0VzJzZWhYdGZndHVIL0UKgloohouQu5rN48hy5FvouHlZO1RoIG9W
|
||||||
|
DlMH50012l4kcQ3ggP0BwuWRUq4FQ/bEpSBZoIOQriPmPQQp1qXOdA==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
lastmodified: "2025-05-20T15:30:19Z"
|
||||||
|
mac: ENC[AES256_GCM,data:LHel3MmVvQ/TwEYQePjCNRZxmipPyJtssltyAIjSqdxSN6s7Kp4rbnAWSM6D/k7fVtasCCmWcqlbnHBH+M06/dIGhhjjL7HRPBj0jKgDlct7FshHAI5m+ZjrWMyzKOlKUj+2Il1d7VCdMKvC10jXoylpiunaHksaQMvagWAXDFc=,iv:0y/VL/eUw7p+u/ifnzXbZIyEfZNTv0aV5w7A9FT9A4w=,tag:RLAPe1C3DXOHjhLWM8TfEA==,type:str]
|
||||||
pgp: []
|
pgp: []
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.9.4
|
version: 3.9.4
|
||||||
|
Reference in New Issue
Block a user