Compare commits

...

245 commits

Author SHA1 Message Date
Benjamin Bädorf 5da339191d
Add changed vi keybindings
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-07 13:14:30 +01:00
Benjamin Bädorf fb01e684a8
Working bash system 2023-02-03 01:31:34 +01:00
Benjamin Bädorf 59adbfe8c0
Merge branch 'feature/bash-blesh-starship' into b12f-bash 2023-02-03 01:14:07 +01:00
Benjamin Bädorf c434d1769f
Update drone runner secrets
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-02 23:37:40 +01:00
Benjamin Bädorf a97bf09324
Merge branch 'main' into b12f
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-01 13:52:00 +01:00
Benjamin Bädorf 8279cb781e
Remove git conflict marker
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-01 10:48:40 +01:00
Benjamin Bädorf d249983e20
Fix allowUnfree
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-29 19:55:22 +01:00
Benjamin Bädorf 7da4fae07a
Allow unfree 2023-01-28 22:46:46 +01:00
Benjamin Bädorf 7d09488513
Fix main merge 2023-01-28 22:34:24 +01:00
Benjamin Bädorf 9b53a8c982
Merge branch 'main' into b12f 2023-01-28 22:27:52 +01:00
Benjamin Bädorf bd7b864927
Enable terraform infrastructure management for pub.solar 2023-01-28 22:11:05 +01:00
Benjamin Bädorf 5ad8c1b30f
Add digikam 2023-01-26 12:42:10 +01:00
Benjamin Bädorf 8141be1391
Update virtualisation, offlineimap config, and signature 2023-01-16 23:54:08 +01:00
Benjamin Bädorf 4d28cb191d
Update USB mouse configuration for chocoaltebar VM guests 2023-01-02 20:29:01 +01:00
Benjamin Bädorf 992fc5ad9a
Update flake lock 2023-01-02 20:28:47 +01:00
Benjamin Bädorf d043855b44
Merge branch 'b12f' of git.pub.solar:pub-solar/os into b12f 2022-12-11 22:10:56 +01:00
Benjamin Bädorf d47b597222
Add inkscape 2022-12-06 20:09:25 +01:00
Hendrik Sokolowski 371e398aeb
start on UTC 2022-12-06 12:30:59 +01:00
Benjamin Bädorf 12ebe35ece
Update paperless 2022-11-28 11:39:28 +01:00
Benjamin Bädorf 3960ae45c9
update factorio settings 2022-11-28 11:39:21 +01:00
Hendrik Sokolowski 99994a67b1
Fix shutdown units 2022-11-28 00:38:17 +01:00
Hendrik Sokolowski 0e661856bf
Fix shutdown units 2022-11-27 23:35:12 +01:00
Benjamin Bädorf d76c82bcbc
Fix droppie shutdown timer 2022-11-27 23:11:52 +01:00
Benjamin Bädorf d4303ccab3
Merge branch 'main' into b12f 2022-11-27 22:35:23 +01:00
Benjamin Bädorf fc21385ae6
Add nix-output-monitor 2022-11-27 21:36:59 +01:00
Benjamin Bädorf b416e63d18
Add shutdown timer to droppie 2022-11-27 21:36:46 +01:00
Hendrik Sokolowski 60ca29289e
Backup workflow improvements
* move tunnel for nextcloud-web into separate file
* add script to check for running backups and shutdown server otherwise
2022-11-27 21:18:45 +01:00
Benjamin Bädorf e10f277854
Add crew@pub.solar config 2022-11-09 20:25:44 +01:00
Benjamin Bädorf 5630ed8d09
Start new factorio game 2022-11-09 18:23:12 +01:00
Benjamin Bädorf 47abcaba6c
Update flake.lock 2022-11-09 18:23:02 +01:00
Benjamin Bädorf 490f064940
Merge branch 'main' into b12f 2022-10-26 15:59:58 +02:00
Benjamin Bädorf 56fa3c404e
Add solaar for logitech devices to user ben 2022-10-24 21:52:40 +02:00
Benjamin Bädorf 57016868be
Use FF from latest channel 2022-10-24 21:50:27 +02:00
Benjamin Bädorf 068344d7a2
Update USB devices for VM handover 2022-10-24 21:44:40 +02:00
Benjamin Bädorf d25308c87a
Add local https openproject development config 2022-10-24 21:41:11 +02:00
Benjamin Bädorf fcda8886b2
Update lockfile for updated flake.nix 2022-10-17 17:09:31 +02:00
Benjamin Bädorf d7bbd78486
Merge branch 'main' into b12f 2022-10-17 16:01:09 +02:00
Benjamin Bädorf 83c3fb466e
Add tor to paranoia mode 2022-10-17 15:59:54 +02:00
Benjamin Bädorf eb287f9850
Add tails VM 2022-10-17 15:58:03 +02:00
Benjamin Bädorf 87c3630dfb
Add factorio 2022-10-17 15:56:48 +02:00
Benjamin Bädorf f62a1d30f9
Add inkscape to biolimo 2022-10-03 15:51:38 +02:00
Benjamin Bädorf 61417fbd0e
Fix Droppie wifi 2022-10-03 03:56:53 +02:00
Benjamin Bädorf 0f2a17c81b
F1 Droppie 2022-10-03 03:09:12 +02:00
Benjamin Bädorf ed8543aa16
Use wpa_supplicant for biolimo 2022-10-03 02:53:40 +02:00
Benjamin Bädorf 2c5b015e7d
Merge branch 'main' into b12f 2022-10-03 02:49:55 +02:00
teutat3s 633869a8fc
Add another of hensokos ssh keys to user yule 2022-10-02 04:08:53 +02:00
teutat3s 010b76e7df
Revert "Fix user for droppie secret file"
This reverts commit 1c3667ca36.
2022-10-02 01:41:07 +02:00
Benjamin Bädorf 46b35da3bf
Add hensokos ssh key to user yule 2022-10-02 01:00:49 +02:00
Benjamin Bädorf a154e951a5
New yubi main ssh key 2022-10-02 00:04:29 +02:00
Benjamin Bädorf b8ab1d87e2
Merge branch 'main' into b12f 2022-09-13 15:14:06 +02:00
Benjamin Bädorf f230280170
Virtual coming-out I guess
they/them from now on pls
2022-09-12 12:14:07 +02:00
Benjamin Bädorf 341f88b21a
Merge branch 'main' into b12f 2022-08-29 17:00:00 +02:00
Benjamin Bädorf ce2a1190eb
Merge branch 'main' into b12f 2022-08-25 23:48:17 +02:00
Benjamin Bädorf 8a5064fbf5
Merge branch 'feature/ci-runner-onecommit-test' into b12f 2022-08-25 15:26:22 +02:00
Benjamin Bädorf 581a88293e
Import the full environment again 2022-08-25 15:17:17 +02:00
Benjamin Bädorf f2a44a4b34
Fix swapfile for chocoaltebar 2022-08-25 15:17:01 +02:00
Benjamin Bädorf 391749bba2
Merge branch 'main' into b12f 2022-08-25 11:59:06 +02:00
Benjamin Bädorf b2daa8d2db
Merge branch 'b12f' into feature/ci-runner-onecommit-test 2022-08-24 20:45:05 +02:00
Benjamin Bädorf 6b0554f492
Merge branch 'main' into b12f 2022-08-24 18:48:59 +02:00
Benjamin Bädorf b7d2a48d4c
Fix hibernation for biolimo 2022-08-24 18:45:34 +02:00
Benjamin Bädorf de40b08d06
Fix hibernation
The resumeDevice and kernel `resume` parameter were being used wrong.

Only `boot.resumeDevice` is necessary, and it should point at the _block
device_ that holds the swapfile. If you are running on encrypted
volumes, this means you will need to use the name of the *decrypted
block device* on which the swapfile sits.
2022-08-24 18:43:11 +02:00
Benjamin Bädorf dad2b6ad8a
Merge branch 'main' into b12f 2022-08-24 01:20:39 +02:00
Benjamin Bädorf b012b8bfa7
Add laurakirst.de 2022-08-23 23:18:31 +02:00
Benjamin Bädorf 1c3667ca36
Fix user for droppie secret file 2022-08-23 19:10:57 +02:00
teutat3s e380709023
yule: add cloud.pub.solar public ssh key 2022-08-23 18:59:18 +02:00
teutat3s d83e408e44
droppie: fix systemd wantedBy
without this, the systemd service does not start after a reboot

add cloud.pub.solar host key to ssh knownHosts
2022-08-23 18:58:23 +02:00
teutat3s 2b3a1d827b
droppie: add missing ddclient username 2022-08-23 18:23:08 +02:00
Benjamin Bädorf 8a9d83ffb9
Add ddclient to droppie 2022-08-23 18:04:21 +02:00
teutat3s 284ae0366a
droppie: fix missing systemd wantedBy
without this, the systemd service does not start after a reboot
2022-08-23 17:03:34 +02:00
Benjamin Bädorf 116f9301c4
Don't hand over USB devices 2022-08-18 11:54:02 +02:00
Benjamin Bädorf 1ea4523bd1
Fix droppie backup ssh service and build 2022-08-14 20:29:38 +02:00
Benjamin Bädorf 9f886ce51f
Working drone-exec-runner 2022-08-14 20:25:12 +02:00
Benjamin Bädorf 2ca921b4a3
Fix path in drone runner exec 2022-08-14 20:24:50 +02:00
Benjamin Bädorf dded778e7b
Merge branch 'b12f' into feature/ci-runner-onecommit-test 2022-08-14 20:23:52 +02:00
Benjamin Bädorf d4e949790e
Merge branch 'main' into b12f 2022-08-14 20:23:45 +02:00
Benjamin Bädorf baee78468b
Merge branch 'b12f' into feature/ci-runner-onecommit-test 2022-08-14 20:22:34 +02:00
Benjamin Bädorf 1cf710be78
Merge pull request 'Add ssh-tunnel systemd unit to enable backups' (#118) from fix/backup-reverse-ssh-tunnel into b12f
Reviewed-on: https://git.b12f.io/pub-solar/os/pulls/118
2022-08-14 18:12:42 +00:00
teutat3s acab42eaef
Add ssh-tunnel systemd unit to enable backups
from IPv4-only to IPv6-only host
2022-08-14 20:11:10 +02:00
Benjamin Bädorf 3883f30b74
Use correct sshUser for droppie deployments 2022-08-14 19:24:12 +02:00
Benjamin Bädorf c6d78a6ff9
Always keep openssh port open 2022-08-14 19:23:58 +02:00
Benjamin Bädorf dec9e54872
Allow unfree on my branch 2022-08-14 17:51:41 +02:00
Benjamin Bädorf 6a09979aa5
Update droppie for x-os rename 2022-08-14 17:51:01 +02:00
Benjamin Bädorf 636eed806b
Merge remote-tracking branch 'origin/main' into b12f 2022-08-14 17:50:21 +02:00
Benjamin Bädorf b1d8a0490c
Fix typo 2022-08-14 13:03:08 +02:00
Benjamin Bädorf ba85b33182
Merge branch 'b12f' into feature/ci-runner-onecommit-test 2022-08-14 13:02:21 +02:00
Benjamin Bädorf 2a2148fe75
Update user authentication methods 2022-08-14 12:57:05 +02:00
Benjamin Bädorf 4cdeb7e5c8
Use public keys of biolimo and pihole 2022-08-14 12:47:20 +02:00
Benjamin Bädorf dc1e707925
Move ci-runner to user and add git, virsh and nix to path 2022-08-13 22:36:12 +02:00
Benjamin Bädorf 4f881ee6a5
Merge branch 'feature/ci-runner-onecommit' into feature/ci-runner-onecommit-test 2022-08-13 22:32:53 +02:00
Benjamin Bädorf 669ab6b6ba
Open SSH on the network by default, but don't allow password authentication 2022-08-13 20:17:00 +02:00
Benjamin Bädorf ded0dd7d15
Change pub-solar.user.publicKeys to an actual key string list 2022-08-13 20:16:35 +02:00
Benjamin Bädorf 70980fba28
Fix droppie config 2022-08-13 20:15:22 +02:00
Benjamin Bädorf 7c9ec52956 Merge pull request 'Add droppie' (#103) from feature/ben-droppie into b12f
Reviewed-on: https://git.b12f.io/pub-solar/os/pulls/103
2022-08-13 17:03:22 +00:00
Benjamin Bädorf ed1396997f
Merge branch 'b12f' into feature/ben-droppie 2022-08-13 19:03:04 +02:00
Benjamin Bädorf 7360f9ce86
Merge branch 'main' into b12f 2022-08-13 18:59:32 +02:00
Benjamin Bädorf ad4a514934
Add pubkeys to yule 2022-08-13 18:58:51 +02:00
Benjamin Bädorf f764cfa36d
Add server specific user 2022-08-13 18:53:50 +02:00
Hendrik Sokolowski 030e5c0058 Add droppie 2022-08-13 18:08:27 +02:00
Benjamin Bädorf bf29ac8830
Make cryptroot optional 2022-08-13 12:32:16 +02:00
Benjamin Bädorf 2dda411388
Merge branch 'main' into b12f 2022-08-13 12:14:16 +02:00
Benjamin Bädorf c2227ed013
Add Arduino module
This adds a small arduino development module that installs development
tooling and adds the user to the `dialout` group.
2022-08-10 22:43:54 +02:00
Benjamin Bädorf 0e8a2a4468
Enable spotify for user ben 2022-08-10 22:43:31 +02:00
Benjamin Bädorf c2bc749beb
Add spotify as an audio option
Adds a `config.pub-solar.audio.spotify` option that when enabled
installs and configures `spotifyd` as a systemd daemon and `spotify-tui`
as the terminal-based UI.

After enabling, run `spt` in the terminal to open the UI.
2022-08-10 22:42:14 +02:00
Benjamin Bädorf fd50ecf445
Improve help and screen recording keybindings in sway
This commit shuffles around some sway keybindings and improves the
screen recording experience by adding a small wrapper around `slurp` and
`wf-recorder` conveniently called `record-screen`.

* `$mod+F5` now reload the sway configuration,
* `$mod+Ctrl+r` starts a screen recording (to stop it, go to workspace 7
  and kill the process),
* `record-screen` and the firefox sharing indicator are both on
  workspace 7 now, making it the "trash" workspace,
* `$mod+F1` and `$mod+Shift+h` now open Firefox with the docs of our
repository availabe under `help.local`.
* To not infuriate `qMasterPassword` users, that is now available under
`$mod+Shift+m` instead of `$mod+F1`.
2022-08-10 22:32:27 +02:00
Benjamin Bädorf 4d2ac57dab
Add more logging to VM service script 2022-07-23 17:00:43 +02:00
Benjamin Bädorf 2b0a804b4e
Merge branch 'main' into b12f 2022-07-22 14:34:58 +02:00
Benjamin Bädorf f7b0efb6bc
Remove gutentags from nvim
ctags got an update and is currently drawing more than 60GB of RAM
trying to analyze e.g. the openproject repository. Removing it fixes the
issue for now.
2022-07-22 14:31:18 +02:00
Benjamin Bädorf aeed1af298
Move failing RWTH offlineimap config to the last place 2022-07-22 14:31:05 +02:00
Benjamin Bädorf ca6843ab44
Use override for yubikey-agent 2022-06-04 22:11:46 +02:00
Benjamin Bädorf 10a70d46c7
Make sure we're all successful 2022-06-04 19:32:12 +02:00
Benjamin Bädorf 34cc7d40f2
Add denols to nvim
In Deno projects `tsserver` is less than ideal. This PR starts `denols`
instead of `tsserver` if `nvim` finds the `NVIM_USE_DENOLS` variable
when reading the lsp config.
2022-06-04 16:49:07 +02:00
Benjamin Bädorf 4c7fed14f0
Remove unused scream pulse service file 2022-06-04 16:45:33 +02:00
Benjamin Bädorf efc52114f3
Merge branch 'main' into b12f 2022-06-04 02:59:32 +02:00
Benjamin Bädorf 4110655ac6
Fix duplicated lien 2022-05-25 11:21:34 +02:00
Benjamin Bädorf 854b0222a0
Add mail@b12f.io
Add configuration for offlineimap, mutt, and msmtp for mail@b12f.io.

This is a catch-all inbox, but it can send out via mail@ as well.
Secrets will have to be added to the secret-tool manually.
2022-05-25 11:16:26 +02:00
Benjamin Bädorf fdb79aa95f
Merge branch 'main' into b12f 2022-05-09 11:40:56 +02:00
Benjamin Bädorf 58f05a2618
Update mailbox.org smtp port config 2022-05-05 20:30:12 +02:00
Benjamin Bädorf 403893ed56
Merge branch 'main' into b12f 2022-05-05 09:12:35 +02:00
Benjamin Bädorf ef0755ef57
Change the port for the drone runner
Port 3000 is often taken, so we'll default to 30010
2022-05-03 11:23:21 +02:00
Benjamin Bädorf 88be4b7afa
Add socials to b12f module 2022-05-03 00:04:52 +02:00
Benjamin Bädorf 5bbb3eca66
Add drone-docker-runner to chocolatebar 2022-05-02 23:49:08 +02:00
Benjamin Bädorf e3f7f43338
Add docker drone runner wrapper
Adds a small sh wrapper around a drone runner docker container. The
`stop` and `logs` functionality is barely better than using straight up
docker, but at least it saves you from having to know any of the
implementation details.
2022-05-02 23:44:31 +02:00
Benjamin Bädorf 59c1a23660
Merge branch 'main' into b12f 2022-05-02 15:01:30 +02:00
Benjamin Bädorf b648055b60
Merge branch 'main' into b12f 2022-05-01 21:00:50 +02:00
Benjamin Bädorf 39e2c7c1ee
Add swapfiles 2022-04-30 23:07:18 +02:00
Benjamin Bädorf 4de8f625fc
Merge branch 'main' into b12f 2022-04-30 21:45:23 +02:00
Benjamin Bädorf 304371b855
Show notification when changing keyboard layouts 2022-04-30 21:41:43 +02:00
Benjamin Bädorf e012a528e0
Add gitmessage template to global git config 2022-04-30 21:25:38 +02:00
Benjamin Bädorf caa730f665
Fix build 2022-04-30 20:01:31 +02:00
Benjamin Bädorf d85a796259
Merge branch 'main' into b12f 2022-04-30 19:58:06 +02:00
Benjamin Bädorf 167cd2fc32
Improve terminal pwd title by shortening home to ~ 2022-04-30 18:27:42 +02:00
Benjamin Bädorf b204dd5363
Merge branch 'main' into b12f 2022-04-30 18:01:33 +02:00
Benjamin Bädorf e0f5640801
Change terminal title to cwd 2022-04-30 17:51:41 +02:00
Benjamin Bädorf d6974e1dfd
Open vnc port 2022-04-30 17:08:58 +02:00
Benjamin Bädorf 4911e5c91e
Change port of wayvnc 2022-04-30 17:08:48 +02:00
Benjamin Bädorf fa2079ee1d
Remove useless device setting from chocolatebar sway config 2022-04-30 13:48:52 +02:00
Benjamin Bädorf 53f5ab731e
Add VNCClient mode for sway 2022-04-30 13:48:38 +02:00
Benjamin Bädorf 9c9188d006
Allow outside vnc access, render a cursor in vnc 2022-04-28 23:47:11 +02:00
Benjamin Bädorf 8f8923203b
Add vnc keyfiles and config 2022-04-28 23:24:33 +02:00
Benjamin Bädorf ad313173ad
Add wayvnc option for sway
This change allows you to start wayvnc anytime your sway session starts.
For hosts where you want to enable this, you'll need to generate the
certificate and keys, see:

https://github.com/any1/wayvnc#encryption--authentication

You can then add these to your secrets via agenix, and load them as
`vnc-key.pem` and `vnc-cert.pem` into `/run/secrets`.

Enable the wayvnc server via the option `pub-solar.sway.vnc.enable`.

At the time of writing, `tigervnc` appears to be a good vnc client to
use.

```
2022-04-28 23:20:18 +02:00
Benjamin Bädorf 9852d4a8cd
Update flake lock 2022-04-28 23:17:47 +02:00
Benjamin Bädorf 2f54c4e25c
Merge branch 'main' into b12f 2022-04-27 15:24:22 +02:00
Benjamin Bädorf 7ff9efa51c
Add wayvnc 2022-04-27 15:21:40 +02:00
Benjamin Bädorf 001f05dbfc
Fix LSP infos 2022-04-18 13:12:02 +02:00
Benjamin Bädorf c2b6ec5acc
Merge branch 'main' into b12f 2022-04-10 14:02:28 +02:00
Benjamin Bädorf f87429c378
Add SSH keys 2022-04-08 21:00:53 +02:00
Benjamin Bädorf a68e0ad878
Update flake lock 2022-03-29 21:56:29 +02:00
Benjamin Bädorf 09bc8d5295
Merge branch 'main' into b12f 2022-03-29 19:33:06 +02:00
Benjamin Bädorf 334daff82e
Fix latenight.blue ssh 2022-03-24 21:07:11 +01:00
Benjamin Bädorf a699e42eb7
Merge branch 'main' into b12f 2022-03-23 11:02:57 +01:00
Benjamin Bädorf f0bd4f978f
Merge branch 'main' into b12f 2022-03-21 12:34:50 +01:00
Benjamin Bädorf 33f03b3f0d
Add paperless, up guest VM RAM to 48GB 2022-03-10 21:32:21 +01:00
Benjamin Bädorf d047a4aac0
Merge branch 'main' into b12f 2022-03-09 13:37:26 +01:00
Benjamin Bädorf e3ff8c5441
Merge branch 'main' into b12f 2022-02-14 10:54:00 +01:00
Benjamin Bädorf f7cf825579
Fix build 2022-02-14 10:50:34 +01:00
Benjamin Bädorf fb821aa722
Update virtualisation 2022-02-14 10:50:26 +01:00
Benjamin Bädorf 16d7ccee0d
Update flake lock 2022-02-14 10:50:02 +01:00
Benjamin Bädorf e6e2267f5a
Add paperless module 2022-02-14 10:49:49 +01:00
Benjamin Bädorf 8fdd290c10
Fix admins@pub.solar macro 2022-01-21 16:53:57 +01:00
Benjamin Bädorf 183d8efded
Add admins@pub.solar 2022-01-16 16:27:36 +01:00
Benjamin Bädorf 115f41466b
Merge branch 'main' into b12f 2022-01-06 14:14:57 +01:00
Benjamin Bädorf 87e48217d0
Merge branch 'main' into b12f 2022-01-06 14:14:13 +01:00
Benjamin Bädorf bcb5fd2d67
Share keyboard and mouse via looking glass client 2022-01-04 13:41:32 +01:00
Benjamin Bädorf 8b71991dba
Update chocolatebar screen configuration 2022-01-04 13:40:59 +01:00
Benjamin Bädorf 923f41e700
Fix merge issue 2022-01-04 13:40:39 +01:00
Benjamin Bädorf 0ec6d23551
Add hp scanner driver module 2022-01-04 13:40:03 +01:00
Benjamin Bädorf 21edcdf915
Create looking glass client wrapper 2022-01-04 13:38:20 +01:00
Benjamin Bädorf 1b760a2c9e Merge remote-tracking branch 'origin/main' into b12f 2021-12-13 00:27:18 +00:00
Benjamin Bädorf 4057c68bb7
Merge branch 'b12f' of git.b12f.io:pub-solar/os into b12f 2021-12-11 21:09:28 +01:00
Benjamin Bädorf f53c21f3e0
Update chocolatebar VMs; make USB handover optional, enable looking glass 2021-12-11 21:09:22 +01:00
Benjamin Bädorf 15c0412080
Add looking glass for VMs, switch from scream-ivshmem to qemu-pulse 2021-12-11 21:08:20 +01:00
Benjamin Bädorf a934ef4a21 Merge remote-tracking branch 'origin/main' into b12f 2021-12-03 00:27:11 +00:00
Benjamin Bädorf 7069fb2a62
Cleanup nvim config, add instant.nvim 2021-12-02 12:19:37 +01:00
Benjamin Bädorf 0b61f2808e Merge remote-tracking branch 'origin/main' into b12f 2021-12-01 00:27:16 +00:00
Benjamin Bädorf f9156a4976
Fix build 2021-11-29 19:09:49 +01:00
Benjamin Bädorf 65620a8bfc
Merge branch 'main' into b12f 2021-11-29 19:08:32 +01:00
Benjamin Bädorf 6e2c227969
Merge branch 'main' into b12f 2021-11-29 17:25:30 +01:00
Benjamin Bädorf 5c46477e44
Add obs 2021-11-18 20:12:24 +01:00
Benjamin Bädorf 43d421bcac
Update user description 2021-11-17 19:12:41 +01:00
Benjamin Bädorf 59f441e425
Change user description for ben 2021-11-17 12:05:59 +01:00
Benjamin Bädorf cfe5d77f9e
Allow changing the user description 2021-11-17 12:05:50 +01:00
Benjamin Bädorf 6c9ab61065
Use fixed telegram-desktop from unstable 2021-11-15 11:39:24 +01:00
Benjamin Bädorf fbdd35283e
Fix java session variable 2021-11-15 11:37:56 +01:00
Benjamin Bädorf decf354138 Merge remote-tracking branch 'origin/main' into b12f 2021-11-08 00:07:14 +00:00
Benjamin Bädorf 7cb8b30fe4
Merge branch 'main' into b12f 2021-11-05 23:49:38 +01:00
Benjamin Bädorf 79517658b3
Update vm rom location 2021-11-02 16:45:05 +01:00
Benjamin Bädorf 61e87ee30b
Merge branch 'b12f' of git.b12f.io:pub-solar/os into b12f 2021-11-01 10:11:14 +01:00
Benjamin Bädorf 3dc7ffd3a4
Update email signature for OP 2021-11-01 10:11:07 +01:00
Benjamin Bädorf 64e1a4583f
Add ssh hosts 2021-10-31 01:06:50 +02:00
Benjamin Bädorf 097d89d2b2
Remove git crypt form biolimo 2021-10-29 20:21:13 +02:00
Benjamin Bädorf 5a18a7c3c1
Merge branch 'main' into b12f 2021-10-29 18:47:33 +02:00
Benjamin Bädorf 5a6ec0d6ff Merge remote-tracking branch 'origin/main' into b12f 2021-10-27 00:07:29 +00:00
Benjamin Bädorf 2724982a4f Merge remote-tracking branch 'origin/main' into b12f 2021-10-26 00:07:47 +00:00
Benjamin Bädorf bcd191b291
Don't scale laptop screen, sway + firefox is broken then 2021-10-25 23:10:18 +02:00
Benjamin Bädorf 0015849858 Merge remote-tracking branch 'origin/main' into b12f 2021-10-25 00:07:45 +00:00
Benjamin Bädorf d064b27393
Fix build 2021-10-24 23:42:13 +02:00
teutat3s 8a848a789b
overrides: try out docker-compose v2, xdg-desktop-portal from latest 2021-10-24 23:36:57 +02:00
Benjamin Bädorf ab19dea908
Fix mopidy ownership 2021-10-24 17:30:24 +02:00
Benjamin Bädorf 415223a778
Move biolimo to systemd-boot 2021-10-24 17:30:15 +02:00
Benjamin Bädorf 067ce16246
Remove git crypt
Start move to /boot kernel mount
x-os: prepare booting from unencrypted /boot partition
Move to systemd-boot
Remove all unencrypted secrets
2021-10-24 17:13:16 +02:00
Benjamin Bädorf 132042220e
Double encrypt ?? 2021-10-23 14:49:36 +02:00
Benjamin Bädorf a44b506724
Merge branch 'b12f' of git.b12f.io:pub-solar/os into b12f 2021-10-23 13:24:28 +02:00
Benjamin Bädorf 87a9d94d0a
secrets via agenix 2021-10-23 13:24:22 +02:00
Benjamin Bädorf 4c3ddff217
Add 1 git-crypt collaborator
New collaborators:

	13CD656C Benjamin Bädorf (gitea) <gitea@benjaminbaedorf.eu>
2021-10-22 12:30:39 +02:00
Benjamin Bädorf cd5e19b10e
Fix byb@miom.space 2021-10-21 23:51:25 +02:00
Benjamin Bädorf 7569a75e65
Add byb@miom.space, update signature 2021-10-21 22:21:05 +02:00
Benjamin Bädorf 814f567fd7
Merge branch 'main' into b12f 2021-10-21 19:48:35 +02:00
Benjamin Bädorf 298f50ba95
Merge branch 'main' into b12f 2021-10-21 19:25:59 +02:00
Benjamin Bädorf 231abe6af4
Merge branch 'main' into b12f 2021-10-13 19:27:04 +02:00
Benjamin Bädorf 3cec4a51f2
Add mobile profile to ben user 2021-09-27 14:52:21 +02:00
Benjamin Bädorf 6dce415552
Add android mobile option 2021-09-27 14:52:13 +02:00
Benjamin Bädorf 6039a73b04 Merge remote-tracking branch 'origin/master' into b12f 2021-09-22 00:22:37 +00:00
Benjamin Bädorf 2e6fe672d2
Fix direnv cache 2021-09-21 22:21:29 +02:00
Benjamin Bädorf af4b2fb8f1
Fix missing element desktop 2021-09-14 10:51:19 +02:00
drone 23137a0764 Merge remote-tracking branch 'origin/master' into b12f 2021-09-11 00:22:09 +00:00
drone 73e7571487 Merge remote-tracking branch 'origin/master' into b12f 2021-09-09 00:22:05 +00:00
teutat3s 761b671549 b12f-to-master (#16)
Reviewed-on: https://git.b12f.io/pub-solar/os/pulls/16
Co-authored-by: teutat3s <teutates@mailbox.org>
Co-committed-by: teutat3s <teutates@mailbox.org>
2021-09-08 22:00:03 +00:00
Benjamin Bädorf 3dcc90fc24
feat(chocolatebar): enable virtualisation 2021-09-05 22:18:08 +02:00
Benjamin Bädorf e29ad5c23f
Enable the gaming suit for b12f 2021-09-05 00:47:56 +02:00
Benjamin Bädorf 9009fa4a52
Merge branch 'b12f-master' into b12f 2021-09-04 16:00:32 +02:00
Benjamin Bädorf f89384cbf0
Works for chocolatebar 2021-09-04 15:56:44 +02:00
teutat3s 12fafd7f97
docker-compose fix? 2021-09-02 21:17:19 +02:00
teutat3s 34ca8aadb9
fix biolimo host? 2021-09-02 20:55:17 +02:00
Benjamin Bädorf d132638c8e
Fix flake lock imports 2021-09-02 20:00:22 +02:00
Benjamin Bädorf 2293e703cc
Fix suites 2021-09-02 19:16:05 +02:00
teutat3s 3f4d3cf240
Merge branch 'b12f' into b12f-master 2021-09-01 19:12:50 +02:00
Benjamin Bädorf 72d089797b Merge remote-tracking branch 'origin/core' into b12f 2021-07-24 00:25:02 +00:00
Benjamin Bädorf 6025d489ac
New vim 2021-07-14 18:59:27 +02:00
drone 05836bcdf4 Merge remote-tracking branch 'origin/core' into b12f 2021-07-14 00:24:51 +00:00
teutat3s 99597d1b30
Merge branch 'core' into b12f 2021-07-13 18:45:59 +02:00
teutat3s f7901d94e8
Merge branch 'core' into b12f 2021-07-07 19:53:22 +02:00
Benjamin Bädorf 3cfbaba8e5
Add nodejs to home packages 2021-06-28 17:53:06 +02:00
Benjamin Bädorf 63750e6536
Add mdxjs support for nvim 2021-06-28 17:52:55 +02:00
Benjamin Bädorf 6280a04af5
Merge branch 'core' into b12f 2021-06-15 01:33:46 +02:00
Benjamin Bädorf a9e025c4f9
fix: Make chocolatebar work with the new config 2021-06-14 23:23:30 +02:00
Benjamin Bädorf 17a2833a89
feat: Add tea gitea cli 2021-06-14 21:03:41 +02:00
Benjamin Bädorf bf28a630c9
Merge branch 'core' into b12f 2021-06-14 19:50:35 +02:00
Benjamin Bädorf 83333fa0d6
Merge branch 'b12f' of git.b12f.io:pub-solar/os into b12f 2021-06-14 19:49:32 +02:00
Benjamin Bädorf e437f7fca6
Merge branch 'core' into b12f 2021-06-14 19:45:03 +02:00
Benjamin Bädorf fc23fbc05b
Merge upstream 2021-06-09 18:46:29 +02:00
Benjamin Bädorf 8d5db4dfb2
Add chocolatebar 2021-06-01 10:55:02 +02:00
Benjamin Bädorf 9d1991d6b8
Move fonts into separate flake 2021-05-31 19:57:17 +02:00
Benjamin Bädorf a577bd7333
Encrypt futura 2021-05-30 22:35:18 +02:00
Benjamin Bädorf bc76999a00
Add Futura 2021-05-30 22:01:17 +02:00
Benjamin Bädorf 91c8e77d25
Initial b12f commit 2021-05-30 21:33:09 +02:00
96 changed files with 2634 additions and 34 deletions

View file

@ -24,6 +24,14 @@ charset = unset
indent_style = unset
indent_size = unset
[*.rom]
end_of_line = unset
insert_final_newline = unset
trim_trailing_whitespace = unset
charset = unset
indent_style = unset
indent_size = unset
[*.py]
indent_size = 4

4
.gitignore vendored
View file

@ -7,7 +7,7 @@ vm
iso
doi
pkgs/_sources/.shake*
# PubSolarOS
tags
/owners
pkgs/_sources/.shake*

View file

@ -235,6 +235,37 @@
"type": "github"
}
},
"master": {
"locked": {
"lastModified": 1675254005,
"narHash": "sha256-n1qq2Qcz7DvPiB6emdRk/dx4uUgaFy0ojgKg3NBIwTU=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "1efc432d4f72c0e3146c1dd2e8a3ffa705be8a04",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "master",
"repo": "nixpkgs",
"type": "github"
}
},
"nixlib": {
"locked": {
"lastModified": 1636849918,
"narHash": "sha256-nzUK6dPcTmNVrgTAC1EOybSMsrcx+QrVPyqRdyKLkjA=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "28a5b0557f14124608db68d3ee1f77e9329e9dd5",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixos": {
"locked": {
"lastModified": 1675154384,
@ -251,6 +282,25 @@
"type": "github"
}
},
"nixos-generators": {
"inputs": {
"nixlib": "nixlib",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1674666581,
"narHash": "sha256-KNI2s/xrL7WOYaPJAWKBtb7cCH3335rLfsL+B+ssuGY=",
"owner": "nix-community",
"repo": "nixos-generators",
"rev": "6a5dc1d3d557ea7b5c19b15ff91955124d0400fa",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixos-generators",
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1674550793,
@ -266,6 +316,22 @@
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1637186689,
"narHash": "sha256-NU7BhgnwA/3ibmCeSzFK6xGi+Bari9mPfn+4cBmyEjw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "7fad01d9d5a3f82081c00fb57918d64145dc904c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1672791794,
@ -294,6 +360,22 @@
"type": "indirect"
}
},
"pub-solar": {
"locked": {
"lastModified": 1654372286,
"narHash": "sha256-z1WrQkL67Sosz1VnuKQLpzEkEl4ianeLpWJX8Q6bVQY=",
"owner": "pub-solar",
"repo": "nixpkgs",
"rev": "4995a873a796c54cc49e5dca9e1d20350eceec7b",
"type": "github"
},
"original": {
"owner": "pub-solar",
"ref": "fix/use-latest-unstable-yubikey-agent",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"agenix": "agenix",
@ -303,9 +385,12 @@
"flake-compat": "flake-compat",
"home": "home",
"latest": "latest",
"master": "master",
"nixos": "nixos",
"nixos-generators": "nixos-generators",
"nixos-hardware": "nixos-hardware",
"nur": "nur"
"nur": "nur",
"pub-solar": "pub-solar"
}
},
"utils": {

View file

@ -36,6 +36,11 @@
agenix.inputs.darwin.follows = "darwin";
nixos-hardware.url = "github:nixos/nixos-hardware";
nixos-generators.url = "github:nix-community/nixos-generators";
master.url = "github:nixos/nixpkgs/master";
pub-solar.url = "github:pub-solar/nixpkgs/fix/use-latest-unstable-yubikey-agent";
};
outputs = {
@ -54,7 +59,7 @@
inherit self inputs;
channelsConfig = {
# allowUnfree = true;
allowUnfree = true;
};
supportedSystems = ["x86_64-linux" "aarch64-linux"];
@ -124,11 +129,19 @@
// {
users = digga.lib.rakeLeaves ./users;
};
suites = with profiles; rec {
base = [users.pub-solar users.root];
iso = base ++ [base-user graphical pub-solar-iso];
pubsolaros = [full-install base-user users.root];
anonymous = [pubsolaros users.pub-solar];
b12f = pubsolaros ++ [users.ben social gaming mobile];
biolimo = b12f ++ [graphical];
chocolatebar = b12f ++ [graphical virtualisation];
yule = pubsolaros ++ [users.yule];
droppie = yule ++ [];
};
};
};
@ -142,19 +155,26 @@
base = [direnv git];
};
};
users = {
pub-solar = {suites, ...}: {
users = let
default = {suites, ...}: {
imports = suites.base;
home.stateVersion = "21.03";
};
}; # digga.lib.importers.rakeLeaves ./users/hm;
in {
pub-solar = default;
ben = default;
yule = default;
};
};
devshell = ./shell;
homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations;
deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations {};
deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations {
droppie = {
sshUser = "yule";
};
};
};
}

View file

@ -0,0 +1,6 @@
# Autostart applications
#
# Example:
# exec swayidle
exec keepassxc

View file

@ -0,0 +1,19 @@
# Touchpad controls
#bindsym XF86TouchpadToggle exec $HOME/Workspace/ben/toggletouchpad.sh # toggle touchpad
# Screen brightness controls
bindsym XF86MonBrightnessUp exec "brightnessctl -d intel_backlight set +10%; notify-send $(brightnessctl -d intel_backlight i | awk '/Current/ {print $4}')"
bindsym XF86MonBrightnessDown exec "brightnessctl -d intel_backlight set 10%-; notify-send $(brightnessctl -d intel_backlight i | awk '/Current/ { print $4}')"
# Keyboard backlight brightness controls
bindsym XF86KbdBrightnessDown exec "brightnessctl -d smc::kbd_backlight set 10%-; notify-send $(brightnessctl -d smc::kbd_backlight i | awk '/Current/ { print $4}')"
bindsym XF86KbdBrightnessUp exec "brightnessctl -d smc::kbd_backlight set +10%; notify-send $(brightnessctl -d smc::kbd_backlight i | awk '/Current/ { print $4}')"
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%; exec pactl set-sink-mute @DEFAULT_SINK@ 0 && notify-send 'Vol. up' #increase sound volume
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%; exec pactl set-sink-mute @DEFAULT_SINK@ 0 && notify-send 'Vol. down' #decrease sound volume
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle && notify-send 'Mute sound' # mute sound
# Media player controls
bindsym XF86AudioPlay exec "playerctl play-pause; notify-send 'Play/Pause'"
bindsym XF86AudioNext exec "playerctl next; notify-send 'Next'"
bindsym XF86AudioPrev exec "playerctl previous; notify-send 'Prev.'"

View file

@ -0,0 +1,9 @@
input "1739:0:Synaptics_TM3288-011" {
dwt enabled
tap enabled
middle_emulation enabled
}
input * {
xkb_layout us(intl),de
xkb_options ctrl:nocaps
}

View file

@ -0,0 +1,20 @@
set $internal eDP-1
set $middle "Hewlett Packard HP E231 3CQ4290S5J"
set $standup "Hewlett Packard HP E231 3CQ4251F33"
output $internal {
scale 1
pos 1080 1080
}
output $middle {
scale 1
pos 1080 0
}
output $standup {
scale 1
transform 90
pos 0 0
}

40
hosts/biolimo/biolimo.nix Normal file
View file

@ -0,0 +1,40 @@
{
config,
pkgs,
lib,
...
}:
with lib; let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
in {
imports = [
./configuration.nix
];
config = {
pub-solar.paranoia.enable = true;
pub-solar.core.hibernation.resumeDevice = "/dev/dm-0";
pub-solar.core.hibernation.resumeOffset = 15296512;
hardware.cpu.intel.updateMicrocode = true;
networking.firewall.allowedTCPPorts = [5000];
networking.networkmanager.wifi.backend = mkForce "wpa_supplicant";
home-manager = with pkgs;
pkgs.lib.setAttrByPath ["users" psCfg.user.name] {
xdg.configFile = mkIf psCfg.sway.enable {
"sway/config.d/10-screens.conf".source = ./.config/sway/config.d/screens.conf;
"sway/config.d/10-autostart.conf".source = ./.config/sway/config.d/autostart.conf;
"sway/config.d/10-input-defaults.conf".source = ./.config/sway/config.d/input-defaults.conf;
"sway/config.d/10-custom-keybindings.conf".source = ./.config/sway/config.d/custom-keybindings.conf;
};
home.packages = [
inkscape
];
};
};
}

View file

@ -0,0 +1,25 @@
# 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).
{
config,
pkgs,
...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
];
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "20.09"; # Did you read the comment?
}

View file

@ -0,0 +1,7 @@
{suites, ...}: {
imports =
[
./biolimo.nix
]
++ suites.biolimo;
}

View file

@ -0,0 +1,42 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
fileSystems."/" = {
device = "/dev/disk/by-uuid/abc3fe04-368e-46eb-8c7a-3a829bb2deab";
fsType = "ext4";
};
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/aed21f8d-8e15-4f43-8710-460cb36d488b";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/3B67-0CAB";
fsType = "vfat";
};
swapDevices = [
{
device = "/swapfile";
size = 18 * 1024; # 18 GB
}
];
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
# high-resolution display
hardware.video.hidpi.enable = lib.mkDefault true;
}

View file

@ -0,0 +1,6 @@
# Autostart applications
#
# Example:
# exec swayidle
exec keepassxc

View file

@ -0,0 +1,19 @@
# Touchpad controls
#bindsym XF86TouchpadToggle exec $HOME/Workspace/ben/toggletouchpad.sh # toggle touchpad
# Screen brightness controls
bindsym XF86MonBrightnessUp exec "brightnessctl -d intel_backlight set +10%; notify-send $(brightnessctl -d intel_backlight i | awk '/Current/ {print $4}')"
bindsym XF86MonBrightnessDown exec "brightnessctl -d intel_backlight set 10%-; notify-send $(brightnessctl -d intel_backlight i | awk '/Current/ { print $4}')"
# Keyboard backlight brightness controls
bindsym XF86KbdBrightnessDown exec "brightnessctl -d smc::kbd_backlight set 10%-; notify-send $(brightnessctl -d smc::kbd_backlight i | awk '/Current/ { print $4}')"
bindsym XF86KbdBrightnessUp exec "brightnessctl -d smc::kbd_backlight set +10%; notify-send $(brightnessctl -d smc::kbd_backlight i | awk '/Current/ { print $4}')"
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%; exec pactl set-sink-mute @DEFAULT_SINK@ 0 && notify-send 'Vol. up' #increase sound volume
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%; exec pactl set-sink-mute @DEFAULT_SINK@ 0 && notify-send 'Vol. down' #decrease sound volume
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle && notify-send 'Mute sound' # mute sound
# Media player controls
bindsym XF86AudioPlay exec "playerctl play-pause; notify-send 'Play/Pause'"
bindsym XF86AudioNext exec "playerctl next; notify-send 'Next'"
bindsym XF86AudioPrev exec "playerctl previous; notify-send 'Prev.'"

View file

@ -0,0 +1,4 @@
input * {
xkb_layout us(intl),de
xkb_options ctrl:nocaps
}

View file

@ -0,0 +1,18 @@
set $left DP-3
set $middle DP-1
set $right HDMI-A-1
output $left {
scale 1
pos 0 0
}
output $middle {
scale 1
pos 1920 0
}
output $right {
scale 1
pos 3840 0
}

View file

@ -0,0 +1,86 @@
{
config,
pkgs,
lib,
self,
...
}:
with lib; let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
in {
imports = [
./configuration.nix
./virtualisation
./factorio
];
config = {
hardware.cpu.amd.updateMicrocode = true;
hardware.opengl.extraPackages = with pkgs; [
rocm-opencl-icd
rocm-opencl-runtime
];
pub-solar.core.hibernation.resumeDevice = "/dev/dm-0";
pub-solar.core.hibernation.resumeOffset = 115075072;
age.secrets."drone-runner-exec-config" = {
file = "${self}/secrets/drone-runner-exec-config";
mode = "400";
owner = psCfg.user.name;
};
pub-solar.docker-ci-runner = {
enable = true;
runnerVarsFile = config.age.secrets.drone-runner-exec-config.path;
};
services.openssh.openFirewall = true;
networking.firewall.allowedTCPPorts =
[443]
++ (
if psCfg.sway.vnc.enable
then [5901]
else []
);
networking.firewall.allowedUDPPorts = [43050];
environment.systemPackages = with pkgs; [
wayvnc
drone-docker-runner
stdenv.cc.cc.lib
pkgs.hplip
];
age.secrets."vnc-key.pem" = {
file = "${self}/secrets/vnc-key-chocolatebar.pem";
mode = "400";
owner = psCfg.user.name;
};
age.secrets."vnc-cert.pem" = {
file = "${self}/secrets/vnc-cert-chocolatebar.pem";
mode = "400";
owner = psCfg.user.name;
};
pub-solar.sway.vnc.enable = true;
home-manager.users."${psCfg.user.name}" = {
xdg.configFile = mkIf psCfg.sway.enable {
"sway/config.d/10-autostart.conf".source = ./.config/sway/config.d/autostart.conf;
"sway/config.d/10-input-defaults.conf".source = ./.config/sway/config.d/input-defaults.conf;
"sway/config.d/10-screens.conf".source = ./.config/sway/config.d/screens.conf;
};
home.sessionVariables = {
NIX_CC = "${pkgs.stdenv.cc}";
};
};
# For OpenProject development with https
security.pki.certificates = [
(builtins.readFile ./step-roots.pem)
];
};
}

View file

@ -0,0 +1,25 @@
# 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).
{
config,
pkgs,
...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
];
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "20.09"; # Did you read the comment?
}

View file

@ -0,0 +1,7 @@
{suites, ...}: {
imports =
[
./chocolatebar.nix
]
++ suites.chocolatebar;
}

View file

@ -0,0 +1,47 @@
{
config,
pkgs,
lib,
self,
...
}:
with lib; let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
far-reach = pkgs.stdenv.mkDerivation rec {
pname = "factorio-far-reach";
version = "1.1.2";
src = ./far-reach_1.1.2.zip;
phases = ["installPhase"];
deps = [];
installPhase = ''
mkdir -p $out
cp $src far-reach_1.1.2.zip
'';
};
in {
config = {
services.factorio = {
enable = true;
port = 34197; # The default, but make it explicit
lan = true;
game-password = "pls-dont-grief";
admins = [
"doubtwriter"
"kattykat"
];
openFirewall = true;
autosave-interval = 3;
game-name = "Babes plays v2";
requireUserVerification = false;
bind = "::";
mods = [
far-reach
];
};
networking.firewall.allowedUDPPorts = [34197];
networking.firewall.allowedTCPPorts = [34197];
};
}

Binary file not shown.

View file

@ -0,0 +1,38 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbcore" "usbhid" "sd_mod"];
boot.initrd.kernelModules = ["dm-snapshot"];
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
fileSystems."/" = {
device = "/dev/disk/by-uuid/a3a74208-b244-4268-b374-e58265810fce";
fsType = "ext4";
};
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/afcde41f-9811-4ac8-bb7b-a683844acc5c";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/12FD-62A8";
fsType = "vfat";
};
swapDevices = [
{
device = "/swapfile";
size = 68 * 1024; # 68 GB
}
];
}

View file

@ -0,0 +1,13 @@
-----BEGIN CERTIFICATE-----
MIIB6DCCAY2gAwIBAgIQD4Q4blCl/ZrTIRU2QpqEOTAKBggqhkjOPQQDAjBSMSMw
IQYDVQQKExpPcGVuUHJvamVjdCBEZXZlbG9wbWVudCBDQTErMCkGA1UEAxMiT3Bl
blByb2plY3QgRGV2ZWxvcG1lbnQgQ0EgUm9vdCBDQTAeFw0yMjEwMTgxMTE1NDBa
Fw0zMjEwMTUxMTE1NDBaMFIxIzAhBgNVBAoTGk9wZW5Qcm9qZWN0IERldmVsb3Bt
ZW50IENBMSswKQYDVQQDEyJPcGVuUHJvamVjdCBEZXZlbG9wbWVudCBDQSBSb290
IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEu4rN0lOtgxoC83UKONMy2Ns7
tI0/u6qPp/Cw92xhaTdh/X9ZWKqIhp2VGj2HUJOOfQXrFew7jbLGOvvoXib0Y6NF
MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE
FPjV1zK2GZu8x4uR0QDotk5kNinEMAoGCCqGSM49BAMCA0kAMEYCIQDS2OpCnHM7
RV7fFHT3KsG3q4lA3dJUKGighQaQ2qOwNwIhAOMmWGWd3EaD87q4RROyVt3h7vIN
nMJRu7L9il84hFF2
-----END CERTIFICATE-----

View file

@ -0,0 +1,112 @@
{
config,
pkgs,
lib,
vm,
...
}: let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
varsFile = "${xdg.dataHome}/libvirt/OVMF_VARS_${vm.name}.fd";
generateXML = import ./guest-xml.nix;
in {
serviceConfig = {
Type = "oneshot";
RemainAfterExit = "yes";
Restart = "no";
};
script = let
networkXML = pkgs.writeText "network.xml" (import ./network-xml.nix {
inherit config;
inherit pkgs;
inherit lib;
});
machineXML = pkgs.writeText "${vm.name}.xml" (vm.generateXML {
inherit config;
inherit pkgs;
inherit lib;
inherit vm;
varsFile = varsFile;
});
in ''
echo "Checking if ${vm.name} is already running"
STATUS=$(${pkgs.libvirt}/bin/virsh list --all | grep "${vm.name}" | ${pkgs.gawk}/bin/awk '{ print $3 " " $4 }' )
if [[ $STATUS != "shut off" && $STATUS != "" ]]; then
echo "Domain ${vm.name} is already running or in an inconsistent state:"
${pkgs.libvirt}/bin/virsh list --all
exit 0
fi
echo "Creating network XML"
NET_TMP_FILE="/tmp/network.xml"
NETUUID="$(${pkgs.libvirt}/bin/virsh net-uuid 'default' || true)"
(sed "s/UUID/$NETUUID/" '${networkXML}') > "$NET_TMP_FILE"
echo "Defining and starting network"
${pkgs.libvirt}/bin/virsh net-define "$NET_TMP_FILE"
${pkgs.libvirt}/bin/virsh net-start 'default' || true
VARS_FILE=${varsFile}
if [ ! -f "$VARS_FILE" ]; then
echo "Copying vars filej"
cp /run/libvirt/nix-ovmf/OVMF_VARS.fd "$VARS_FILE"
fi
echo "Replacing USB device IDs in the XML"
# Load the template contents into a tmp file
TMP_FILE="/tmp/${vm.name}.xml"
cat "${machineXML}" > "$TMP_FILE"
# Set VM UUID
UUID="$(${pkgs.libvirt}/bin/virsh domuuid '${vm.name}' || true)"
sed -i "s/UUID/''${UUID}/" "$TMP_FILE"
${
if vm.handOverUSBDevices
then ''
# Hand over mouse
USB_BUS=3
USB_DEV=$(${pkgs.usbutils}/bin/lsusb | grep 046d:c52b | grep "Bus 00''${USB_BUS}" | cut -b 18)
LINE_NUMBER=$(cat $TMP_FILE | grep -n -A 1 0xc52b | tail -n 1 | cut -b 1,2,3)
sed -i "''${LINE_NUMBER}s/.*/<address bus=\"''${USB_BUS}\" device=\"''${USB_DEV}\" \/>/" "$TMP_FILE"
# Hand over keyboard
USB_BUS=$(${pkgs.usbutils}/bin/lsusb | grep 046d:c328 | cut -b 7)
USB_DEV=$(${pkgs.usbutils}/bin/lsusb | grep 046d:c328 | cut -b 18)
LINE_NUMBER=$(cat $TMP_FILE | grep -n -A 1 0xc328 | tail -n 1 | cut -b 1,2,3)
sed -i "''${LINE_NUMBER}s/.*/<address bus=\"''${USB_BUS}\" device=\"''${USB_DEV}\" \/>/" "$TMP_FILE"
''
else ""
}
# TODO: Set correct pci address for the GPU too
# Setup looking glass shm file
echo "Setting up looking glass shm file"
${pkgs.coreutils-full}/bin/truncate -s 0 /dev/shm/looking-glass
${pkgs.coreutils-full}/bin/dd if=/dev/zero of=/dev/shm/looking-glass bs=1M count=32
# Load and start the xml definition
echo "Loading and starting the VM XML definition"
${pkgs.libvirt}/bin/virsh define "$TMP_FILE"
${pkgs.libvirt}/bin/virsh start '${vm.name}'
'';
preStop = ''
${pkgs.libvirt}/bin/virsh shutdown '${vm.name}'
let "timeout = $(date +%s) + 10"
while [ "$(${pkgs.libvirt}/bin/virsh list --name | grep --count '^${vm.name}$')" -gt 0 ]; do
if [ "$(date +%s)" -ge "$timeout" ]; then
# Meh, we warned it...
${pkgs.libvirt}/bin/virsh destroy '${vm.name}'
else
# The machine is still running, let's give it some time to shut down
sleep 0.5
fi
done
${pkgs.libvirt}/bin/virsh net-destroy 'default' || true
'';
}

View file

@ -0,0 +1,82 @@
{
config,
pkgs,
lib,
...
}:
with lib; let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
createService = import ./create-service.nix;
generateXML = import ./guest-xml.nix;
generateTailsXML = import ./tails-xml.nix;
isolateGPU = "rx550x";
memory = 48; # in GB
handOverUSBDevices = false;
isolateAnyGPU = isolateGPU != null;
in {
config = mkIf psCfg.virtualisation.enable {
boot.extraModprobeConfig = mkIf isolateAnyGPU (concatStringsSep "\n" [
"softdep amdgpu pre: vfio vfio_pci"
(
if isolateGPU == "rx5700xt"
then "options vfio-pci ids=1002:731f,1002:ab38"
else "options vfio-pci ids=1002:699f,1002:aae0"
)
]);
systemd.user.services = {
vm-windows = createService {
inherit config;
inherit pkgs;
inherit lib;
vm = {
name = "windows";
disk = "/dev/disk/by-id/ata-SanDisk_SDSSDA240G_162402455603";
id = "http://microsoft.com/win/10";
gpu = true;
mountHome = false;
memory = memory;
isolateGPU = isolateGPU;
handOverUSBDevices = handOverUSBDevices;
generateXML = generateXML;
};
};
vm-manjaro = createService {
inherit config;
inherit pkgs;
inherit lib;
vm = {
name = "manjaro";
disk = "/dev/disk/by-id/ata-KINGSTON_SM2280S3G2240G_50026B726B0265CE";
id = "https://manjaro.org/download/#i3";
gpu = true;
mountHome = true;
memory = memory;
isolateGPU = isolateGPU;
handOverUSBDevices = handOverUSBDevices;
generateXML = generateXML;
};
};
vm-tails = createService {
inherit config;
inherit pkgs;
inherit lib;
vm = {
name = "tails";
disk = "/var/lib/vms/tails/tails-amd64-5.4.iso";
# disk = "/var/lib/vms/nixos/nixos-minimal.iso";
id = "https://tails.boum.org/install/index.en.html";
gpu = false;
mountHome = false;
memory = 16;
isolateGPU = isolateGPU;
handOverUSBDevices = false;
generateXML = generateTailsXML;
};
};
};
};
}

View file

@ -0,0 +1,263 @@
{
config,
pkgs,
lib,
vm,
varsFile,
...
}: let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
home = config.home-manager.users."${psCfg.user.name}".home;
in ''
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
<name>${vm.name}</name>
<uuid>UUID</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="${vm.id}"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='GB'>${toString vm.memory}</memory>
<currentMemory unit='GB'>${toString vm.memory}</currentMemory>
<vcpu placement='static'>12</vcpu>
<cputune>
<vcpupin vcpu='0' cpuset='6'/>
<vcpupin vcpu='1' cpuset='7'/>
<vcpupin vcpu='2' cpuset='8'/>
<vcpupin vcpu='3' cpuset='9'/>
<vcpupin vcpu='4' cpuset='10'/>
<vcpupin vcpu='5' cpuset='11'/>
<vcpupin vcpu='6' cpuset='18'/>
<vcpupin vcpu='7' cpuset='19'/>
<vcpupin vcpu='8' cpuset='20'/>
<vcpupin vcpu='9' cpuset='21'/>
<vcpupin vcpu='10' cpuset='22'/>
<vcpupin vcpu='11' cpuset='23'/>
</cputune>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-4.2'>hvm</type>
<loader readonly='yes' type='pflash'>/run/libvirt/nix-ovmf/OVMF_CODE.fd</loader>
<nvram>${varsFile}</nvram>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<hyperv>
<relaxed state='on'/>
<vapic state='on'/>
<spinlocks state='on' retries='8191'/>
<vendor_id state='on' value='wahtever'/>
</hyperv>
<kvm>
<hidden state='on'/>
</kvm>
<vmport state='off'/>
</features>
<cpu mode='custom' match='exact' check='full'>
<model fallback='forbid'>EPYC-IBPB</model>
<vendor>AMD</vendor>
<topology sockets='1' dies='1' cores='6' threads='2'/>
<feature policy='require' name='x2apic'/>
<feature policy='require' name='tsc-deadline'/>
<feature policy='require' name='hypervisor'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='clwb'/>
<feature policy='require' name='umip'/>
<feature policy='require' name='stibp'/>
<feature policy='require' name='arch-capabilities'/>
<feature policy='require' name='ssbd'/>
<feature policy='require' name='xsaves'/>
<feature policy='require' name='cmp_legacy'/>
<feature policy='require' name='perfctr_core'/>
<feature policy='require' name='clzero'/>
<feature policy='require' name='wbnoinvd'/>
<feature policy='require' name='amd-ssbd'/>
<feature policy='require' name='virt-ssbd'/>
<feature policy='require' name='rdctl-no'/>
<feature policy='require' name='skip-l1dfl-vmentry'/>
<feature policy='require' name='mds-no'/>
<feature policy='require' name='pschange-mc-no'/>
<feature policy='disable' name='monitor'/>
<feature policy='disable' name='svm'/>
<feature policy='require' name='topoext'/>
</cpu>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>${pkgs.qemu}/bin/qemu-system-x86_64</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' discard='unmap' />
<source dev='${vm.disk}'/>
<backingStore/>
<target dev='vdb' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='8' model='pcie-to-pci-bridge'>
<model name='pcie-pci-bridge'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
${
if vm.mountHome
then ''
<filesystem type='mount' accessmode='mapped'>
<source dir='/home/${psCfg.user.name}'/>
<target dir='/media/home'/>
<address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
</filesystem>
''
else ""
}
<interface type='network'>
<mac address='52:54:00:44:cd:ac'/>
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x08' slot='0x01' function='0x0'/>
</interface>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='virtio'/>
<input type='keyboard' bus='virtio'/>
<graphics type='spice' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='off'/>
</graphics>
<video>
<model type='cirrus' vram='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
${
if vm.handOverUSBDevices
then ''
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x046d'/>
<product id='0xc328'/>
<address bus='1' device='1'/>
</source>
<address type='usb' bus='0' port='4'/>
</hostdev>
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x046d'/>
<product id='0xc52b'/>
<address bus='1' device='1'/>
</source>
<address type='usb' bus='0' port='5'/>
</hostdev>
''
else ""
}
${
if vm.gpu && vm.isolateGPU != null
then ''
<hostdev mode='subsystem' type='pci' managed='yes'>
<driver name='vfio'/>
<source>
<address domain='0x0000' bus='0x0b' slot='0x00' function='0x0'/>
</source>
<rom bar='on' file='/etc/nixos/hosts/chocolatebar/virtualisation/${vm.isolateGPU}.rom'/>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0' multifunction='on'/>
</hostdev>
<hostdev mode='subsystem' type='pci' managed='yes'>
<driver name='vfio'/>
<source>
<address domain='0x0000' bus='0x0b' slot='0x00' function='0x1'/>
</source>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x1'/>
</hostdev>
''
else ""
}
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</memballoon>
<shmem name='looking-glass'>
<model type='ivshmem-plain'/>
<size unit='M'>32</size>
</shmem>
</devices>
<qemu:commandline>
<qemu:arg value='-device'/>
<qemu:arg value='ich9-intel-hda,bus=pcie.0,addr=0x1b'/>
<qemu:arg value='-device'/>
<qemu:arg value='hda-micro,audiodev=hda'/>
<qemu:arg value='-audiodev'/>
<qemu:arg value='pa,id=hda,server=unix:/run/user/1001/pulse/native'/>
</qemu:commandline>
</domain>
''

View file

@ -0,0 +1,23 @@
{
config,
pkgs,
lib,
...
}: ''
<network>
<name>default</name>
<uuid>UUID</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:bd:a0:73'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
''

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,188 @@
{
config,
pkgs,
lib,
vm,
varsFile,
...
}: let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
home = config.home-manager.users."${psCfg.user.name}".home;
in ''
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
<name>${vm.name}</name>
<uuid>UUID</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="${vm.id}"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='GB'>${toString vm.memory}</memory>
<currentMemory unit='GB'>${toString vm.memory}</currentMemory>
<vcpu placement="static">8</vcpu>
<os>
<type arch="x86_64" machine="pc-q35-7.0">hvm</type>
<boot dev="cdrom"/>
</os>
<features>
<acpi/>
<apic/>
<vmport state="off"/>
</features>
<cpu mode="host-passthrough" check="none" migratable="on"/>
<clock offset="utc">
<timer name="rtc" tickpolicy="catchup"/>
<timer name="pit" tickpolicy="delay"/>
<timer name="hpet" present="no"/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled="no"/>
<suspend-to-disk enabled="no"/>
</pm>
<devices>
<emulator>/run/libvirt/nix-emulators/qemu-system-x86_64</emulator>
<disk type="file" device="cdrom">
<driver name="qemu" type="raw"/>
<source file="${vm.disk}"/>
<target dev="sda" bus="sata"/>
<readonly/>
<address type="drive" controller="0" bus="0" target="0" unit="0"/>
</disk>
<controller type="usb" index="0" model="qemu-xhci" ports="15">
<address type="pci" domain="0x0000" bus="0x02" slot="0x00" function="0x0"/>
</controller>
<controller type="pci" index="0" model="pcie-root"/>
<controller type="pci" index="1" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="1" port="0x10"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0" multifunction="on"/>
</controller>
<controller type="pci" index="2" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="2" port="0x11"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x1"/>
</controller>
<controller type="pci" index="3" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="3" port="0x12"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x2"/>
</controller>
<controller type="pci" index="4" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="4" port="0x13"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x3"/>
</controller>
<controller type="pci" index="5" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="5" port="0x14"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x4"/>
</controller>
<controller type="pci" index="6" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="6" port="0x15"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x5"/>
</controller>
<controller type="pci" index="7" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="7" port="0x16"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x6"/>
</controller>
<controller type="pci" index="8" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="8" port="0x17"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x7"/>
</controller>
<controller type="pci" index="9" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="9" port="0x18"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x0" multifunction="on"/>
</controller>
<controller type="pci" index="10" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="10" port="0x19"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x1"/>
</controller>
<controller type="pci" index="11" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="11" port="0x1a"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x2"/>
</controller>
<controller type="pci" index="12" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="12" port="0x1b"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x3"/>
</controller>
<controller type="pci" index="13" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="13" port="0x1c"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x4"/>
</controller>
<controller type="pci" index="14" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="14" port="0x1d"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x5"/>
</controller>
<controller type="sata" index="0">
<address type="pci" domain="0x0000" bus="0x00" slot="0x1f" function="0x2"/>
</controller>
<controller type="virtio-serial" index="0">
<address type="pci" domain="0x0000" bus="0x03" slot="0x00" function="0x0"/>
</controller>
<interface type="network">
<mac address="52:54:00:58:5e:36"/>
<source network="default"/>
<model type="virtio"/>
<address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
</interface>
<serial type="pty">
<target type="isa-serial" port="0">
<model name="isa-serial"/>
</target>
</serial>
<console type="pty">
<target type="serial" port="0"/>
</console>
<channel type="unix">
<target type="virtio" name="org.qemu.guest_agent.0"/>
<address type="virtio-serial" controller="0" bus="0" port="1"/>
</channel>
<channel type="spicevmc">
<target type="virtio" name="com.redhat.spice.0"/>
<address type="virtio-serial" controller="0" bus="0" port="2"/>
</channel>
<input type="tablet" bus="usb">
<address type="usb" bus="0" port="1"/>
</input>
<input type="mouse" bus="ps2"/>
<input type="keyboard" bus="ps2"/>
<graphics type="spice" autoport="yes">
<listen type="address"/>
<image compression="off"/>
</graphics>
<sound model="ich9">
<address type="pci" domain="0x0000" bus="0x00" slot="0x1b" function="0x0"/>
</sound>
<audio id="1" type="spice"/>
<video>
<model type="qxl" ram="65536" vram="65536" vgamem="16384" heads="1" primary="yes"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>
</video>
<redirdev bus="usb" type="spicevmc">
<address type="usb" bus="0" port="2"/>
</redirdev>
<redirdev bus="usb" type="spicevmc">
<address type="usb" bus="0" port="3"/>
</redirdev>
<memballoon model="virtio">
<address type="pci" domain="0x0000" bus="0x04" slot="0x00" function="0x0"/>
</memballoon>
<rng model="virtio">
<backend model="random">/dev/urandom</backend>
<address type="pci" domain="0x0000" bus="0x05" slot="0x00" function="0x0"/>
</rng>
</devices>
</domain>''

View file

@ -0,0 +1,30 @@
# 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).
{
config,
pkgs,
lib,
...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
];
boot.loader.systemd-boot.enable = lib.mkForce false;
boot.loader.grub = {
enable = true;
efiSupport = true;
device = "nodev";
};
boot.loader.efi.canTouchEfiVariables = true;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "21.11"; # Did you read the comment?
}

View file

@ -0,0 +1,7 @@
{suites, ...}: {
imports =
[
./droppie.nix
]
++ suites.droppie;
}

52
hosts/droppie/droppie.nix Normal file
View file

@ -0,0 +1,52 @@
{
config,
pkgs,
lib,
self,
...
}:
with lib; let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
in {
imports = [
./configuration.nix
./nextcloud-web-tunnel.nix
./restic-backup.nix
];
config = {
hardware.cpu.intel.updateMicrocode = true;
pub-solar.core.disk-encryption-active = false;
pub-solar.core.lite = true;
security.sudo.extraRules = [
{
users = ["${psCfg.user.name}"];
commands = [
{
command = "ALL";
options = ["NOPASSWD"];
}
];
}
];
services.ddclient = {
enable = true;
ipv6 = true;
domains = ["backup.b12f.io"];
server = "ddns.hosting.de";
username = "b12f";
use = "web, web=http://checkip6.spdyn.de/, web-skip=''";
passwordFile = "/run/agenix/dyndns-droppie.key";
};
age.secrets."dyndns-droppie.key" = {
file = "${self}/secrets/dyndns-droppie.key";
mode = "400";
owner = "root";
};
};
}

View file

@ -0,0 +1,52 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["ahci" "usbhid" "uas"];
boot.initrd.kernelModules = ["dm-snapshot"];
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
fileSystems."/" = {
device = "/dev/disk/by-uuid/1dca9d02-555c-4b23-9450-8f3413fa7694";
fsType = "xfs";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/A24C-F252";
fsType = "vfat";
};
fileSystems."/media/internal" = {
device = "/dev/disk/by-uuid/5cf314a8-82f4-4037-a724-62d2ff226cff";
fsType = "ext4";
};
fileSystems."/home" = {
device = "/dev/disk/by-uuid/2ef980f1-1f27-4d2a-9789-00f45e791fcc";
fsType = "xfs";
};
swapDevices = [{device = "/dev/disk/by-uuid/0203b641-280f-4a3d-971d-fd32a666c852";}];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
networking.interfaces.enp2s0f0.useDHCP = lib.mkDefault true;
networking.interfaces.enp2s0f1.useDHCP = lib.mkDefault true;
powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -0,0 +1,29 @@
{
pkgs,
config,
...
}: let
psCfg = config.pub-solar;
in {
config = {
services.openssh.knownHosts = {
"cloud.pub.solar".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIABPJSwr9DfnqV0KoL23BcxlWtRxuOqQpnFnCv4SG/LW";
};
systemd.services.ssh-tunnel-cloud-pub-solar = {
unitConfig = {
Description = "Reverse SSH connection to enable backups from IPv4-only to IPv6-only host";
After = ["network.target"];
};
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.openssh}/bin/ssh -vvv -g -N -T -o 'ServerAliveInterval 10' -o 'ExitOnForwardFailure yes' -R 127.0.0.1:22022:localhost:22 root@cloud.pub.solar";
User = psCfg.user.name;
Group = "users";
Restart = "always";
RestartSec = "5s";
};
wantedBy = ["default.target"];
};
};
}

View file

@ -0,0 +1,50 @@
{pkgs, ...}: let
shutdownWaitMinutes = 15;
shutdownScript = pkgs.writeShellScriptBin "shutdown-wait" ''
STATUS_FILES="/media/internal/backups-pub-solar/status"
running=""
for f in $STATUS_FILES; do
declare started
declare finished
started=$(source $f ; echo ''${BACKUP_STARTED})
finished=$(source $f ; echo ''${BACKUP_FINISHED})
if [ -z "''${finished}" ]; then
echo "backup $(dirname $f) still running"
running="yes"
break
fi
done
if [ -n "''${running}" ] && [ "''${running}" = "yes" ]; then
echo "backups are still running"
exit 1
fi
echo "WARNING: System will be shut down within the next 15 minutes" | wall
sleep 10
shutdown -P +${builtins.toString shutdownWaitMinutes}
'';
in {
systemd.services."shutdown-after-backup" = {
enable = true;
serviceConfig = {
ExecStart = "${shutdownScript}/bin/shutdown-wait";
Type = "oneshot";
};
};
systemd.timers."shutdown-after-backup" = {
enable = true;
timerConfig = {
OnCalendar = "3..9:* Etc/UTC";
};
wantedBy = ["timers.target"];
partOf = ["shutdown-after-backup.service"];
};
}

View file

@ -5,7 +5,7 @@ pkgs: {
mopidy-soundcloud
mopidy-youtube
mopidy-local
mopidy-jellyfin
# mopidy-jellyfin
];
configuration = ''

View file

@ -46,12 +46,16 @@ in {
nix.settings.trusted-public-keys = cfg.publicKeys;
# These entries get added to /etc/hosts
networking.hosts = {
"127.0.0.1" =
networking.hosts = let
hostnames =
[]
++ lib.optionals cfg.enableCaddy ["caddy.local"]
++ lib.optionals config.pub-solar.printing.enable ["cups.local"]
++ lib.optionals config.pub-solar.paperless.enable ["paperless.local"]
++ lib.optionals cfg.enableHelp ["help.local"];
in {
"127.0.0.1" = hostnames;
"::1" = hostnames;
};
# Caddy reverse proxy for local services like cups
@ -71,6 +75,15 @@ in {
}
'')
(lib.optionalString
config.pub-solar.paperless.enable
''
paperless.local:80 {
request_header Host localhost:28981
reverse_proxy localhost:28981
}
'')
(lib.optionalString
cfg.enableHelp
''

View file

@ -16,6 +16,7 @@ in {
home-manager = with pkgs;
pkgs.lib.setAttrByPath ["users" psCfg.user.name] {
home.packages = [
croc
drone-cli
nmap
pgcli
@ -24,6 +25,7 @@ in {
restic
shellcheck
terraform
tea
];
};
};

View file

@ -18,14 +18,13 @@ in {
steam = pkgs.steam.override {};
};
home-manager = with pkgs;
pkgs.lib.setAttrByPath ["users" psCfg.user.name] {
home.packages = [
playonlinux
godot
obs-studio
obs-studio-plugins.wlrobs
];
};
home-manager.users = pkgs.lib.setAttrByPath [psCfg.user.name] {
home.packages = with pkgs; [
playonlinux
godot
obs-studio
obs-studio-plugins.wlrobs
];
};
};
}

View file

@ -0,0 +1,23 @@
{
lib,
config,
pkgs,
...
}:
with lib; let
psCfg = config.pub-solar;
cfg = config.pub-solar.mobile;
in {
options.pub-solar.mobile = {
enable = mkEnableOption "Add android adb and tooling";
};
config = mkIf cfg.enable {
programs.adb.enable = true;
users.users = with pkgs;
lib.setAttrByPath [psCfg.user.name] {
extraGroups = ["adbusers"];
};
};
}

View file

@ -0,0 +1,40 @@
{
lib,
config,
pkgs,
...
}:
with lib; let
psCfg = config.pub-solar;
cfg = config.pub-solar.paperless;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
in {
options.pub-solar.paperless = {
enable = mkEnableOption "All you need to go paperless";
ocrLanguage = mkOption {
description = "OCR language";
type = types.str;
example = "eng+deu";
default = "eng";
};
consumptionDir = mkOption {
description = "Directory to be watched";
type = types.str;
example = "/var/lib/paperless/consume";
default = "/home/${psCfg.user.name}/Documents";
};
};
config = mkIf cfg.enable {
services.paperless = {
enable = true;
user = psCfg.user.name;
consumptionDir = cfg.consumptionDir;
extraConfig = {
PAPERLESS_OCR_LANGUAGE = cfg.ocrLanguage;
PAPERLESS_ADMIN_USER = psCfg.user.name;
PAPERLESS_AUTO_LOGIN_USERNAME = psCfg.user.name;
};
};
};
}

View file

@ -23,6 +23,10 @@ in {
pub-solar.core.hibernation.enable = true;
services.logind.lidSwitch = "hibernate";
services.tor.settings = {
UseBridges = true;
};
# The options below are directly taken from or inspired by
# https://xeiaso.net/blog/paranoid-nixos-2021-07-18

View file

@ -28,6 +28,7 @@ in {
hardware.sane = {
enable = true;
brscan4.enable = true;
extraBackends = [pkgs.hplipWithPlugin];
};
};
}

View file

@ -36,3 +36,11 @@ bindsym $mod+Ctrl+r exec record-screen
# Launcher
set $menu exec alacritty --class launcher -e env TERMINAL_COMMAND="alacritty -e" sway-launcher
bindsym $mod+Space exec $menu
set $mode_vncclient In VNCClient mode. Press $mod+Num_Lock or $mod+Shift+Escape to return.
bindsym $mod+Num_Lock mode "$mode_vncclient"
bindsym $mod+Shift+Escape mode "$mode_vncclient"
mode "$mode_vncclient" {
bindsym $mod+Num_Lock mode "default"
bindsym $mod+Shift+Escape mode "default"
}

View file

@ -0,0 +1,11 @@
{
psCfg,
pkgs,
}: "
address=0.0.0.0
enable_auth=true
username=${psCfg.user.name}
password=testtest
private_key_file=/run/agenix/vnc-key.pem
certificate_file=/run/agenix/vnc-cert.pem
"

View file

@ -16,6 +16,8 @@ in {
description = "Choose sway's default terminal";
};
vnc.enable = mkEnableOption "Enable vnc service";
v4l2loopback.enable = mkOption {
type = types.bool;
default = true;
@ -96,6 +98,12 @@ in {
systemd.user.services.waybar = import ./waybar.service.nix {inherit pkgs psCfg;};
systemd.user.targets.sway-session = import ./sway-session.target.nix {inherit pkgs psCfg;};
systemd.user.services.wayvnc = mkIf psCfg.sway.vnc.enable (import ./wayvnc.service.nix pkgs);
xdg.configFile."wayvnc/config".text = import ./config/wayvnc/config.nix {
inherit psCfg;
inherit pkgs;
};
xdg.configFile."sway/config".text = import ./config/config.nix {inherit config pkgs;};
xdg.configFile."sway/config.d/colorscheme.conf".source = ./config/config.d/colorscheme.conf;
xdg.configFile."sway/config.d/theme.conf".source = ./config/config.d/theme.conf;

View file

@ -0,0 +1,18 @@
pkgs: {
Unit = {
Description = "A VNC server for wlroots based Wayland compositors ";
Documentation = "https://github.com/any1/wayvnc";
BindsTo = ["sway-session.target"];
After = ["graphical-session-pre.target" "network-online.target"];
Wants = ["graphical-session-pre.target" "network-online.target"];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.wayvnc}/bin/wayvnc -r -p 0.0.0.0 5901";
};
Install = {
WantedBy = ["sway-session.target"];
};
}

View file

@ -54,6 +54,23 @@ in {
bleopt history_share=1
bleopt filename_ls_colors="$LS_COLORS"
# Bash vim mode keybindings
if [[ $- == *i* ]]; then # in interactive session
set -o vi
ble-bind -m vi_imap -f 'ENTER' 'vi_imap/complete'
ble-bind -m vi_imap -f 'TAB' 'vi_imap/complete'
ble-bind -m vi_imap -f 'j j' 'vi_imap/normal-mode'
ble-bind -m vi_imap -f 'ESC' 'vi_imap/normal-mode'
ble-bind -m vi_nmap -f 'h' 'vi_nmap/insert-mode'
ble-bind -m vi_nmap -f 'i' 'vi-command/backward-line'
ble-bind -m vi_nmap -f 'j' 'vi-command/backward-char'
ble-bind -m vi_nmap -f 'k' 'vi-command/forward-line'
ble-bind -m vi_nmap -f 'l' 'vi-command/forward-char'
fi
# end of .bashrc
[[ ''${BLE_VERSION-} ]] && ble-attach
'';

View file

@ -60,7 +60,6 @@ in {
quick-scope
suda-vim
syntastic
vim-gutentags
vim-vinegar
vim-workspace-nvfetcher

View file

@ -74,6 +74,8 @@ lua <<EOF
-- Add additional capabilities supported by nvim-cmp
local capabilities = require('cmp_nvim_lsp').default_capabilities()
-- vscode HTML lsp needs this https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#html
capabilities.textDocument.completion.completionItem.snippetSupport = true
-- vscode HTML lsp needs this https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#html
capabilities.textDocument.completion.completionItem.snippetSupport = true
@ -172,6 +174,13 @@ lua <<EOF
end
end --
-- configure floating diagnostics appearance, symbols
local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " }
for type, icon in pairs(signs) do
local hl = "DiagnosticSign" .. type
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl })
end
-- Set completeopt to have a better completion experience
vim.o.completeopt = 'menuone,noselect'

View file

@ -4,6 +4,8 @@ channels: final: prev: {
inherit
(channels.latest)
cachix
docker
docker-compose
dhall
discord
element-desktop
@ -17,6 +19,18 @@ channels: final: prev: {
tdesktop
arduino
arduino-cli
steam
firefox
;
inherit
(channels.pub-solar)
yubikey-agent
;
inherit
(channels.master)
factorio-headless
;
haskellPackages =

View file

@ -19,6 +19,5 @@ with final; {
wcwd = writeShellScriptBin "wcwd" (import ./wcwd.nix final);
drone-docker-runner = writeShellScriptBin "drone-docker-runner" (import ./drone-docker-runner.nix final);
record-screen = writeShellScriptBin "record-screen" (import ./record-screen.nix final);
# ps-fixes
scan2paperless = writeShellScriptBin "scan2paperless" (import ./scan2paperless.nix final);
}

View file

@ -9,7 +9,7 @@ with self; ''
--env=DRONE_RPC_SECRET=$(${self.libsecret}/bin/secret-tool lookup drone rpc-secret) \
--env=DRONE_RUNNER_CAPACITY=8 \
--env=DRONE_RUNNER_NAME=$(${self.inetutils}/bin/hostname) \
--publish=3000:3000 \
--publish=30010:30010 \
--restart=always \
--name=drone-runner \
drone/drone-runner-docker:1

View file

@ -1,4 +1,5 @@
self: with self; let
self:
with self; let
looking-glass-client = self.looking-glass-client.overrideAttrs (old: {
meta.platforms = ["x86_64-linux" "aarch64-linux"];
});

View file

@ -1,4 +1,5 @@
self: with self; let
self:
with self; let
websocket-client = python39.pkgs.buildPythonPackage rec {
pname = "websocket-client";
version = "1.2.1";

4
pkgs/scan2paperless.nix Normal file
View file

@ -0,0 +1,4 @@
self:
with self; ''
export PATH=${lib.makeBinPath [pkgs.coreutils pkgs.sane-frontends pkgs.sane-backends pkgs.ghostscript pkgs.imagemagick]}
''

View file

@ -1,4 +1,5 @@
self: with self; let
self:
with self; let
uhk-agent-bin = stdenv.mkDerivation rec {
pname = "uhk-agent-bin";
version = "1.5.14";

View file

@ -27,6 +27,7 @@ in {
"lp"
"scanner"
];
shell = pkgs.bash;
initialHashedPassword =
if psCfg.user.password != null
then psCfg.user.password

View file

@ -12,7 +12,7 @@ in {
./session-variables.nix
];
home-manager = pkgs.lib.setAttrByPath ["users" psCfg.user.name] {
home-manager.users = pkgs.lib.setAttrByPath [psCfg.user.name] {
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;

135
profiles/core/default.nix Normal file
View file

@ -0,0 +1,135 @@
{
self,
config,
lib,
pkgs,
inputs,
...
}: let
inherit (lib) fileContents;
in {
# Sets nrdxp.cachix.org binary cache which just speeds up some builds
imports = [../cachix];
config = {
pub-solar.terminal-life.enable = true;
pub-solar.audio.enable = true;
pub-solar.crypto.enable = true;
pub-solar.devops.enable = true;
# This is just a representation of the nix default
nix.systemFeatures = ["nixos-test" "benchmark" "big-parallel" "kvm"];
environment = {
systemPackages = with pkgs; [
# Core unix utility packages
coreutils-full
progress
dnsutils
inetutils
mtr
pciutils
usbutils
gitFull
git-lfs
git-bug
wget
openssl
openssh
curl
htop
lsof
psmisc
xdg-utils
sysfsutils
renameutils
nfs-utils
moreutils
mailutils
keyutils
input-utils
elfutils
binutils
dateutils
diffutils
findutils
exfat
file
# zippit
zip
unzip
# Modern modern utilities
p7zip
croc
jq
# Nix specific utilities
niv
manix
nix-index
nix-tree
nixpkgs-review
# Build broken, python2.7-PyJWT-2.0.1.drv' failed
#nixops
psos
nvd
# Fun
neofetch
];
};
fonts = {
fonts = with pkgs; [powerline-fonts dejavu_fonts];
fontconfig.defaultFonts = {
monospace = ["DejaVu Sans Mono for Powerline"];
sansSerif = ["DejaVu Sans"];
};
};
nix = {
# use nix-dram, a patched nix command, see: https://github.com/dramforever/nix-dram
package = inputs.nix-dram.packages.${pkgs.system}.nix-dram;
# Improve nix store disk usage
autoOptimiseStore = true;
gc.automatic = true;
optimise.automatic = true;
# Prevents impurities in builds
useSandbox = true;
# give root and @wheel special privileges with nix
trustedUsers = ["root" "@wheel"];
# Generally useful nix option defaults
extraOptions = ''
min-free = 536870912
keep-outputs = true
keep-derivations = true
fallback = true
# used by nix-dram
default-flake = flake:nixpkgs
'';
};
# For rage encryption, all hosts need a ssh key pair
services.openssh = {
enable = true;
openFirewall = lib.mkDefault true;
passwordAuthentication = false;
};
# Service that makes Out of Memory Killer more effective
services.earlyoom.enable = true;
# Use latest LTS linux kernel by default
boot.kernelPackages = pkgs.linuxPackages_5_15;
boot.supportedFilesystems = ["ntfs"];
};
}

View file

@ -8,5 +8,4 @@
inherit (lib) fileContents;
in {
pub-solar.gaming.enable = true;
pub-solar.docker.enable = true;
}

13
profiles/iot/default.nix Normal file
View file

@ -0,0 +1,13 @@
{
self,
config,
lib,
pkgs,
...
}: let
inherit (lib) fileContents;
in {
pub-solar.graphical.enable = false;
pub-solar.x-os.localProxyService.enable = false;
pub-solar.sway.enable = false;
}

View file

@ -0,0 +1,11 @@
{
self,
config,
lib,
pkgs,
...
}: let
inherit (lib) fileContents;
in {
pub-solar.mobile.enable = true;
}

View file

@ -0,0 +1,11 @@
{
self,
config,
lib,
pkgs,
...
}: let
inherit (lib) fileContents;
in {
pub-solar.virtualisation.enable = true;
}

55
secrets/b12f-env-secrets Normal file
View file

@ -0,0 +1,55 @@
age-encryption.org/v1
-> ssh-rsa kFDS0A
A5s6AqsL5vXDpDDaSM8wylfV/ULMuLU0mTkOvSvaI/XtLp1DfH6+hjL1ca5ET+yh
pgaCDlv/ITXOSGDawbK3PTLkVoTEVAIgbFTy2d3yP1o91n77d3dqdFMkflxar7wS
AnbIYOE0hL9q3BBgO3n00AjojeF0hiV9kdyYMNF3je3zcQPML9poP+QWghX4rpH2
W8dRb0LsowtUxREwEZ2i8UDIQ0nM/cwxyxHJ/jcT3VeasXDuXZEpFS/SwJHzFvJT
5Ez/+ByOCaJ8E4ShHX8BOuZasikwI9EuiWHCj/eTJXytmFezCWY3ZI3MHjaUXHhL
j3v3h1PQ2UxQApuhkG40zF6fhAGK7VFNEgAoF68V2eTB3ugm9qT4SiK392v5EnoU
nOKY0PHCCnOgZGOM3Zx1mvZpDdWEpqI5in6bHMWpRjqzTeYwi6P5l/aItqGBm0D5
erxwsLQMJLm9EbcSjFw9VYmwFky4jZOFSN9kSc/GiZM6ThZOVa7Dey4wicbU9YVf
Ye6eiWjsFCPqXhylgRqFd/gf0MNyp7QNIOlbDmLenWVO/QLB9z0ANiQbz9PEMIng
o74CsQeQcfO0hMcggHHMp2LILiNn9S1U429pCEtDGVpojnbtME1n2RMHbHfXpgVM
qCf8bzcjgQrZBZrZ438qXiXObUV2R7yrG8AA4ilmKBw
-> ssh-ed25519 TnSWKQ ZMWSfg5/Xhz58jMDmucQevWJMx9CR/pvGdcxY9nE9Es
n1QCG5p74ScQyFQx6lX2gTU+GLoULlNjjAunp2e6Hjc
-> ssh-rsa 8daibg
aXyfsNZx2LEnm1ij2KJSyukYwxrPPYxc03xdoFMiPj2KMfdOdVcSRYQeyX3mym/Q
mj7SCEZQPmAocvU8KOKphG7+MOvLhgyTdwkf+CBjCiU28pkuDrYjI1j5md9MK4ln
auJ/XUJypBmpEp7eduRluk5Mxc82NjPXrGFARjatKj+d2/9PO+1FGawjj+er2FS9
BpK9op0mLX0/BXl764Luqsh3pG+p5cSjTAqpfXuO1Dzp1Q3EcOCj2x3sT24elGAf
8zOe6yBD+Uo027LAovqUf72Kzg/Fc+YfZbuLp65ybhIY0uF1arg4p+3grzWWBdI0
3howkDSudgA9QBkyMsP0mQ6bwyfpYUKFFWpxwaGaVWY/WUXI5K1J2olSgZc60FvW
BzQj0TTm8XeKo1i8PBV/er1mrJGwvwvb1VWFBYp/w3hDA/du0cFlfsPIX8WuhORX
vRZJQZ5sVHU1qYHBTtwlan5D18AUpMUNZf1XVZb08NMOsez1YSlKHia26CTQurG1
KxSxNIe76DEa3q5sLgRDEIvP4JtfKEdKuzPsUYR148ADZSPxVpWpUaYXedsO+JDt
JYcsOEJxG1uEvEg2S1heTgpJVK0wK3tp5qODUil0ZyIPo7YXG9frMcOXIkEmxZSm
/tzJ0voYzCeCNbrYuv7GsAcPUfXo2zIPJ3b7NkQ01uw
-> ssh-rsa kFDS0A
Au7S8JypcYKfb01y7hh85V84zhM5JMTF2KN2PGV2l+DsSuTqW5HzrzPOK7gXFfTU
Um1tU2SeezORYpbtaCSpNbrkVdOdvcXG+ItJvLIwfAnlsRPNdWYtco18erEiQxkw
DrlSqWb+UFHUhoUyaEj7ub2IzFkYxMIabX2PQL+bRY0b9+Bk5wV8LhWVr0OPl6zv
TSoZUxMts9JsALAK7AIR7hfA9F9qSRgc5ivPnJddVhxb85bZsg2PPfmLbg2flOmY
H8ZH/q7JvZ0D4RVxk3+V1jDDZCYv4eGsqCAqklDPRAnBq7KrDC04XExIXpy/OYhf
GDmGrEFfT24ZOIMOJoRDsyECpTD3E81FuDJyn5+hHmTu0qmy6sWaJteOSqbJ46D8
vPUhYeLB9b4sSvn0v1viUkRcfJZO6J5Ndh2TMg7SoJ3bOC2gK/sKbUi6w00gfjKg
PqdBs+nNaTerKNuEVQnpEwk1jiEbqYAjlcSn40zjXQ84lLXvGVlmoKmV6tAhJsH/
W2zfqSzqFRnYky3pCsFEogaUCeIendpb+oR1rVvbHntIPk2x/rEe1fb5NJ2ipPaI
UE3R5bRdnZbqgVTXp8oQpHGIysDWMOp05hXlV1yi5L1cfa+av0kufWGh9SxzJ0Hb
JHu4gJ3kEDrhSoHaG8+9s0Uhpr6fWNjcK+h3jQELJzI
-> ssh-ed25519 2Ca8Kg 7zqdy50BjjvIGcvmaeM0bkSwivSmrkge7ppnHWPMcwg
XEjHTeULveua7OsuKHnUSDwDaLBSpjfKzOH5MX6oBbA
-> ssh-rsa 2ggJWw
A2jGJC1GKUr5hHb4yeluJwYPuslSMBzmR6LehAyCJ17iTkIyO6Km5tfyq6ee0Q+H
0wcxiXexzyn1QJhTovpbPSe+fBcBWCnhmyfFCxzPk3cq9ip64ngPmAbim0dLP7PC
WUB1B8Ly2nhbT+j5UcZNQt2Q+83SFkqzNIjl+pJbq8Iau3iwWFntbhe0TDqcHsOf
Uw+E8UUSsGinYPcXZXrW5ZWNovVgXgr5KCSdX4QfcH7r5qNQMSjNpeT6kOMPg5Qj
ad3zTwMusbpDZxQdk6LcKZqlHSUBJxE4GKqtbHQ+JnF8DwolBWpjQUSS/Hz4c/de
9YLYYxK0H1IgZpv49alRpexnRuHVUhl1HixJRIpFaNm9tj0ezkt0AK7Y+e5J+x2Y
vyitzuuJezG75hBC3fFQLUosJm8kJ0YtqIfQsu/8OjDnZJhjCq0QijxHZexAF+9X
HBsMvj+XjGwNj045dN0PQzRPeTT2JAZDNIE/piwUdy9HgAAWdZzFONG2lp3fCl8+
-> d-grease "9JT y*PWo L yF
7Ig0w+Lz7Z8us57rZ/h9hZLNL7KQjcfNQt4jPBG2Qg
--- MLI+SiGgDJp5XLYzfpZpXdSgMc9y1+Ufs+NsiVYKp3o
>Ïl¾Ÿ€á,ÞJŽ[Ê”àü}fT{Ñ¥Þµ<a's;$…°Å.À~k®œ‰)˜¡L\Å6"‡…ß«‚ dó$ÿ.ƒ? Y)‰…“úJÅ÷Â)‹¼þ;¥Q—6±„Ów&‡A…?SŸt°^©òzƒG* tÓ«OŠXlˆÁ<14>ˆÍ{ÞI£û¶Ç½­ž²ÓäO±»øûUŒýGuø

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,27 @@
age-encryption.org/v1
-> ssh-rsa kFDS0A
lbrJzpCXpf3BJYL80d2vD/b4raoPnUKV0D9Ka9yKb72W3ATfA/Cqq7vpisHRnwyj
3pt1TfrPzti/8ZKDqY/Zw171jQbOF6zW45z4m8yJu4J1LYXh8yYrTR3YPwhPoGYm
eZJWWj2YghqCFC7vdL/wZFjkStxwBGgrJfNOxJBcXOpUX2TOzfdNAgJ/pEkvdd/L
jktiU5ITt7KXruwSEXRzHVfmntl4SaqDqYfeb0Y0q2a1oMpxTnBKcYXj6dYcZIHv
Lm8HX0JsIiThz/DXB4sP2O5GlGeYyibj2iMSCsCqadwDpUndVtJnzFgjSQD5A0gd
enNTYly3GSmC9TWt/r2VHHyneAnJ3HQKB5hUEqxPz9peemnvfTA89SIGHddmkXfY
XSeN5WJnSG0+WAOwrpJjzl9CgUg9xJS7dDqVob3CwL9oVEQP8FcuuyqCg72ppd4J
fdseq5/R+HuVnh6sEUHoaHEDidHtTrpE2Rd49Tesj/BT+YrJyQ/kQqHmy9RiLU2f
DSRwLO4/qHF6W8UfuF2N08aMxRpxqXPWTjI/vHxoSJRcSqaofF42x50OQU8lY96c
8bPlDPB7HOBg+7bVvOQCaR3+KRuOx+HYpeMwEokQTwCke+frPfXorilNbAcaFUp4
QiU1sUZia/FOZ+j47+6pkfC2DfLpiNL2TLWYcNtIzUc
-> ssh-ed25519 7Wns0A aKiZ8iw+Ub5rByBef0apOn6lG5Bv6tzFCiBu3DN6sSg
58+9kySg3ajO7E5V87b/qRu9axpu2hQUuY/cVTt2YdI
-> ssh-rsa wVtlwQ
RbrfuwS5zQzL9yMWFDSnWj9cQFLirTH37Xf79Dis2CJIDd83vmlmGNY5x1aPpZoZ
J6XDhibGTJc02DYuNVIE1IXm0x9tc6Z9PTT+WiAFt1JuKHguXTWLRMM9HmyvWWDg
bFsRDAcYup+SK5d+ME+XooDGueC822rAjkGIRHNSCimGwuLpDRKqyyVfYA+dcfiP
EoYH7x4S09jYRr1C5EkbraLbm1vijc5ikJw3b42KKbyo3wDwKga+Vk2nl2AtgjZp
KipZlyjs+IjMRXX5IBpgoRtXcvHuidsOSc+guRo0ihF9MbzRc/Tt2g0V7t3KjeT0
SJDLmHOos2RKTmx06aidDg
-> Dz(k-grease ~FF p m)E{J3E
7Igp3pclCAzAmeky5cPqlIzcITT+0jvieQe7ruSxRYRYqpYU7tMQFmHuNUahp+BP
MzOYiM+PIQmn
--- IC9SI76EjaFZxQ5odEeIv49n/O8uOdpM6LE1Z7dtHg4
l%Àu¯¯ÃE„\ÎüÔ ?2\&ÚwG&@¡­W£~9"úŠ^ÊƆý¼Á<>oån^šë<C5A1>㻳xšèOI‡¢uOíò‡21c*ãm¸%ô)ý#”جeõIÙ6îA/i

Binary file not shown.

BIN
secrets/keyfile-biolimo.bin Normal file

Binary file not shown.

Binary file not shown.

44
secrets/mopidy.conf Normal file
View file

@ -0,0 +1,44 @@
age-encryption.org/v1
-> ssh-rsa kFDS0A
pgJUXnYT0UgB7h8dWOBCIO6OuXwpjmBuQpJBXnI2Zh5X2fiGQVyrrcrm8VSWLHOd
za9SME+PxcGXDGgwaGpCl8tOh93WRUC0RtNTBmoiyzrfkbQtm9gfnt51JpHscuTc
wzZ9cxMvtKSNGsCuK5oeX9ZxVgXH5QFomwvADXoy14HacgEOzLTPU6vrPrOonGAG
kDqYDzf87V2BfPttzONoScsVsFV26EQntxDx5/8Hja4ceOvgBwm2GczUzpgfIRCA
To+az2B1Y0h/BWMqzRAhobuN/UIQcZAKro4uf8SbpKqPQrON+k1tAE+lrMUFLx1A
2ZayulT/Partcm6L8Yb0JAn24eXFla52XQ6JyukSbtoqZxEQIcjbM34+KFKMftIA
M8taZIG2JWyFdHBPO4RAMyGbNpQN5hsDvJWGIJePj4bAxW7GX9JJiT7gg1iCKce3
SINdaBt4O3RJ49wTGqJtMSJSlfzLf7s4zHx5oaozAEt84h97A2Yt/8Lg1Wmc2Aji
Q4XG6w8OQ/Fk8E/EeSZ27udMHF94TfQ9mzbKdMJRclLDlKKlxeYA6gea4QYb6GLi
8tY6qnDpF9jwV7ehehM9KYhJcCLw7MYNwGI6oPmTagZCRhXDYULbmK5gfkspcrZ1
zZn5yOCwt+MA3U2NfpxNOMs0LvaGU7HOruzyD9DLp+4
-> ssh-ed25519 TnSWKQ SWZZJeUCYeSkYwIKmrsMa/MUkNK7xIn+213hy6X51Uk
FDzM+HzDh+5+9RI+gjTPKNT74DPSvxA+CKJpHXSMX5c
-> ssh-rsa 8daibg
XthUstyN7tDd/vAw3y6knQWNI1M2GEKGDzvmOXFMgwxUcBUNPZmPnZvTfmUXY81Z
iF13Lruwid0/4Pb9dcYyyifzoqnNb6SvnzczoUSpqQc6m+6BLX4kSTIN1Pulwt8A
kWrOekvKy9J7Z2QsW6QKfxB4xaAc+BA9kHOgWWpLTyx2GOm0ksLjUnsd3Zo/xXsc
JpjuSNcsUM9mCP00RjamX1SwrAc/tRnoOSOD6jmED5M0Xfb7bE2AORUQ3Em8B4iG
CgaTEXFppZN96+BHOumOP1wAbH7uI0EdQP/SvR+qelCH35C0pSWZ4AuyvT5kvoYL
CyK6GQ8rVnDrBaWQIj4TPhpB1xVxKd01AZX9ITdhPdTATJFwCcVxoWgCTtjNGaIc
4GldFh0+nXUUV9spzxFbAhiJwy+PHfNfuJ1gyYMrgLY4mQPhA6ntPeWqZOb20cYZ
ABl7eHN9AAQnibw6EufkgH/U9v81HlWjbLWedAHNPGAldDF5uNrY+FRiqXWT2Ivb
9CkU/pUFAAcZs7GwEHTVz2dWsuxthS/P/DhN1YshDmY17gTBEf+40SUATsD1wBV0
tdmbU3i79djbfXXvazR+hi7qDtKo+zJKCDORSq66J70njl0pwN/QIKGQnKt5sYCm
3kPTZHrR6ys82MhTFk/C1G4aJjQScTz4buA5UH+0hsE
-> ssh-ed25519 2Ca8Kg eqyr8Yr3rrWlhCd+TmKsnywFdp1mwt3jZwuJzO0TwzM
mcfYZGTAebrZY9Ool8sPn25wPiwe6StBUzdVAyEErAE
-> ssh-rsa 2ggJWw
h00c7evck2bHux9EhMjLQa1f3O3tReLd65LDJB28jH7SbpT6t8Gxfk9tamGFHg4Z
lGxkzZjK9xnroBpZv5ikuP+tD7A6A2saDXDnnAw+wHUGv0UO5yzr0HPIvwE1bVR5
GOW1iqPMHKB2v6NeTaBG1g5TohSYEDDINkQv+Q4NyPhdpX9bGd3biWiBAa1gy3Xp
XmDwtUfBg9IN+EeQTpC/tc4C1pLd3k7E+5pZDQebfTlvXZ83SH05BpBnpakPWNty
Pf3s/iMwWBiJ+8GiwQ7c6FjTrr9ImJe8nD6mknWGpsMEQ9wB4Bd9l5RTjpTW9wCo
DNtN8Mo0SGgFXjj/5XO0kMDhDike/GLr6wfD0HVgRP9MtcatvEaezp4RY6NIknjy
F49KFsZWhzqwU2c4VX3ayFGJHcn/TT6o2QL3qZoI6x23ZFHQlXtQjXfhTkXk2qJt
565cgrWzLYV7y+DB5fwaG/+Twlnr8rMQOPwyEnrWylh+AY3H/2/M1qQz2b2UQapl
-> }L0d&,o-grease QVMP gPkF4&,`
YaavYxfymQIl4xRnz1AZxLAY7+r2R9Mftt9AIk11bEymVtCWhsWtSbnhsq9q+fjm
yYwVUyIh4eeH4oOdz3ssnmB3gg
--- 5VOiRneXGtTtik3m0OJY8zV8Sboh18DIB4eM07M+1Lo
ö™:üŠØþI{ˆ)ƒô½-tÈ«½©jT»0rE™ÚYæg4wFA³SÖ÷9RÐ…çëQ¡5<C2A1>c{ºÈzj…lÁRAØãàÛH”L y£ø²W•6¢¢l>¸–ߪ}­m¤Ý¿óÆbѱ“ô6*ÎËg"ßãÈè}Xˆí>W¬œÛÇ<C39B>ÕTÉÞ­™é¼Ì# mÍi@êiö:°zõ愲jbc(ƦŸýìùô{ô™¨ª¯©âwã(ÖθÈäyÔ§`iÌó_ïC-`ŽPô³²e«¶ç<C2B6>CÈ»tSÆ5Ž·e÷Zp%þQ´B¿Êh4yžC°dY¿«<C2BF>—Lˆ<Nw½µýÆ<>„ÊVñ4ù/ð:•+Ÿãx5ÚÞÁ8_V F6ð½)a>…. }É‘^h¿óÖ®îÍ<C3AE>ø.Ÿ<C5B8>»ËË¿GÑà”ÿ~ÝŒd¢EoZ=|×C•O ö”x7,Nƒ•ïú¹PÖä¥ ˆ%*I%®kÎ[<5B>ØÐ|-<2D>ÈžT¦úe~3¥6ËÞ!C"Öai/kDmì]<5D>íJ÷Û>ü¬n^»OýÚ—MãÌíüSÁ°7„¼»<C2BC>1P €ú?x\;B¸#u”BŽ$hѵ:¶Ë

View file

@ -1,8 +1,61 @@
let
# set ssh public keys here for your system and user
system = "";
user = "";
allKeys = [system user];
bbcom = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCmXpOU6vzQiVSSYCoxHYv7wDxC63Qg3dxlAMR6AOzwIABCU5PFFNcO0NWYms/YR7MOViorl+19LCLRABar9JgHU1n+uqxKV6eGph3OPeMp5sN8LAh7C9N+TZj8iJzBxQ3ch+Z/LdmLRwYNJ7KSUI+gwGK6xRS3+z1022Y4P0G0sx7IeCBl4lealQEIIF10ZOfjUdBcLQar7XTc5AxyGKnHCerXHRtccCoadLQujk0AvPXbv3Ma4JwX9X++AnCWRWakqS5UInu2tGuZ/6Hrjd2a9AKWjTaBVDcbYqCvY4XVuMj2/A2bCceFBaoi41apybSk26FSFTU4qiEUNQ6lxeOwG4+1NCXyHe2bGI4VyoxinDYa8vLLzXIRfTRA0qoGfCweXNeWPf0jMqASkUKaSOH5Ot7O5ps34r0j9pWzavDid8QeKJPyhxKuF1a5G4iBEZ0O9vuti60dPSjJPci9oTxbune2/jb7Sa0yO06DtLFJ2ncr5f70s/BDxKk4XIwQLy+KsvzlQEGdY8yA6xv28bOGxL3sQ0HE2pDTsvIbAisVOKzdJeolStL9MM5W8Hg0r/KkGj2bg0TfoRp1xHV9hjKkvJrsQ6okaPvNFeZq0HXzPhWMOVQ+/46z80uaQ1ByRLr3FTwuWJ7F/73ndfxiq6bDE4z2Ji0vOjeWJm6HCxTdGw== hello@benjaminbaedorf.com";
biolimo-host = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBZzg8pfVtFonx/IvO2MKG5uVF/sMJAOt1Ifm9Vds2eA root@biolimo";
biolimo-user = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDDoYNvXWunQYFORRjcYH1F98+zr20U79ROh+gmaC7AY/x3yf4y8uyMayF56VgQLVNwgEchT5t4dNb9qo2+1oUnjiKrKAVfQMN6WMMMEr4F4WT784uvBx5Uo6vmhgAa+xoo62c4TV2Uf49ZiPd+zAApBHW1F/whPtunPF28Wfr9g+ozSidhnAr+3nkfJh331tz9s+wgQ39AFzFWftQ60Guulpfj8SaVyxyv/yZZAuFpXNzN0Cz4fWBIWFOsib6Z8y+SlUCzSzOguZ7FygHjwlvOxoISsASAuf0OfUKHxVshiL5F5AX1ddmUgXbUKUTp/3Iunr74pfOQC8TXzZHqhrlFzYDmK5J9E6eADSpgx++bCCaHycl73BWeertCBZSHBXeb3Db9HX+mxwpfP3alVAt4ZqQb3YD/VB7XGDvHbmLn+wSfecO2qA9PxiA0yX7e2BZLN9r3G3bRNSk0GpnYM0i84FE9IipiKKnWVjj7J0UPQmz7rzAn2Lki1CnX9PDdxZneqTxgpBomHJt4H+vXMw13scA4xxEDBvfS5KkjbEJqWLbfklCoER6nV3NPLZ6CBl0Xe/VQBSkqEuUEIXih/oa8emDOGUODNF75ck5NJmKiGg6AFZoeiDa7PZMIxhhOq4vsR2Ty43rztUJ0CMX7iSIk3Eql7kqNdvrJaJ7z0GBsiw== ben@biolimo";
chocolatebar-host = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINZT3QrKugNTWNOwYziQnxrT5zFqWQDafWjScDuIpMhN root@chocolatebar";
chocolatebar-user = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDwyNsGCMuyI9x2IxYEbYIL6oYsEfe1wqhHaRxSnK9oc10ge1LJni5o7g6XgryoQpCD9YenImcCxwkKblmlLQ2327uoVC2PUo07li1uT0eIPk0TQoxwp6besFs7/LEzZlgWQsc3gkEXmjk/E0mu0U6z2fkqciJ/ZxWYt9fLP6jBG47U9878rSaZ7k7Ilv6oRA3suArH189k1nerk/tonS4EWXeHZxHh/Eu0tqwmxN/6+g2GicYn6b+MbFQVdQAkctqT5Yz9USm9UKzbaAuZ799u0dJzagHm9JJZOr8r11ENtAkY9kAzRzm3u/ACiSdVzyLdjAK6m0dIPhp3OhedzuHiI6/wRll60tYtQTH1XwUpVbtir3+DT+jwZgO1zH3yL4iNh79kuUo+UEg1ZmGkSZRzSS2vb5qr0J5aSJmCd5sNB7a01PTtSlQPOqSF9PB+UmcLDF7JoKFub0KT/gRZ5neZkXTYQ/Y05qtaaFVlOVISijnm+sLUvKBv6OW8oYXIHBk= ben@chocolatebar";
droppie-host = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBDuXuPPDXTyJgy4JRwbKcPbawvVB1Il2neyRWb4O5sJ root@nixos";
droppie-user = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCnYTlTmHCl6LOkexqRR9LqjOoFgt9TQ4VzHQGRHJMzF/AGcDRoqC+pBLFSTzRb5/ikAOsb32XHyKVg4nNdJeQshO11QtDmkCB02D/XcIXxnNQ5A8CztT2az5xJtbbWSdamMnHBLcqLiwoLmXbERpdlt8jNqMHrz+bjCUGYVAFSfc/WdIs6EATJ1eF0VFxv7nUh4qhgStABSwhNsnoYOC/DOBSA9aBP1f5Fz9QHUioPTGi2hRwbTbtFUvTrymPpWVFRApa1zvGXcr4YUCm7ia1ZlZKzRpsPkwLxb8Omm4bGmR0cAVwVhVRySnhpCTwbIBLyw+H8PvKWBBba1NAKyMij root@droppie";
allKeys = [
bbcom
biolimo-host
biolimo-user
chocolatebar-host
chocolatebar-user
];
biolimoKeys = [
bbcom
biolimo-host
biolimo-user
];
chocolatebarKeys = [
bbcom
chocolatebar-host
chocolatebar-user
];
droppieKeys = [
bbcom
droppie-host
droppie-user
];
in {
"secret.age".publicKeys = allKeys;
"keyfile-biolimo.bin".publicKeys = biolimoKeys;
"keyfile-chocolatebar.bin".publicKeys = chocolatebarKeys;
"crypto_keyfile-chocolatebar.bin".publicKeys = chocolatebarKeys;
"hdd_keyfile-chocolatebar.bin".publicKeys = chocolatebarKeys;
"vnc-cert-chocolatebar.pem".publicKeys = chocolatebarKeys;
"vnc-key-chocolatebar.pem".publicKeys = chocolatebarKeys;
"drone-runner-exec-config".publicKeys = allKeys;
"dyndns-droppie.key".publicKeys = droppieKeys;
"mopidy.conf".publicKeys = allKeys;
"b12f-env-secrets".publicKeys = biolimoKeys ++ chocolatebarKeys;
}

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,72 @@
account hello@benjaminbaedorf.eu
host mail.hosting.de
port 587
protocol smtp
auth on
from hello@benjaminbaedorf.eu
user hello@benjaminbaedorf.eu
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
account benjamin.baedorf@rwth-aachen.de
host mail.rwth-aachen.de
port 587
protocol smtp
auth on
from benjamin.baedorf@rwth-aachen.de
user bb564306@rwth-aachen.de
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
account b.baedorf@openproject.com
host smtp.mailbox.org
port 587
protocol smtp
auth on
from b.baedorf@openproject.com
user b.baedorf@openproject.com
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
account byb@miom.space
host mail.hosting.de
port 587
protocol smtp
auth on
from byb@miom.space
user byb@miom.space
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
account admins@pub.solar
host mail.greenbaum.cloud
port 587
protocol smtp
auth on
from admins@pub.solar
user admins@pub.solar
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
account crew@pub.solar
host mail.greenbaum.cloud
port 587
protocol smtp
auth on
from crew@pub.solar
user crew@pub.solar
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
account mail@b12f.io
host mail.b12f.io
port 587
protocol smtp
auth on
from mail@b12f.io
user mail@b12f.io
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
account default : hello@benjaminbaedorf.eu

View file

@ -0,0 +1,19 @@
# vim: filetype=muttrc
set from = "pub.solar Admins <admins@pub.solar>"
set sendmail = "msmtp -a admins@pub.solar"
set signature = "~/.config/mutt/admins@pub.solar.signature"
set mbox_type = Maildir
set folder = ~/Mail
set spoolfile = "+admins\@pub.solar/INBOX"
set postponed = "+admins\@pub.solar/Drafts"
set record = "+admins\@pub.solar/Sent"
set trash = "+admins\@pub.solar/Trash"
mbox-hook = "+admins\@pub.solar/Archive"
unmailboxes *
mailboxes +admins\@pub.solar/INBOX \
+admins\@pub.solar/Drafts \
+admins\@pub.solar/Sent \
+admins\@pub.solar/Archive \
+admins\@pub.solar/Trash

View file

@ -0,0 +1,7 @@
pub.solar Admins (they/them)
MAIL: admins@pub.solar
GIT: git.b12f.io/pub-solar
MATRIX: #general:pub.solar
WEB: pub.solar

View file

@ -0,0 +1,24 @@
# vim: filetype=muttrc
set from = "Benjamin Bädorf <b.baedorf@openproject.com>"
set sendmail = "msmtp -a b.baedorf@openproject.com"
set signature = "~/.config/mutt/b.baedorf@openproject.com.signature"
set pgp_default_key="DB94333951EC9A362B33FBA5069CA2D117AB5CCF"
set imap_user = b.baedorf@openproject.com
set imap_pass = `secret-tool lookup service smtp host smtp.mailbox.org user b.baedorf@openproject.com`
set folder = imaps://imap.mailbox.org:993
set spoolfile = "+INBOX"
set postponed = "+Drafts"
set record = "+Sent"
set trash = "+Trash"
mbox-hook = "+Archive"
unmailboxes *
mailboxes +INBOX \
+Drafts \
+Sent \
+Archive \
+Trash

View file

@ -0,0 +1,18 @@
Benjamin Bädorf
Senior Frontend Engineer
OpenProject GmbH
Krausenstraße 9
10117 Berlin
E: b.baedorf@openproject.com
GPG: DB94 3339 51EC 9A36 2B33 FBA5 069C A2D1 17AB 5CC
T: +49 9599 899 22
M: +49 151 2266 2777
I: www.openproject.org
Amtsgericht Berlin-Charlottenburg HRB 117935
Geschäftsführer Niels Lindenthal
UStID DE211309779

View file

@ -0,0 +1,21 @@
# vim: filetype=muttrc
set from = "Benjamin Bädorf <benjamin.baedorf@rwth-aachen.de>"
set sendmail = "msmtp -a benjamin.baedorf@rwth-aachen.de"
set signature = "~/.config/mutt/hello@benjaminbaedorf.eu.signature"
set pgp_default_key="4332E0D02B214D31376C366E4406E80E13CD656C"
set mbox_type = Maildir
set folder = ~/Mail
set spoolfile = "+benjamin.baedorf\@rwth-aachen.de/INBOX"
set postponed = "+benjamin.baedorf\@rwth-aachen.de/Drafts"
set record = "+benjamin.baedorf\@rwth-aachen.de/Sent"
set trash = "+benjamin.baedorf\@rwth-aachen.de/Trash"
mbox-hook = "+benjamin.baedorf\@rwth-aachen.de/Journal"
unmailboxes *
mailboxes +benjamin.baedorf\@rwth-aachen.de/INBOX \
+benjamin.baedorf\@rwth-aachen.de/Drafts \
+benjamin.baedorf\@rwth-aachen.de/Sent \
+benjamin.baedorf\@rwth-aachen.de/Journal \
+benjamin.baedorf\@rwth-aachen.de/Trash

View file

@ -0,0 +1,21 @@
# vim: filetype=muttrc
set from = "Benjamin Bädorf <byb@miom.space>"
set sendmail = "msmtp -a byb@miom.space"
set signature = "~/.config/mutt/byb@miom.space.signature"
set pgp_default_key="4332E0D02B214D31376C366E4406E80E13CD656C"
set mbox_type = Maildir
set folder = ~/Mail
set spoolfile = "+byb\@miom.space/INBOX"
set postponed = "+byb\@miom.space/Drafts"
set record = "+byb\@miom.space/Sent"
set trash = "+byb\@miom.space/Trash"
mbox-hook = "+byb\@miom.space/Archive"
unmailboxes *
mailboxes +byb\@miom.space/INBOX \
+byb\@miom.space/Drafts \
+byb\@miom.space/Sent \
+byb\@miom.space/Archive \
+byb\@miom.space/Trash

View file

@ -0,0 +1,9 @@
Benjamin Yule Bädorf (they/them)
Software Engineer at MiOM 202
MAIL: byb@miom.space
GPG: 4332 E0D0 2B21 4D31 376C 366E 4406 E80E 13CD 656C
GIT: git.b12f.io/b12f
MATRIX: @b12f:pub.solar
WEB: benjaminbaedorf.eu

View file

@ -0,0 +1,19 @@
# vim: filetype=muttrc
set from = "pub.solar crew <crew@pub.solar>"
set sendmail = "msmtp -a crew@pub.solar"
set signature = "~/.config/mutt/crew@pub.solar.signature"
set mbox_type = Maildir
set folder = ~/Mail
set spoolfile = "+crew\@pub.solar/INBOX"
set postponed = "+crew\@pub.solar/Drafts"
set record = "+crew\@pub.solar/Sent"
set trash = "+crew\@pub.solar/Trash"
mbox-hook = "+crew\@pub.solar/Archive"
unmailboxes *
mailboxes +crew\@pub.solar/INBOX \
+crew\@pub.solar/Drafts \
+crew\@pub.solar/Sent \
+crew\@pub.solar/Archive \
+crew\@pub.solar/Trash

View file

@ -0,0 +1,8 @@
pub.solar crew (they/them)
MAIL: crew@pub.solar
MASTODON: @crew@pub.solar
GIT: git.b12f.io/pub-solar
MATRIX: #general:pub.solar
WEB: pub.solar

View file

@ -0,0 +1,21 @@
# vim: filetype=muttrc
set from = "Benjamin Bädorf <hello@benjaminbaedorf.eu>"
set sendmail = "msmtp -a hello@benjaminbaedorf.eu"
set signature = "~/.config/mutt/hello@benjaminbaedorf.eu.signature"
set pgp_default_key="4332E0D02B214D31376C366E4406E80E13CD656C"
set mbox_type = Maildir
set folder = ~/Mail
set spoolfile = "+hello\@benjaminbaedorf.eu/INBOX"
set postponed = "+hello\@benjaminbaedorf.eu/Drafts"
set record = "+hello\@benjaminbaedorf.eu/Sent"
set trash = "+hello\@benjaminbaedorf.eu/Trash"
mbox-hook = "+hello\@benjaminbaedorf.eu/Archive"
unmailboxes *
mailboxes +hello\@benjaminbaedorf.eu/INBOX \
+hello\@benjaminbaedorf.eu/Drafts \
+hello\@benjaminbaedorf.eu/Sent \
+hello\@benjaminbaedorf.eu/Archive \
+hello\@benjaminbaedorf.eu/Trash

View file

@ -0,0 +1,9 @@
Benjamin Yule Bädorf (they/them)
Software Engineer
MAIL: hello@benjaminbaedorf.eu
GPG: 4332 E0D0 2B21 4D31 376C 366E 4406 E80E 13CD 656C
GIT: git.b12f.io/b12f
MATRIX: @b12f:pub.solar
WEB: benjaminbaedorf.eu

View file

@ -0,0 +1,21 @@
# vim: filetype=muttrc
set from = "Benjamin Bädorf <mail@b12f.io>"
set sendmail = "msmtp -a mail@b12f.io"
set signature = "~/.config/mutt/mail@b12f.io.signature"
set pgp_default_key="4332E0D02B214D31376C366E4406E80E13CD656C"
set mbox_type = Maildir
set folder = ~/Mail
set spoolfile = "+mail\@b12f.io/INBOX"
set postponed = "+mail\@b12f.io/Drafts"
set record = "+mail\@b12f.io/Sent"
set trash = "+mail\@b12f.io/Trash"
mbox-hook = "+mail\@b12f.io/Archive"
unmailboxes *
mailboxes +mail\@b12f.io/INBOX \
+mail\@b12f.io/Drafts \
+mail\@b12f.io/Sent \
+mail\@b12f.io/Archive \
+mail\@b12f.io/Trash

View file

@ -0,0 +1,9 @@
Benjamin Yule Bädorf (they/them)
Software Engineer
MAIL: mail@b12f.io
GPG: 4332 E0D0 2B21 4D31 376C 366E 4406 E80E 13CD 656C
GIT: git.b12f.io/b12f
MATRIX: @b12f:pub.solar
WEB: benjaminbaedorf.eu

View file

@ -0,0 +1,109 @@
[general]
pythonfile = $XDG_CONFIG_HOME/offlineimap/functions.py
metadata = $XDG_DATA_HOME/offlineimap
accounts = BBEU, MiOM, b12f, RWTH, AdminsPubSolar, CrewPubSolar
[Account BBEU]
localrepository = LocalBBEU
remoterepository = RemoteBBEU
[Repository LocalBBEU]
type = Maildir
localfolders = ~/Mail/hello@benjaminbaedorf.eu
[Repository RemoteBBEU]
type = IMAP
remotehost = mail.hosting.de
remoteuser = hello@benjaminbaedorf.eu
remotepasseval = get_secret("service", "smtp", "host", "mail.hosting.de", "user", "hello@benjaminbaedorf.eu")
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
[Account OPGmail]
localrepository = LocalOPGmail
remoterepository = RemoteOPGmail
[Repository LocalOPGmail]
type = Maildir
localfolders = ~/Mail/b.baedorf@openproject.com
[Repository RemoteOPGmail]
type = IMAP
remotehost = imap.gmail.com
remoteuser = b.baedorf@openproject.com
remotepasseval = get_secret("service", "smtp", "host", "smtp.gmail.com", "user", "b.baedorf@openproject.com")
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
[Account MiOM]
localrepository = LocalMiOM
remoterepository = RemoteMiOM
[Repository LocalMiOM]
type = Maildir
localfolders = ~/Mail/byb@miom.space
[Repository RemoteMiOM]
type = IMAP
remotehost = mail.hosting.de
remoteuser = byb@miom.space
remotepasseval = get_secret("service", "smtp", "host", "mail.hosting.de", "user", "byb@miom.space")
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
[Account AdminsPubSolar]
localrepository = LocalAdminsPubSolar
remoterepository = RemoteAdminsPubSolar
[Repository LocalAdminsPubSolar]
type = Maildir
localfolders = ~/Mail/admins@pub.solar
[Repository RemoteAdminsPubSolar]
type = IMAP
remotehost = mail.greenbaum.cloud
remoteuser = admins@pub.solar
remotepasseval = get_secret("service", "smtp", "host", "mail.greenbaum.cloud", "user", "admins@pub.solar")
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
[Account CrewPubSolar]
localrepository = LocalCrewPubSolar
remoterepository = RemoteCrewPubSolar
[Repository LocalCrewPubSolar]
type = Maildir
localfolders = ~/Mail/crew@pub.solar
[Repository RemoteCrewPubSolar]
type = IMAP
remotehost = mail.greenbaum.cloud
remoteuser = crew@pub.solar
remotepasseval = get_secret("service", "smtp", "host", "mail.greenbaum.cloud", "user", "crew@pub.solar")
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
[Account b12f]
localrepository = Localb12f
remoterepository = Remoteb12f
[Repository Localb12f]
type = Maildir
localfolders = ~/Mail/mail@b12f.io
[Repository Remoteb12f]
type = IMAP
remotehost = mail.b12f.io
remoteuser = mail@b12f.io
remotepasseval = get_secret("service", "smtp", "host", "mail.b12f.io", "user", "mail@b12f.io")
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
[Account RWTH]
localrepository = LocalRWTH
remoterepository = RemoteRWTH
[Repository LocalRWTH]
type = Maildir
localfolders = ~/Mail/benjamin.baedorf@rwth-aachen.de
[Repository RemoteRWTH]
type = IMAP
remotehost = mail.rwth-aachen.de
remoteuser = bb564306@rwth-aachen.de
remotepasseval = get_secret("service", "smtp", "host", "mail.rwth-aachen.de", "user", "bb564306@rwth-aachen.de")
sslcacertfile = /etc/ssl/certs/ca-certificates.crt

71
users/ben/default.nix Normal file
View file

@ -0,0 +1,71 @@
{
self,
config,
hmUsers,
pkgs,
lib,
...
}: let
psCfg = config.pub-solar;
in {
imports = [
./home.nix
];
config = {
home-manager.users = {inherit (hmUsers) ben;};
services.yubikey-agent.enable = true;
age.secrets.b12f-env-secrets = {
file = "${self}/secrets/b12f-env-secrets";
mode = "400";
owner = psCfg.user.name;
};
pub-solar = {
# These are your personal settings
# The only required settings are `name` and `password`,
# The rest is used for programs like git
user = {
name = "ben";
description = "b12f";
password = "$6$LO2YoaHwuRQhUoSz$iHw9avM887eJg9cIty2nmG4Ibkol3YpviEhYpivVQP31VrnihFz/6LyugxD7X4VmXx9nxvcYIZnN90rlGxwjT.";
fullName = "Benjamin Bädorf";
email = "hello@benjaminbaedorf.eu";
gpgKeyId = "4406E80E13CD656C";
publicKeys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDDoYNvXWunQYFORRjcYH1F98+zr20U79ROh+gmaC7AY/x3yf4y8uyMayF56VgQLVNwgEchT5t4dNb9qo2+1oUnjiKrKAVfQMN6WMMMEr4F4WT784uvBx5Uo6vmhgAa+xoo62c4TV2Uf49ZiPd+zAApBHW1F/whPtunPF28Wfr9g+ozSidhnAr+3nkfJh331tz9s+wgQ39AFzFWftQ60Guulpfj8SaVyxyv/yZZAuFpXNzN0Cz4fWBIWFOsib6Z8y+SlUCzSzOguZ7FygHjwlvOxoISsASAuf0OfUKHxVshiL5F5AX1ddmUgXbUKUTp/3Iunr74pfOQC8TXzZHqhrlFzYDmK5J9E6eADSpgx++bCCaHycl73BWeertCBZSHBXeb3Db9HX+mxwpfP3alVAt4ZqQb3YD/VB7XGDvHbmLn+wSfecO2qA9PxiA0yX7e2BZLN9r3G3bRNSk0GpnYM0i84FE9IipiKKnWVjj7J0UPQmz7rzAn2Lki1CnX9PDdxZneqTxgpBomHJt4H+vXMw13scA4xxEDBvfS5KkjbEJqWLbfklCoER6nV3NPLZ6CBl0Xe/VQBSkqEuUEIXih/oa8emDOGUODNF75ck5NJmKiGg6AFZoeiDa7PZMIxhhOq4vsR2Ty43rztUJ0CMX7iSIk3Eql7kqNdvrJaJ7z0GBsiw== ben@biolimo"
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmiF8ndGhnx2YAWbPDq14fftAwcJ0xnjJIVTotI12OO4SPX/SwH5Yp8C8Kf002qN9FbFmaONzq3s8TYpej13JubhfsQywNuFKZuZvJeHzmOwxsANW86RVrWT0WZmYx9a/a1TF9rPQpibDVt60wX8yLdExaJc5F1SvIIuyz1kxYpz36wItfR6hcwoLGh1emFCmfCpebJmp3hsrMDTTtTW/YNhyeSZW74ckyvZyjCYtRCJ8uF0ZmOSKRdillv4Ztg8MsUubGn+vaMl6V6x/QuDuehEPoM/3wBx9o22nf+QVbk7S1PC8EdT/K5vskn4/pfR7mDCyQOq1hB4w4Oyn0dsfX pi@ssrtc"
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDwyNsGCMuyI9x2IxYEbYIL6oYsEfe1wqhHaRxSnK9oc10ge1LJni5o7g6XgryoQpCD9YenImcCxwkKblmlLQ2327uoVC2PUo07li1uT0eIPk0TQoxwp6besFs7/LEzZlgWQsc3gkEXmjk/E0mu0U6z2fkqciJ/ZxWYt9fLP6jBG47U9878rSaZ7k7Ilv6oRA3suArH189k1nerk/tonS4EWXeHZxHh/Eu0tqwmxN/6+g2GicYn6b+MbFQVdQAkctqT5Yz9USm9UKzbaAuZ799u0dJzagHm9JJZOr8r11ENtAkY9kAzRzm3u/ACiSdVzyLdjAK6m0dIPhp3OhedzuHiI6/wRll60tYtQTH1XwUpVbtir3+DT+jwZgO1zH3yL4iNh79kuUo+UEg1ZmGkSZRzSS2vb5qr0J5aSJmCd5sNB7a01PTtSlQPOqSF9PB+UmcLDF7JoKFub0KT/gRZ5neZkXTYQ/Y05qtaaFVlOVISijnm+sLUvKBv6OW8oYXIHBk= ben@chocolatebar"
];
};
paperless = {
enable = false;
ocrLanguage = "nld+deu";
};
arduino.enable = true;
email.enable = true;
uhk.enable = true;
audio.spotify.enable = true;
audio.spotify.username = "spotify@benjaminbaedorf.eu";
};
# Needed for the udev rules for solaar
hardware.logitech.wireless.enable = true;
networking.hosts = let
localDomains = [
"openproject.local"
"traefik.local"
"nextcloud.local"
"step.local"
"saas-1.openproject.local"
"transmission.local"
];
in {
"127.0.0.1" = localDomains;
"::1" = localDomains;
};
};
}

126
users/ben/home.nix Normal file
View file

@ -0,0 +1,126 @@
{
config,
pkgs,
lib,
self,
...
}:
with lib; let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
in {
imports = [
./session-variables.nix
];
home-manager = pkgs.lib.setAttrByPath ["users" psCfg.user.name] {
home.packages = with pkgs; [
inkscape
digikam
nix-output-monitor
tigervnc
dogecoin
nodejs
solaar
];
programs.ssh = {
enable = true;
matchBlocks = {
"git.b12f.io" = {
hostname = "git.b12f.io";
user = "git";
port = 2222;
};
"aur.archlinux.org" = {
user = "aur";
};
"leavieler.art" = {
hostname = "web5svsvy.wh.hosting.zone";
user = "web5svsvy_cgzqa3";
port = 2244;
};
"benjaminbaedorf.eu" = {
hostname = "web5svsvy.wh.hosting.zone";
user = "web5svsvy_cgzqa3";
port = 2244;
};
"miom.space" = {
hostname = "web7dgkba.wh.hosting.zone";
user = "web7dgkba_c9em8f";
port = 2244;
};
"latenight.blue" = {
hostname = "latenight.blue";
user = "lnb";
extraOptions = {
MACs = "hmac-sha2-512-etm@openssh.com";
};
};
"blacktea.io" = {
hostname = "latenight.blue";
user = "lnb";
extraOptions = {
MACs = "hmac-sha2-512-etm@openssh.com";
};
};
"laurakirst.de" = {
hostname = "webj4bsux.wh.hosting.zone";
user = "webj4bsux_36qkrk";
port = 2244;
};
};
};
xdg.configFile."mutt/accounts.muttrc".text = ''
source ./hello@benjaminbaedorf.eu.muttrc
macro index <f1> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/hello@benjaminbaedorf.eu.muttrc<enter><change-folder>!<enter>'
macro index <f2> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/benjamin.baedorf@rwth-aachen.de.muttrc<enter><change-folder>!<enter>'
macro index <f3> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/b.baedorf@openproject.com.muttrc<enter><change-folder>!<enter>'
macro index <f4> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/byb@miom.space.muttrc<enter><change-folder>!<enter>'
macro index <f5> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/mail@b12f.io.muttrc<enter><change-folder>!<enter>'
macro index <f6> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/admins@pub.solar.muttrc<enter><change-folder>!<enter>'
macro index <f7> '<sync-mailbox><enter-command>source $XDG_CONFIG_HOME/mutt/crew@pub.solar.muttrc<enter><change-folder>!<enter>'
'';
xdg.configFile."mutt/hello@benjaminbaedorf.eu.muttrc".source = ./.config/mutt + "/hello@benjaminbaedorf.eu.muttrc";
xdg.configFile."mutt/benjamin.baedorf@rwth-aachen.de.muttrc".source = ./.config/mutt + "/benjamin.baedorf@rwth-aachen.de.muttrc";
xdg.configFile."mutt/hello@benjaminbaedorf.eu.signature".source = ./.config/mutt + "/hello@benjaminbaedorf.eu.signature";
xdg.configFile."mutt/b.baedorf@openproject.com.muttrc".source = ./.config/mutt + "/b.baedorf@openproject.com.muttrc";
xdg.configFile."mutt/b.baedorf@openproject.com.signature".source = ./.config/mutt + "/b.baedorf@openproject.com.signature";
xdg.configFile."mutt/byb@miom.space.muttrc".source = ./.config/mutt + "/byb@miom.space.muttrc";
xdg.configFile."mutt/byb@miom.space.signature".source = ./.config/mutt + "/byb@miom.space.signature";
xdg.configFile."mutt/mail@b12f.io.muttrc".source = ./.config/mutt + "/mail@b12f.io.muttrc";
xdg.configFile."mutt/mail@b12f.io.signature".source = ./.config/mutt + "/mail@b12f.io.signature";
xdg.configFile."mutt/admins@pub.solar.muttrc".source = ./.config/mutt + "/admins@pub.solar.muttrc";
xdg.configFile."mutt/admins@pub.solar.signature".source = ./.config/mutt + "/admins@pub.solar.signature";
xdg.configFile."mutt/crew@pub.solar.muttrc".source = ./.config/mutt + "/crew@pub.solar.muttrc";
xdg.configFile."mutt/crew@pub.solar.signature".source = ./.config/mutt + "/crew@pub.solar.signature";
xdg.configFile."offlineimap/config".source = ./.config/offlineimap/config;
xdg.configFile."msmtp/config".source = ./.config/msmtp/config;
# xdg.configFile."wallpaper.jpg".source = ./assets/wallpaper.jpg;
#
# programs.zsh = {
# initExtra = import ./zshrc.nix {inherit config;};
# };
};
age.secrets."mopidy.conf" = {
file = "${self}/secrets/mopidy.conf";
mode = "700";
owner = "mopidy";
};
services.mopidy.extraConfigFiles = ["/run/agenix/mopidy.conf"];
programs.ssh.extraConfig = "
PubkeyAcceptedKeyTypes +ssh-rsa
";
}

View file

@ -0,0 +1,21 @@
{
config,
pkgs,
...
}: let
psCfg = config.pub-solar;
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
DRONE_RPC_PROTO = "https";
DRONE_RPC_HOST = "ci.b12f.io";
in {
home-manager = pkgs.lib.setAttrByPath ["users" psCfg.user.name] {
home.sessionVariables = {
inherit DRONE_RPC_HOST;
inherit DRONE_RPC_PROTO;
DRONE_SERVER = DRONE_RPC_PROTO + "://" + DRONE_RPC_HOST;
RESTIC_REPOSITORY = "sftp:root@backup.b12f.io:/media/internal/backups";
RESTIC_PASSWORD_COMMAND = "secret-tool lookup restic repository-password";
};
};
}

3
users/ben/zshrc.nix Normal file
View file

@ -0,0 +1,3 @@
{config, ...}: ''
source ${config.age.secrets.b12f-env-secrets.path}
''

39
users/yule/default.nix Normal file
View file

@ -0,0 +1,39 @@
{
config,
hmUsers,
pkgs,
lib,
...
}: let
psCfg = config.pub-solar;
in {
config = {
home-manager.users = {inherit (hmUsers) yule;};
pub-solar = {
# These are your personal settings
# The only required settings are `name` and `password`,
# The rest is used for programs like git
user = {
name = "yule";
description = "b12f";
password = "$6$pHMaL9DfxhvnLGy5$ka9bRU5p1lPTF0YHPZDM9Miq79iXuaXb6GLeALM1eX5djdsHYnpvVWjrmImWmcghGXsrDwpmXZPSJUU.gFpuA1";
fullName = "Benjamin Bädorf";
email = "hello@benjaminbaedorf.eu";
gpgKeyId = "4406E80E13CD656C";
publicKeys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmiF8ndGhnx2YAWbPDq14fftAwcJ0xnjJIVTotI12OO4SPX/SwH5Yp8C8Kf002qN9FbFmaONzq3s8TYpej13JubhfsQywNuFKZuZvJeHzmOwxsANW86RVrWT0WZmYx9a/a1TF9rPQpibDVt60wX8yLdExaJc5F1SvIIuyz1kxYpz36wItfR6hcwoLGh1emFCmfCpebJmp3hsrMDTTtTW/YNhyeSZW74ckyvZyjCYtRCJ8uF0ZmOSKRdillv4Ztg8MsUubGn+vaMl6V6x/QuDuehEPoM/3wBx9o22nf+QVbk7S1PC8EdT/K5vskn4/pfR7mDCyQOq1hB4w4Oyn0dsfX pi@ssrtc"
"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHx4A8rLYmFgTOp1fDGbbONN8SOT0l5wWrUSYFUcVzMPTyfdT23ZVIdVD5yZCySgi/7PSh5mVmyLIZVIXlNrZJg= @b12f Yubi Main"
"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEST9eyAY3nzGYNnqDYfWHu+89LZsOjyKHMqCFvtP7vrgB7F7JbbECjdjAXEOfPDSCVwtMMpq8JJXeRMjpsD0rw= @b12f Yubi Backup"
"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFro/k4Mgqyh8yV/7Zwjc0dv60ZM7bROBU9JNd99P/4co6fxPt1pJiU/pEz2Dax/HODxgcO+jFZfvPEuLMCeAl0= YubiKey #10593996 PIV Slot 9a @teutat3s"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII/58A18EtxnLYHu63c/+AyTSkJQSso/VVdHUFGp1CTk cardno:FFFE34353135 @hensoko"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAqkqMYgncrnczcW/0PY+Z+FmNXXpgw6D9JWTTwiainy hensoko@hensoko-tp-work"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIKa5elEXgBc2luVBOHVWZisJgt0epFQOercPi0tZzPU root@cloud.pub.solar"
];
};
};
};
}