Home

dotnix @main - refs - log -
-
https://git.jolheiser.com/dotnix.git
My nix dotfiles
tree log patch
remove server and cleanup flake Signed-off-by: jolheiser <git@jolheiser.com>
Signature
-----BEGIN SSH SIGNATURE----- U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgBTEvCQk6VqUAdN2RuH6bj1dNkY oOpbPWj+jw4ua1B1cAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5 AAAAQGcCEaElz4u+6WdVpQfqGdDivg4PRmvSstP5S0BznF//tlD+c9YNYV0wXpB9JC9+9w llpP4CuO4O5dWlgoDRuQ4= -----END SSH SIGNATURE-----
jolheiser <git@jolheiser.com>
5 months ago
34 changed files, 33 additions(+), 1658 deletions(-)
.git-age.yaml.gitattributesapps/nogui/default.nixapps/nogui/nushell.nixflake.lockflake.nixjustfilemachines/dragonwell/actual.nixmachines/dragonwell/caddy.nixmachines/dragonwell/cfg.nixmachines/dragonwell/default.nixmachines/dragonwell/dex.nixmachines/dragonwell/foundry.nixmachines/dragonwell/git-pr.nixmachines/dragonwell/go.nixmachines/dragonwell/golink.nixmachines/dragonwell/gotosocial.nixmachines/dragonwell/hardware.nixmachines/dragonwell/miniserve.nixmachines/dragonwell/pubserve.nixmachines/dragonwell/restic.nixmachines/dragonwell/soju.nixmachines/dragonwell/tandoor.nixmachines/dragonwell/tclip.nixmachines/dragonwell/ugit.nixmachines/dragonwell/vikunja.nixmodules/miniserve/default.nixmodules/tclip/default.nixsecrets/personal/dex-tailscale.agesecrets/personal/dex-tandoor.agesecrets/personal/dex-vikunja.agesecrets/personal/dex.agesecrets/personal/restic-env.agesecrets/personal/restic-pass.agesecrets/personal/restic-repo.agesecrets/secrets.nixsecrets/cachix.agesecrets/shared/gist-pw.agesecrets/git-send-email.agesecrets/irc-pw.agesecrets/llm.agesecrets/spectre-pw.agesecrets/spotify.agesecrets/ssh-config.age
D .git-age.yaml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
diff --git a/.git-age.yaml b/.git-age.yaml
deleted file mode 100644
index 1ed230cddb2e4fc0c3979b5e34dd45a006e3fa9a..0000000000000000000000000000000000000000
--- a/.git-age.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-machines/dragonwell/dex.nix:
-    - age105cm5awxxegyrqthh4vhnxzr0tdy86q8uq52wkkjacfkutp2vprqwseak7
-machines/dragonwell/tandoor.nix:
-    - age105cm5awxxegyrqthh4vhnxzr0tdy86q8uq52wkkjacfkutp2vprqwseak7
-machines/dragonwell/vikunja.nix:
-    - age105cm5awxxegyrqthh4vhnxzr0tdy86q8uq52wkkjacfkutp2vprqwseak7
D .gitattributes
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index c835046eef15d7f0ad36fcd0466be024cd56cfe3..0000000000000000000000000000000000000000
--- a/.gitattributes
+++ /dev/null
@@ -1,4 +0,0 @@
-# Age
-machines/dragonwell/dex.nix filter=git-age diff=git-age
-machines/dragonwell/vikunja.nix filter=git-age diff=git-age
-machines/dragonwell/tandoor.nix filter=git-age diff=git-age
M apps/nogui/default.nixapps/nogui/default.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
diff --git a/apps/nogui/default.nix b/apps/nogui/default.nix
index 61355e1f26d57877e778c8e1b868744b3c92d36e..4b3266f70b64bb2209555cb370cfaa99d17a2c03 100644
--- a/apps/nogui/default.nix
+++ b/apps/nogui/default.nix
@@ -33,12 +33,9 @@       just
       ripgrep
       usql
 
-      jolheiser.gist
-      jolheiser.git-age
       tclip
       templ
       jolheiser.helix
-      jolheiser.tmpl
       jolheiser.gomodinit
       jolheiser.cfg
       jolheiser.spectre
@@ -48,12 +45,6 @@       ${pkgs.nvd}/bin/nvd --nix-bin-dir=${pkgs.nix}/bin diff $oldGenPath $newGenPath
     '';
     stateVersion = "22.11";
   };
-
-  xdg.configFile."gist/config.yaml".text = ''
-    username: jolheiser
-    password-file: ${config.age.secrets.gist-pw.path}
-    domain: gist.jojodev.com
-  '';
 
   programs.home-manager.enable = true;
 }
M apps/nogui/nushell.nixapps/nogui/nushell.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
diff --git a/apps/nogui/nushell.nix b/apps/nogui/nushell.nix
index b9fcbce5485cf63bb62d439c4cc547cdf44b00ff..660bc92206ab16683716ff99bc8aedce2a4f0880 100644
--- a/apps/nogui/nushell.nix
+++ b/apps/nogui/nushell.nix
@@ -20,8 +20,6 @@       use ${nu_scripts}/share/nu_scripts/custom-completions/git/git-completions.nu *
       use ${nu_scripts}/share/nu_scripts/custom-completions/glow/glow-completions.nu *
       use ${nu_scripts}/share/nu_scripts/custom-completions/just/just-completions.nu *
       use ${nu_scripts}/share/nu_scripts/custom-completions/nix/nix-completions.nu *
-
-      use ${jolheiser.tmpl}/share/tmpl-completions.nu *
     '';
     extraEnv = ''
       $env.GOPATH = "${config.xdg.dataHome}/go"
M flake.lockflake.lock
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
diff --git a/flake.lock b/flake.lock
index a88e5d4a758f0e9ea0389041c5dae4c67cb70ee5..6ceed491bf0c468145adef3e72a2e32048673aab 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,25 +1,5 @@
 {
   "nodes": {
-    "actual": {
-      "inputs": {
-        "nixpkgs": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1733551027,
-        "narHash": "sha256-nlZWAq4E+cNywCuxpnYcyky4fd+8bVzJHrS2e8QTtVs=",
-        "ref": "refs/heads/main",
-        "rev": "7f041ffa7f204deb0fc2e36908b382804f2e108d",
-        "revCount": 18,
-        "type": "git",
-        "url": "https://git.xeno.science/xenofem/actual-nix.git"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://git.xeno.science/xenofem/actual-nix.git"
-      }
-    },
     "agenix": {
       "inputs": {
         "darwin": [],
@@ -43,49 +23,6 @@         "repo": "agenix",
         "type": "github"
       }
     },
-    "bennet": {
-      "inputs": {
-        "nixpkgs": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1720757073,
-        "narHash": "sha256-URQMDzLPs5kckDybkMqrKZN2aqt0GvAt9V5NT4kpMW8=",
-        "ref": "refs/heads/main",
-        "rev": "bd7287aa0d13d5af400f659963655c004789715f",
-        "revCount": 4,
-        "type": "git",
-        "url": "https://git.jolheiser.com/bennet.git"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://git.jolheiser.com/bennet.git"
-      }
-    },
-    "blog": {
-      "inputs": {
-        "nixpkgs": [
-          "nixpkgs"
-        ],
-        "templ": [
-          "templ"
-        ]
-      },
-      "locked": {
-        "lastModified": 1728680363,
-        "narHash": "sha256-0aJJUY0lKcDnkqLBESOFju8cgIYYrt8jvMwyFTii2Do=",
-        "ref": "refs/heads/main",
-        "rev": "03a7f37a42affd2689a72340b8d86731bfd3d28c",
-        "revCount": 26,
-        "type": "git",
-        "url": "https://git.jolheiser.com/blog.git"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://git.jolheiser.com/blog.git"
-      }
-    },
     "cfg": {
       "inputs": {
         "nixpkgs": [
@@ -104,26 +41,6 @@       },
       "original": {
         "type": "git",
         "url": "https://git.jolheiser.com/cfg.git"
-      }
-    },
-    "cfg-playground": {
-      "inputs": {
-        "nixpkgs": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1729196682,
-        "narHash": "sha256-hLbpRWxw12/mqapicSSq1wxvNFfEKwEiXhzykpXWUDI=",
-        "ref": "refs/heads/main",
-        "rev": "63c7a6886570f332ebb187e5a5580302603b4c4e",
-        "revCount": 6,
-        "type": "git",
-        "url": "https://git.jolheiser.com/cfg-playground.git"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://git.jolheiser.com/cfg-playground.git"
       }
     },
     "flake-parts": {
@@ -216,24 +133,6 @@         "repo": "flake-utils",
         "type": "github"
       }
     },
-    "foundry": {
-      "inputs": {
-        "nixpkgs": "nixpkgs"
-      },
-      "locked": {
-        "lastModified": 1726638033,
-        "narHash": "sha256-+hcgXKG5t/9wibv+8T9WASWItBAWb0tsmcZXH+VIYdw=",
-        "owner": "reckenrode",
-        "repo": "nix-foundryvtt",
-        "rev": "bf07f9dd916a97a091f8ab83358c2f295bea9ec9",
-        "type": "github"
-      },
-      "original": {
-        "owner": "reckenrode",
-        "repo": "nix-foundryvtt",
-        "type": "github"
-      }
-    },
     "ghostty": {
       "inputs": {
         "nixpkgs-stable": "nixpkgs-stable",
@@ -254,69 +153,6 @@         "type": "git",
         "url": "ssh://git@github.com/ghostty-org/ghostty"
       }
     },
-    "gist": {
-      "inputs": {
-        "nixpkgs": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1702606669,
-        "narHash": "sha256-98XV0l+3b4sFhxdepNoanqDzhgnEen5ZcrGtqoRp4cA=",
-        "ref": "refs/heads/main",
-        "rev": "f393c786b0ad826866d7e30d1abbd3bea319cb34",
-        "revCount": 3,
-        "type": "git",
-        "url": "https://git.jolheiser.com/gist.git"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://git.jolheiser.com/gist.git"
-      }
-    },
-    "git-age": {
-      "inputs": {
-        "flake-utils": [
-          "flake-utils"
-        ],
-        "nixpkgs": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1699932777,
-        "narHash": "sha256-2OF5y1geNjHd+As+FwFEYlHxQoQ+LHxizlhSx9u/4dA=",
-        "ref": "refs/heads/main",
-        "rev": "72352f984f8c4b2291bcb2c08b7b6dc718619a38",
-        "revCount": 9,
-        "type": "git",
-        "url": "https://git.jolheiser.com/git-age.git"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://git.jolheiser.com/git-age.git"
-      }
-    },
-    "git-pr": {
-      "inputs": {
-        "nixpkgs": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1724120640,
-        "narHash": "sha256-LLWEHAraOLKFYZ2zbR3O+AhC2PCUNsXP1xcGoDj80xs=",
-        "ref": "refs/heads/main",
-        "rev": "6a3bca9ad87b454427940c82f3d111f2eb2c256e",
-        "revCount": 10,
-        "type": "git",
-        "url": "https://git.jolheiser.com/git-pr-nix.git"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://git.jolheiser.com/git-pr-nix.git"
-      }
-    },
     "gitignore": {
       "inputs": {
         "nixpkgs": [
@@ -338,29 +174,6 @@         "repo": "gitignore.nix",
         "type": "github"
       }
     },
-    "golink": {
-      "inputs": {
-        "flake-utils": [
-          "flake-utils"
-        ],
-        "nixpkgs": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1733941744,
-        "narHash": "sha256-cIml0ewF5j2cQySLHkMmV1rl7cVH8wuoPFeFDCARi1A=",
-        "owner": "tailscale",
-        "repo": "golink",
-        "rev": "d55b2a3302777d7f9943863644d4c84ecacb31b7",
-        "type": "github"
-      },
-      "original": {
-        "owner": "tailscale",
-        "repo": "golink",
-        "type": "github"
-      }
-    },
     "gomod2nix": {
       "inputs": {
         "flake-utils": "flake-utils_3",
@@ -447,7 +260,7 @@       }
     },
     "jolheiser": {
       "inputs": {
-        "nixpkgs": "nixpkgs_2"
+        "nixpkgs": "nixpkgs"
       },
       "locked": {
         "lastModified": 1730336659,
@@ -465,7 +278,7 @@       }
     },
     "jolheiser_2": {
       "inputs": {
-        "nixpkgs": "nixpkgs_3"
+        "nixpkgs": "nixpkgs_2"
       },
       "locked": {
         "lastModified": 1730336541,
@@ -499,16 +312,16 @@       }
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1726447378,
-        "narHash": "sha256-2yV8nmYE1p9lfmLHhOCbYwQC/W8WYfGQABoGzJOb1JQ=",
+        "lastModified": 1729880355,
+        "narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "086b448a5d54fd117f4dc2dee55c9f0ff461bdc1",
+        "rev": "18536bf04cd71abd345f9579158841376fdd0c5a",
         "type": "github"
       },
       "original": {
         "owner": "nixos",
-        "ref": "nixos-24.05",
+        "ref": "nixos-unstable",
         "repo": "nixpkgs",
         "type": "github"
       }
@@ -563,11 +376,11 @@       }
     },
     "nixpkgs_3": {
       "locked": {
-        "lastModified": 1729880355,
-        "narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=",
-        "owner": "nixos",
-        "repo": "nixpkgs",
-        "rev": "18536bf04cd71abd345f9579158841376fdd0c5a",
+        "lastModified": 1734119587,
+        "narHash": "sha256-AKU6qqskl0yf2+JdRdD0cfxX4b9x3KKV5RqA6wijmPM=",
+        "owner": "nixos",
+        "repo": "nixpkgs",
+        "rev": "3566ab7246670a43abd2ffa913cc62dad9cdf7d5",
         "type": "github"
       },
       "original": {
@@ -594,22 +407,6 @@         "type": "github"
       }
     },
     "nixpkgs_5": {
-      "locked": {
-        "lastModified": 1734119587,
-        "narHash": "sha256-AKU6qqskl0yf2+JdRdD0cfxX4b9x3KKV5RqA6wijmPM=",
-        "owner": "nixos",
-        "repo": "nixpkgs",
-        "rev": "3566ab7246670a43abd2ffa913cc62dad9cdf7d5",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nixos",
-        "ref": "nixos-unstable",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "nixpkgs_6": {
       "locked": {
         "lastModified": 1728888510,
         "narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=",
@@ -627,7 +424,7 @@     },
     "nur": {
       "inputs": {
         "flake-parts": "flake-parts",
-        "nixpkgs": "nixpkgs_5",
+        "nixpkgs": "nixpkgs_4",
         "treefmt-nix": "treefmt-nix"
       },
       "locked": {
@@ -644,59 +441,22 @@         "repo": "NUR",
         "type": "github"
       }
     },
-    "resume": {
-      "inputs": {
-        "flake-utils": [
-          "flake-utils"
-        ],
-        "nixpkgs": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1697473034,
-        "narHash": "sha256-hIee7tDD9B1LRNUE7Cy11M1yrbbHHa6pnUZes3CGKxg=",
-        "ref": "refs/heads/main",
-        "rev": "94593c9097917604f006a4dcd5e7b10a1b42beb1",
-        "revCount": 6,
-        "type": "git",
-        "url": "https://git.jolheiser.com/resume.git"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://git.jolheiser.com/resume.git"
-      }
-    },
     "root": {
       "inputs": {
-        "actual": "actual",
         "agenix": "agenix",
-        "bennet": "bennet",
-        "blog": "blog",
         "cfg": "cfg",
-        "cfg-playground": "cfg-playground",
         "flake-utils": "flake-utils",
-        "foundry": "foundry",
         "ghostty": "ghostty",
-        "gist": "gist",
-        "git-age": "git-age",
-        "git-pr": "git-pr",
-        "golink": "golink",
         "gomodinit": "gomodinit",
         "helix": "helix",
         "home-manager": "home-manager",
         "jolheiser": "jolheiser_2",
         "nixos-hardware": "nixos-hardware",
-        "nixpkgs": "nixpkgs_4",
+        "nixpkgs": "nixpkgs_3",
         "nur": "nur",
-        "resume": "resume",
         "spectre": "spectre",
-        "tailproxy": "tailproxy",
         "tclip": "tclip",
-        "templ": "templ",
-        "tmpl": "tmpl",
-        "ugit": "ugit",
-        "website": "website"
+        "templ": "templ"
       }
     },
     "spectre": {
@@ -779,113 +539,9 @@         "repo": "default",
         "type": "github"
       }
     },
-    "tailproxy": {
-      "inputs": {
-        "nixpkgs": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1729968274,
-        "narHash": "sha256-YmGgnwar4mGwK3+TRO3W7wvFHcIZ21JEm95PRroJpzQ=",
-        "ref": "refs/heads/main",
-        "rev": "a7b8073ad6a2eaf931415b41156e0bba9e51fc76",
-        "revCount": 9,
-        "type": "git",
-        "url": "https://git.jolheiser.com/tailproxy.git"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://git.jolheiser.com/tailproxy.git"
-      }
-    },
-    "tailwind-ctp": {
-      "inputs": {
-        "nixpkgs": [
-          "ugit",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1695841587,
-        "narHash": "sha256-fgiZd5AV+hi8Ne0bJ8SyAx5nppseW4aXJQEIDSr0VNA=",
-        "ref": "refs/heads/main",
-        "rev": "afca060674b20e0ccecde2d6fe88c887790219a5",
-        "revCount": 1,
-        "type": "git",
-        "url": "https://git.jolheiser.com/tailwind-ctp"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://git.jolheiser.com/tailwind-ctp"
-      }
-    },
-    "tailwind-ctp-lsp": {
-      "inputs": {
-        "nixpkgs": [
-          "ugit",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1699401590,
-        "narHash": "sha256-nx8ExuBRUux9eXSUgkWp1LJMvA3dmA76+2xggZjHTU0=",
-        "ref": "refs/heads/master",
-        "rev": "b321333ad08bf21db242f246b10ad4a50b8fc8a0",
-        "revCount": 848,
-        "type": "git",
-        "url": "https://git.jolheiser.com/tailwind-ctp-intellisense"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://git.jolheiser.com/tailwind-ctp-intellisense"
-      }
-    },
-    "tailwind-ctp-lsp_2": {
-      "inputs": {
-        "nixpkgs": [
-          "website",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1699401590,
-        "narHash": "sha256-nx8ExuBRUux9eXSUgkWp1LJMvA3dmA76+2xggZjHTU0=",
-        "ref": "refs/heads/master",
-        "rev": "b321333ad08bf21db242f246b10ad4a50b8fc8a0",
-        "revCount": 848,
-        "type": "git",
-        "url": "https://git.jojodev.com/jolheiser/tailwind-ctp-intellisense"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://git.jojodev.com/jolheiser/tailwind-ctp-intellisense"
-      }
-    },
-    "tailwind-ctp_2": {
-      "inputs": {
-        "nixpkgs": [
-          "website",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1695841587,
-        "narHash": "sha256-fgiZd5AV+hi8Ne0bJ8SyAx5nppseW4aXJQEIDSr0VNA=",
-        "ref": "refs/heads/main",
-        "rev": "afca060674b20e0ccecde2d6fe88c887790219a5",
-        "revCount": 1,
-        "type": "git",
-        "url": "https://git.jojodev.com/jolheiser/tailwind-ctp"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://git.jojodev.com/jolheiser/tailwind-ctp"
-      }
-    },
     "tclip": {
       "inputs": {
-        "nixpkgs": "nixpkgs_6",
+        "nixpkgs": "nixpkgs_5",
         "utils": [
           "flake-utils"
         ]
@@ -927,26 +583,6 @@         "repo": "templ",
         "type": "github"
       }
     },
-    "tmpl": {
-      "inputs": {
-        "nixpkgs": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1707601935,
-        "narHash": "sha256-SX1AT7onZVSEgkE0Egl1bDnHffWROCo8jrRMcDS6ELQ=",
-        "ref": "refs/heads/main",
-        "rev": "c828078874c9897a8aa10b3f8d5602684f23f0f9",
-        "revCount": 36,
-        "type": "git",
-        "url": "https://git.jolheiser.com/tmpl.git"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://git.jolheiser.com/tmpl.git"
-      }
-    },
     "treefmt-nix": {
       "inputs": {
         "nixpkgs": [
@@ -966,56 +602,6 @@       "original": {
         "owner": "numtide",
         "repo": "treefmt-nix",
         "type": "github"
-      }
-    },
-    "ugit": {
-      "inputs": {
-        "nixpkgs": [
-          "nixpkgs"
-        ],
-        "tailwind-ctp": "tailwind-ctp",
-        "tailwind-ctp-lsp": "tailwind-ctp-lsp"
-      },
-      "locked": {
-        "lastModified": 1729739080,
-        "narHash": "sha256-Ps6Wo2oSK/yRd/hfxUqh+PLfXw5AcQtC2nRZ3vnBJYs=",
-        "ref": "refs/heads/main",
-        "rev": "0f4b6ec93640a2a2aa265434e7af69360b713a04",
-        "revCount": 66,
-        "type": "git",
-        "url": "https://git.jolheiser.com/ugit.git"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://git.jolheiser.com/ugit.git"
-      }
-    },
-    "website": {
-      "inputs": {
-        "flake-utils": [
-          "flake-utils"
-        ],
-        "nixpkgs": [
-          "nixpkgs"
-        ],
-        "tailwind-ctp": "tailwind-ctp_2",
-        "tailwind-ctp-lsp": "tailwind-ctp-lsp_2",
-        "templ": [
-          "templ"
-        ]
-      },
-      "locked": {
-        "lastModified": 1729007532,
-        "narHash": "sha256-WTCnUYILllGWI6MuG/a3Fp5HVASqPdpPbVNr7k49ZMQ=",
-        "ref": "refs/heads/main",
-        "rev": "82a84f0c62b0a1dddf9e7e7e464680a002439dcb",
-        "revCount": 18,
-        "type": "git",
-        "url": "https://git.jolheiser.com/jolheiser.com.git"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://git.jolheiser.com/jolheiser.com.git"
       }
     },
     "xc": {
M flake.nixflake.nix
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
diff --git a/flake.nix b/flake.nix
index 0b7b2e8682be01345b3744103adbf6e84aff6d1b..9f21ca62acebde42b8a6f315b834dca80353073f 100644
--- a/flake.nix
+++ b/flake.nix
@@ -24,47 +24,6 @@     helix = {
       url = "git+https://git.jolheiser.com/helix.drv.git";
       inputs.nixpkgs.follows = "jolheiser/nixpkgs";
     };
-    website = {
-      url = "git+https://git.jolheiser.com/jolheiser.com.git";
-      inputs = {
-        nixpkgs.follows = "nixpkgs";
-        flake-utils.follows = "flake-utils";
-        templ.follows = "templ";
-      };
-    };
-    resume = {
-      url = "git+https://git.jolheiser.com/resume.git";
-      inputs = {
-        nixpkgs.follows = "nixpkgs";
-        flake-utils.follows = "flake-utils";
-      };
-    };
-    blog = {
-      url = "git+https://git.jolheiser.com/blog.git";
-      inputs = {
-        nixpkgs.follows = "nixpkgs";
-        templ.follows = "templ";
-      };
-    };
-    bennet = {
-      url = "git+https://git.jolheiser.com/bennet.git";
-      inputs.nixpkgs.follows = "nixpkgs";
-    };
-    git-age = {
-      url = "git+https://git.jolheiser.com/git-age.git";
-      inputs = {
-        nixpkgs.follows = "nixpkgs";
-        flake-utils.follows = "flake-utils";
-      };
-    };
-    gist = {
-      url = "git+https://git.jolheiser.com/gist.git";
-      inputs.nixpkgs.follows = "nixpkgs";
-    };
-    tmpl = {
-      url = "git+https://git.jolheiser.com/tmpl.git";
-      inputs.nixpkgs.follows = "nixpkgs";
-    };
     gomodinit = {
       url = "git+https://git.jolheiser.com/gomodinit.git";
       inputs.nixpkgs.follows = "nixpkgs";
@@ -73,51 +32,21 @@     cfg = {
       url = "git+https://git.jolheiser.com/cfg.git";
       inputs.nixpkgs.follows = "nixpkgs";
     };
-    cfg-playground = {
-      url = "git+https://git.jolheiser.com/cfg-playground.git";
-      inputs.nixpkgs.follows = "nixpkgs";
-    };
-    ugit = {
-      url = "git+https://git.jolheiser.com/ugit.git";
-      inputs.nixpkgs.follows = "nixpkgs";
-    };
-    git-pr = {
-      url = "git+https://git.jolheiser.com/git-pr-nix.git";
-      inputs.nixpkgs.follows = "nixpkgs";
-    };
     spectre = {
       url = "git+https://git.jolheiser.com/go-spectre.git";
       inputs.nixpkgs.follows = "nixpkgs";
     };
-    # Other flakes
-    golink = {
-      url = "github:tailscale/golink";
-      inputs = {
-        nixpkgs.follows = "nixpkgs";
-        flake-utils.follows = "flake-utils";
-      };
+    templ = {
+      url = "github:a-h/templ";
+      inputs.nixpkgs.follows = "nixpkgs";
     };
+    ghostty.url = "git+ssh://git@github.com/ghostty-org/ghostty";
     tclip = {
       url = "github:tailscale-dev/tclip";
       inputs = {
-        #nixpkgs.follows = "nixpkgs";
         utils.follows = "flake-utils";
       };
     };
-    templ = {
-      url = "github:a-h/templ";
-      inputs.nixpkgs.follows = "nixpkgs";
-    };
-    actual = {
-      url = "git+https://git.xeno.science/xenofem/actual-nix.git";
-      inputs.nixpkgs.follows = "nixpkgs";
-    };
-    foundry.url = "github:reckenrode/nix-foundryvtt";
-    tailproxy = {
-      url = "git+https://git.jolheiser.com/tailproxy.git";
-      inputs.nixpkgs.follows = "nixpkgs";
-    };
-    ghostty.url = "git+ssh://git@github.com/ghostty-org/ghostty";
   };
 
   outputs =
@@ -137,22 +66,14 @@             pkgs = prev;
           };
           jolheiser = {
             helix = inputs.helix.packages.${prev.system}.default;
-            website = inputs.website.packages.${prev.system}.default;
-            resume = inputs.resume.packages.${prev.system}.default;
-            git-age = inputs.git-age.packages.${prev.system}.default;
-            gist = inputs.gist.packages.${prev.system}.default;
-            tmpl = inputs.tmpl.packages.${prev.system}.default;
             gomodinit = inputs.gomodinit.packages.${prev.system}.default;
             cfg = inputs.cfg.packages.${prev.system}.default;
-            blog = inputs.blog.packages.${prev.system}.default;
-            bennet = inputs.bennet.packages.${prev.system}.default;
             spectre = inputs.spectre.packages.${prev.system}.default;
           };
           tclip = inputs.tclip.packages.${prev.system}.tclip;
           templ = inputs.templ.packages.${prev.system}.templ;
           ghostty = inputs.ghostty.packages.${prev.system}.ghostty;
         })
-        inputs.golink.overlay
       ];
       pkgs = import inputs.nixpkgs {
         inherit overlays system;
@@ -163,8 +84,6 @@         { config, ... }:
         {
           config = {
             nixpkgs.overlays = overlays;
-            # TODO Remove when apps are updated
-            nixpkgs.config.permittedInsecurePackages = [ "electron-25.9.0" ];
           };
         };
       username = "jolheiser";
@@ -181,21 +100,20 @@             secretsDir = "/home/${username}/.agenix/agenix";
             secretsMountPoint = "/home/${username}/.agenix/agenix.d";
             identityPaths = [ "/home/${username}/.ssh/nix" ];
             secrets = {
-              ssh-config.file = ./secrets/shared/ssh-config.age;
+              ssh-config.file = ./secrets/ssh-config.age;
               spotify = {
-                file = ./secrets/shared/spotify.age;
+                file = ./secrets/spotify.age;
                 path = "/home/${username}/.cache/spotify-player/credentials.json";
               };
-              irc-pw.file = ./secrets/shared/irc-pw.age;
-              gist-pw.file = ./secrets/shared/gist-pw.age;
-              spectre-pw.file = ./secrets/shared/spectre-pw.age;
-              git-send-email.file = ./secrets/shared/git-send-email.age;
+              irc-pw.file = ./secrets/irc-pw.age;
+              spectre-pw.file = ./secrets/spectre-pw.age;
+              git-send-email.file = ./secrets/git-send-email.age;
               cachix = {
-                file = ./secrets/shared/cachix.age;
+                file = ./secrets/cachix.age;
                 path = "/home/${username}/.config/cachix/cachix.dhall";
               };
               llm = {
-                file = ./secrets/shared/llm.age;
+                file = ./secrets/llm.age;
                 path = "/home/${username}/.config/io.datasette.llm/keys.json";
               };
             };
@@ -229,38 +147,6 @@             commonConfig
           ];
         };
       };
-      colmena = {
-        meta = {
-          nixpkgs = import nixpkgs { inherit overlays system; };
-          specialArgs = {
-            inherit inputs;
-          };
-        };
-        dragonwell =
-          { pkgs, ... }:
-          {
-            imports = [
-              inputs.agenix.nixosModules.default
-              inputs.golink.nixosModules.default
-              inputs.ugit.nixosModules.default
-              inputs.git-pr.nixosModules.default
-              inputs.actual.nixosModules.default
-              inputs.tailproxy.nixosModules.default
-              inputs.foundry.nixosModules.foundryvtt
-              inputs.cfg-playground.nixosModules.default
-              ./modules/tclip
-              ./modules/miniserve
-              ./machines/dragonwell
-            ];
-            services.tclip.package = inputs.tclip.packages.${pkgs.system}.tclipd;
-          };
-        gunpowder = {
-          imports = [
-            inputs.tailproxy.nixosModules.default
-            ./machines/gunpowder
-          ];
-        };
-      };
       nixConfig = {
         extra-substitutors = [ "https://jolheiser.cachix.org" ];
         extra-trusted-public-keys = [
@@ -270,7 +156,6 @@       };
       devShells.${system}.default = pkgs.mkShell {
         nativeBuildInputs = [
           agenix.packages.${system}.agenix
-          pkgs.colmena
         ];
       };
     };
M justfilejustfile
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
diff --git a/justfile b/justfile
index 24bc25406e22af6b55e8ff1b301b3f339afbfe00..75be876041824dc4cd62de3d38b010fe2760d72f 100644
--- a/justfile
+++ b/justfile
@@ -20,11 +20,6 @@ # Rebuild the current machine for next boot
 boot *args:
 	@just rebuild boot {{args}}
 
-# Run colmena for remote deploy
-colmena node:
-	@git add .
-	@nix run nixpkgs#colmena -- apply --on {{node}}
-
 # Update the flake
 update-flake:
 	@nix flake update
D machines/dragonwell/actual.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
diff --git a/machines/dragonwell/actual.nix b/machines/dragonwell/actual.nix
deleted file mode 100644
index e09d2750e9c73fd63b78dc56bbcf602be23ea26d..0000000000000000000000000000000000000000
--- a/machines/dragonwell/actual.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  services = {
-    actual = {
-      enable = true;
-      hostname = "127.0.0.1";
-      port = 5006;
-    };
-    tailproxy.actualbudget = {
-      enable = true;
-      hostname = "actualbudget";
-      port = 5006;
-      authKey = "tskey-auth-kC3B2nznCk11CNTRL-G5QvPvrNWrcHcbQxh2XCrcCz3qe2jUrsh"; # One-time key
-    };
-  };
-}
D machines/dragonwell/caddy.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
diff --git a/machines/dragonwell/caddy.nix b/machines/dragonwell/caddy.nix
deleted file mode 100644
index 2ef0c23a555ab0e9ec1fdf325c7df4c3b0329ff3..0000000000000000000000000000000000000000
--- a/machines/dragonwell/caddy.nix
+++ /dev/null
@@ -1,85 +0,0 @@
-{ pkgs, ... }:
-let
-  modules = import ./go.nix;
-in
-{
-  services.caddy = {
-    enable = true;
-    virtualHosts = {
-      "jolheiser.com" = {
-        extraConfig = ''
-          handle_path /.well-known/webfinger {
-            header Content-Type application/jrd+json
-            respond ${
-              builtins.toJSON {
-                subject = "acct:john@jolheiser.com";
-                links = [
-                  {
-                    rel = "http://openid.net/specs/connect/1.0/issuer";
-                    href = "https://auth.jolheiser.com";
-                  }
-                ];
-              }
-            }
-          }
-          handle_path /bennet* {
-            root * ${pkgs.jolheiser.bennet}
-            file_server
-          }
-          handle /resume* {
-            root * ${pkgs.jolheiser.resume}
-            rewrite /resume /resume.pdf
-            file_server
-          }
-          handle {
-            root * ${pkgs.jolheiser.website}
-            file_server
-          }
-        '';
-        serverAliases = [ "www.jolheiser.com" ];
-      };
-      "blog.jolheiser.com" = {
-        extraConfig = ''
-          root * ${pkgs.jolheiser.blog}
-          file_server
-        '';
-      };
-      "go.jolheiser.com" = {
-        extraConfig = ''
-          header Content-Type text/html
-          ${modules}
-          respond /* `<html><head>
-            <meta name="go-import" content="go.jolheiser.com{path} git https://git.jolheiser.com{path}.git">
-            <meta http-equiv="refresh" content="3; url=https://pkg.go.dev/go.jolheiser.com{path}" />
-            </head><body>
-            Redirecting to <a href="https://pkg.go.dev/go.jolheiser.com{path}">https://pkg.go.dev/go.jolheiser.com{path}</a>
-            </body></html>`
-        '';
-      };
-      "git.jolheiser.com".extraConfig = ''
-        reverse_proxy localhost:8449
-      '';
-      "pr.jolheiser.com".extraConfig = ''
-        reverse_proxy localhost:7449
-      '';
-      "social.jolheiser.com".extraConfig = ''
-        reverse_proxy localhost:4686
-      '';
-      "auth.jolheiser.com".extraConfig = ''
-        reverse_proxy localhost:2884
-      '';
-      "todo.jolheiser.com".extraConfig = ''
-        reverse_proxy localhost:8636
-      '';
-      "recipes.jolheiser.com".extraConfig = ''
-        reverse_proxy localhost:3663
-      '';
-      "irc.jolheiser.com".extraConfig = ''
-        reverse_proxy localhost:7658
-      '';
-      "dnd.jolheiser.com".extraConfig = ''
-        reverse_proxy localhost:30000
-      '';
-    };
-  };
-}
D machines/dragonwell/cfg.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
diff --git a/machines/dragonwell/cfg.nix b/machines/dragonwell/cfg.nix
deleted file mode 100644
index 9e87a2de2abf80a251a0dc373da6643335dd1c26..0000000000000000000000000000000000000000
--- a/machines/dragonwell/cfg.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-  services.cfg-playground = {
-    enable = true;
-    verbose = true;
-    auth-key = "tskey-auth-ksTZtpeU1i11CNTRL-HmmWuAFifG3xxy8UDr1yG3UdjiYJ3mtGe"; # One-time key
-  };
-}
D machines/dragonwell/default.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
diff --git a/machines/dragonwell/default.nix b/machines/dragonwell/default.nix
deleted file mode 100644
index 825c922173caee708188a9830a265085a2b31022..0000000000000000000000000000000000000000
--- a/machines/dragonwell/default.nix
+++ /dev/null
@@ -1,61 +0,0 @@
-let
-  username = "jolheiser";
-  key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+uhnfFLhlyfGGsksSxh5IIY6gnIMryeQ2EiM979kZa";
-in
-{
-  imports = [
-    # ./actual.nix
-    ./caddy.nix
-    ./cfg.nix
-    ./dex.nix
-    ./foundry.nix
-    ./git-pr.nix
-    ./golink.nix
-    ./gotosocial.nix
-    ./miniserve.nix
-    ./pubserve.nix
-    ./restic.nix
-    ./soju.nix
-    ./tandoor.nix
-    ./tclip.nix
-    ./ugit.nix
-    ./vikunja.nix
-    ./hardware.nix
-  ];
-
-  boot.tmp.cleanOnBoot = true;
-  zramSwap.enable = true;
-
-  networking = {
-    hostName = "dragonwell";
-
-    firewall = {
-      enable = true;
-      allowedTCPPorts = [
-        80
-        443
-        6697
-      ];
-    };
-  };
-
-  services = {
-    openssh.enable = true;
-    tailscale.enable = true;
-  };
-
-  users.users = {
-    "${username}" = {
-      extraGroups = [
-        "wheel"
-        "docker"
-        "storage"
-      ];
-      isNormalUser = true;
-      openssh.authorizedKeys.keys = [ key ];
-    };
-    "root".openssh.authorizedKeys.keys = [ key ];
-  };
-
-  system.stateVersion = "22.11";
-}
D machines/dragonwell/dex.nix
1
2
3
4
diff --git a/machines/dragonwell/dex.nix b/machines/dragonwell/dex.nix
deleted file mode 100644
index 744c2633c796de2ce006acdd4fc0a3e9432712e2..0000000000000000000000000000000000000000
Binary files a/machines/dragonwell/dex.nix and /dev/null differ
D machines/dragonwell/foundry.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
diff --git a/machines/dragonwell/foundry.nix b/machines/dragonwell/foundry.nix
deleted file mode 100644
index ca0ea9a3367ce0fe564d8fdf8a807a57576323a0..0000000000000000000000000000000000000000
--- a/machines/dragonwell/foundry.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ inputs, pkgs, ... }:
-{
-  services.foundryvtt = {
-    enable = true;
-    hostName = "dnd.jolheiser.com";
-    minifyStaticFiles = true;
-    proxyPort = 443;
-    proxySSL = true;
-    upnp = false;
-    package = inputs.foundry.packages.${pkgs.system}.foundryvtt_12;
-  };
-}
D machines/dragonwell/git-pr.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
diff --git a/machines/dragonwell/git-pr.nix b/machines/dragonwell/git-pr.nix
deleted file mode 100644
index bcb7b506eb2a7b3336aa263227f328afba83bf45..0000000000000000000000000000000000000000
--- a/machines/dragonwell/git-pr.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-  services.git-pr = {
-    enable = true;
-    openFirewall = true;
-    url = "pr.jolheiser.com";
-    admins = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJXoiWcPkL5kUAqJfMxnPM/ND4qJ4kKShDhXdqnYv2ZB" ];
-    sshPort = 7448;
-    enableWeb = true;
-    webPort = 7449;
-    theme = "catppuccin-mocha";
-    timeFormat = "01/02/2006 at 03:04:05PM";
-    repos = [
-      {
-        id = "ugit";
-        cloneAddr = "https://git.jolheiser.com/ugit.git";
-        desc = "Minimal git service";
-      }
-      {
-        id = "git-pr-nix";
-        cloneAddr = "https://git.jolheiser.com/git-pr-nix.git";
-        desc = "Nix flake, package, and module for git-pr";
-      }
-    ];
-  };
-}
D machines/dragonwell/go.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
diff --git a/machines/dragonwell/go.nix b/machines/dragonwell/go.nix
deleted file mode 100644
index fe1f7cf41895bf96e315a5d1a3a765dfba07b170..0000000000000000000000000000000000000000
--- a/machines/dragonwell/go.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-let
-  modules = [
-    {
-      name = "hcaptcha";
-      repo = "gitea.com/jolheiser/hcaptcha";
-    }
-    {
-      name = "pwn";
-      repo = "gitea.com/jolheiser/pwn";
-    }
-  ];
-in
-builtins.concatStringsSep "\n" (
-  builtins.map (module: ''
-    respond /${module.name}* `<html><head>
-              <meta name="go-import" content="go.jolheiser.com/${module.name} git https://${module.repo}.git">
-              <meta http-equiv="refresh" content="3; url=https://pkg.go.dev/go.jolheiser.com/${module.name}" />
-              </head><body>
-              Redirecting to <a href="https://pkg.go.dev/go.jolheiser.com/${module.name}">https://pkg.go.dev/go.jolheiser.com/${module.name}</a>
-              </body></html>`
-  '') modules
-)
D machines/dragonwell/golink.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
diff --git a/machines/dragonwell/golink.nix b/machines/dragonwell/golink.nix
deleted file mode 100644
index 9e65524a795e059659db3b5e229f266a533b2a86..0000000000000000000000000000000000000000
--- a/machines/dragonwell/golink.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ pkgs, ... }:
-{
-  services.golink = {
-    enable = true;
-    tailscaleAuthKeyFile = pkgs.writeText "tskey" "tskey-auth-kGaKxz5CNTRL-nvyRLm7J38B37QZ2gCDM8BqtwyC6zJUh7"; # One-time key
-  };
-}
D machines/dragonwell/gotosocial.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
diff --git a/machines/dragonwell/gotosocial.nix b/machines/dragonwell/gotosocial.nix
deleted file mode 100644
index e7a909f22cde18740de9ba6bfafc752efecaac24..0000000000000000000000000000000000000000
--- a/machines/dragonwell/gotosocial.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  services.gotosocial = {
-    enable = true;
-    settings = {
-      application-name = "jolheiser GtS";
-      host = "social.jolheiser.com";
-      port = 4686;
-      accounts-registration-open = false;
-      landing-page-user = "jolheiser";
-    };
-  };
-}
D machines/dragonwell/hardware.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
diff --git a/machines/dragonwell/hardware.nix b/machines/dragonwell/hardware.nix
deleted file mode 100644
index 8ec43119828fbd561cbc95a3155fb1ec4fe6a714..0000000000000000000000000000000000000000
--- a/machines/dragonwell/hardware.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ modulesPath, ... }:
-{
-  imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
-  boot.loader.grub.device = "/dev/sda";
-  boot.initrd.availableKernelModules = [
-    "ata_piix"
-    "uhci_hcd"
-    "xen_blkfront"
-    "vmw_pvscsi"
-  ];
-  boot.initrd.kernelModules = [ "nvme" ];
-  fileSystems."/" = {
-    device = "/dev/sda1";
-    fsType = "ext4";
-  };
-}
D machines/dragonwell/miniserve.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
diff --git a/machines/dragonwell/miniserve.nix b/machines/dragonwell/miniserve.nix
deleted file mode 100644
index 8905b1380508bd53125223ee2bf8cd2330961d3e..0000000000000000000000000000000000000000
--- a/machines/dragonwell/miniserve.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-  services = {
-    miniserve = {
-      enable = true;
-      port = 3453;
-      showHidden = true;
-      uploadFiles = "";
-      mkdir = true;
-      overwriteFiles = true;
-      enableTar = true;
-      enableTarGz = true;
-      enableZip = true;
-      dirsFirst = true;
-      title = "Files";
-      hideThemeSelector = true;
-      hideVersionFooter = true;
-      readme = true;
-    };
-    tailproxy.miniserve = {
-      enable = true;
-      hostname = "files";
-      port = 3453;
-      authKey = "tskey-auth-kNNZJXfSDb11CNTRL-DsdZPygdA7Lrye5WJjnr6LGNffgzo3PUH"; # One-time key
-    };
-  };
-}
D machines/dragonwell/pubserve.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
diff --git a/machines/dragonwell/pubserve.nix b/machines/dragonwell/pubserve.nix
deleted file mode 100644
index ed05fc5ce2adb9a5209ab2ff4ab2174ac2684fdc..0000000000000000000000000000000000000000
--- a/machines/dragonwell/pubserve.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{ pkgs, lib, ... }:
-let
-  user = "pubserve";
-  path = "/var/lib/pubserve";
-in
-{
-  users.users.${user} = {
-    group = user;
-    home = path;
-    createHome = true;
-    isSystemUser = true;
-    isNormalUser = false;
-
-  };
-  users.groups.${user} = { };
-
-  systemd.services =
-    let
-      commonArgs = [
-        "-i '127.0.0.1'"
-        "-H"
-        "-D"
-        "-F"
-        "--hide-theme-selector"
-        "--readme"
-        path
-      ];
-    in
-    {
-      pubserve = {
-        description = "Miniserve Public File Server";
-        after = [ "network.target" ];
-        wantedBy = [ "multi-user.target" ];
-        serviceConfig = {
-          ExecStart = "${pkgs.miniserve}/bin/miniserve -t 'PubServe' -p 3454 ${lib.concatStringsSep " " commonArgs}";
-          Restart = "on-failure";
-          User = user;
-          Group = user;
-        };
-      };
-      privserve = {
-        description = "Miniserve Public File Server (Admin)";
-        after = [ "network.target" ];
-        wantedBy = [ "multi-user.target" ];
-        serviceConfig = {
-          ExecStart = "${pkgs.miniserve}/bin/miniserve -u -U -o -t 'PrivServe' -p 3455 ${lib.concatStringsSep " " commonArgs}";
-          Restart = "on-failure";
-          User = user;
-          Group = user;
-        };
-      };
-    };
-  services.tailproxy = {
-    pubserve = {
-      enable = true;
-      hostname = "pubserve";
-      funnel = true;
-      port = 3454;
-      authKey = "tskey-auth-kJrnknpMsL11CNTRL-ot1kkasErR2cLZZmfuKYR2b9za7fCzVR"; # One-time key
-    };
-    privserve = {
-      enable = true;
-      hostname = "privserve";
-      port = 3455;
-      authKey = "tskey-auth-kKFv865ykk11CNTRL-dfmxUREHP5evuuMsfPy55ehXECXrLF1N7"; # One-time key
-    };
-  };
-}
D machines/dragonwell/restic.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
diff --git a/machines/dragonwell/restic.nix b/machines/dragonwell/restic.nix
deleted file mode 100644
index 26e025424f33c896120eb701c18c940acdff9c7c..0000000000000000000000000000000000000000
--- a/machines/dragonwell/restic.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ config, ... }:
-{
-  age.secrets = {
-    restic-env.file = ../../secrets/personal/restic-env.age;
-    restic-pass.file = ../../secrets/personal/restic-pass.age;
-    restic-repo.file = ../../secrets/personal/restic-repo.age;
-  };
-  services.restic.backups.dragonwell = {
-    initialize = true;
-    environmentFile = config.age.secrets.restic-env.path;
-    passwordFile = config.age.secrets.restic-pass.path;
-    repositoryFile = config.age.secrets.restic-repo.path;
-    paths = [
-      "/var/lib/ugit/repos"
-      "/var/lib/miniserve"
-      "/var/lib/foundryvtt/Data"
-      "/var/lib/foundryvtt/Config"
-    ];
-    pruneOpts = [
-      "--keep-daily 7"
-      "--keep-weekly 2"
-      "--keep-monthly 2"
-    ];
-    timerConfig = {
-      OnCalendar = "daily";
-      Persistent = true;
-    };
-  };
-}
D machines/dragonwell/soju.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
diff --git a/machines/dragonwell/soju.nix b/machines/dragonwell/soju.nix
deleted file mode 100644
index 6f5e86c30b141cc339b38ec48f09d95cd300ccc2..0000000000000000000000000000000000000000
--- a/machines/dragonwell/soju.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, ... }:
-let
-  baseCertPath = "/var/lib/acme/irc.jolheiser.com";
-in
-{
-  security.acme = {
-    acceptTerms = true;
-    email = "irc@jolheiser.com";
-    certs."irc.jolheiser.com" = {
-      listenHTTP = ":7658";
-      postRun = "systemctl reload soju";
-      group = "soju";
-    };
-  };
-  services.soju = {
-    enable = true;
-    tlsCertificate = "${baseCertPath}/fullchain.pem";
-    tlsCertificateKey = "${baseCertPath}/key.pem";
-  };
-  systemd.services.soju.serviceConfig = {
-    DynamicUser = lib.mkForce false;
-    User = "soju";
-    Group = "soju";
-    ReadOnlyPaths = baseCertPath;
-  };
-  users = {
-    users.soju = {
-      isSystemUser = true;
-      group = "soju";
-    };
-    groups.soju = { };
-  };
-}
D machines/dragonwell/tandoor.nix
1
2
3
4
diff --git a/machines/dragonwell/tandoor.nix b/machines/dragonwell/tandoor.nix
deleted file mode 100644
index efc40612cf2e6e88cc44a601151a0b70b4bdcf5f..0000000000000000000000000000000000000000
Binary files a/machines/dragonwell/tandoor.nix and /dev/null differ
D machines/dragonwell/tclip.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
diff --git a/machines/dragonwell/tclip.nix b/machines/dragonwell/tclip.nix
deleted file mode 100644
index db4dcd802fb6603260966715df18c83518968242..0000000000000000000000000000000000000000
--- a/machines/dragonwell/tclip.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  services.tclip = {
-    enable = true;
-    hostname = "paste";
-    useFunnel = true;
-    hideFunnelUsers = true;
-    authKey = "tskey-auth-k1VerP4gam11CNTRL-89rpeDcfTdJqkF9AECWmdJLVgo1jQcSAB"; # One-time key
-  };
-}
D machines/dragonwell/ugit.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
diff --git a/machines/dragonwell/ugit.nix b/machines/dragonwell/ugit.nix
deleted file mode 100644
index c7ef77e513623cf422d4a0e091a746ead8f30246..0000000000000000000000000000000000000000
--- a/machines/dragonwell/ugit.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  services.ugit = {
-    enable = true;
-    openFirewall = true;
-    authorizedKeys = [
-      "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJXoiWcPkL5kUAqJfMxnPM/ND4qJ4kKShDhXdqnYv2ZB"
-    ];
-    tsAuthKey = "tskey-auth-kRUJE7zxH621CNTRL-Td29STXSrtTUHdacaKaYtTD82uyDXZj7"; # One-time key
-    config = {
-      ssh.clone-url = "ugit@git.jolheiser.com";
-      http.clone-url = "https://git.jolheiser.com";
-      log.json = true;
-      profile = {
-        username = "jolheiser";
-        email = "ugit@jolheiser.com";
-        links = [
-          "Github,https://github.com/jolheiser"
-          "Gitea,https://gitea.com/jolheiser"
-          "JoJoDev,https://git.jojodev.com/jolheiser"
-          "Fediverse,https://social.jolheiser.com/@jolheiser"
-        ];
-      };
-      tailscale = {
-        enable = true;
-        hostname = "git";
-      };
-    };
-  };
-}
D machines/dragonwell/vikunja.nix
1
2
3
4
diff --git a/machines/dragonwell/vikunja.nix b/machines/dragonwell/vikunja.nix
deleted file mode 100644
index 045a5210fb7f4d097343c5398dd483fa21c984b5..0000000000000000000000000000000000000000
Binary files a/machines/dragonwell/vikunja.nix and /dev/null differ
D modules/miniserve/default.nix
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
diff --git a/modules/miniserve/default.nix b/modules/miniserve/default.nix
deleted file mode 100644
index 9b6fcf6ad28f41d9508002736b1050ab9d564fb3..0000000000000000000000000000000000000000
--- a/modules/miniserve/default.nix
+++ /dev/null
@@ -1,438 +0,0 @@
-{
-  config,
-  lib,
-  pkgs,
-  ...
-}:
-
-let
-  cfg = config.services.miniserve;
-  inherit (lib)
-    mkEnableOption
-    mkOption
-    mkIf
-    types
-    optionalString
-    concatMapStringsSep
-    concatStringsSep
-    ;
-in
-{
-  options.services.miniserve = {
-    enable = mkEnableOption "miniserve service";
-
-    package = mkOption {
-      type = types.package;
-      description = "miniserve package to use";
-      default = pkgs.miniserve;
-    };
-
-    user = mkOption {
-      type = types.str;
-      default = "miniserve";
-      description = "User account for miniserve service";
-    };
-
-    group = mkOption {
-      type = types.str;
-      default = "miniserve";
-      description = "Group for miniserve service";
-    };
-
-    path = mkOption {
-      type = types.str;
-      default = "/var/lib/miniserve";
-      description = "Which path to serve";
-    };
-
-    port = mkOption {
-      type = types.port;
-      default = 8080;
-      description = "Port to use";
-    };
-
-    interfaces = mkOption {
-      type = types.listOf types.str;
-      default = [ "127.0.0.1" ];
-      description = "Interface to listen on";
-    };
-
-    verbose = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Be verbose, includes emitting access logs";
-    };
-
-    indexFile = mkOption {
-      type = types.nullOr types.str;
-      default = null;
-      description = ''
-        The name of a directory index file to serve, like "index.html"
-
-        Normally, when miniserve serves a directory, it creates a listing for that directory. However, if a directory
-        contains this file, miniserve will serve that file instead.
-      '';
-    };
-
-    spa = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        Activate SPA (Single Page Application) mode
-
-        This will cause the file given by --index to be served for all non-existing file paths. In effect, this will serve
-        the index file whenever a 404 would otherwise occur in order to allow the SPA router to handle the request instead.
-      '';
-    };
-
-    prettyUrls = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        Activate Pretty URLs mode
-
-        This will cause the server to serve the equivalent `.html` file indicated by the path.
-
-        `/about` will try to find `about.html` and serve it.
-      '';
-    };
-
-    auth = mkOption {
-      type = types.nullOr types.str;
-      default = null;
-      description = ''
-        Set authentication
-
-        Currently supported formats:
-        username:password, username:sha256:hash, username:sha512:hash
-        (e.g. joe:123, joe:sha256:a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3)
-      '';
-    };
-
-    authFile = mkOption {
-      type = types.nullOr types.path;
-      default = null;
-      description = ''
-        Read authentication values from a file
-
-        Example file content:
-
-        joe:123
-        bob:sha256:a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
-        bill:
-      '';
-    };
-
-    routePrefix = mkOption {
-      type = types.nullOr types.str;
-      default = null;
-      description = "Use a specific route prefix";
-    };
-
-    randomRoute = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Generate a random 6-hexdigit route";
-    };
-
-    hideSymlinks = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Hide symlinks in listing and prevent them from being followed";
-    };
-
-    showHidden = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Show hidden files";
-    };
-
-    sortingMethod = mkOption {
-      type = types.enum [
-        "name"
-        "size"
-        "date"
-      ];
-      default = "name";
-      description = ''
-        Default sorting method for file list
-
-        Possible values:
-        - name: Sort by name
-        - size: Sort by size
-        - date: Sort by last modification date (natural sort: follows alphanumerical order)
-      '';
-    };
-
-    sortingOrder = mkOption {
-      type = types.enum [
-        "asc"
-        "desc"
-      ];
-      default = "desc";
-      description = ''
-        Default sorting order for file list
-
-        Possible values:
-        - asc:  Ascending order
-        - desc: Descending order
-      '';
-    };
-
-    colorScheme = mkOption {
-      type = types.enum [
-        "squirrel"
-        "archlinux"
-        "zenburn"
-        "monokai"
-      ];
-      default = "squirrel";
-      description = ''
-        Default color scheme
-
-        Possible values: squirrel, archlinux, zenburn, monokai
-      '';
-    };
-
-    colorSchemeDark = mkOption {
-      type = types.enum [
-        "squirrel"
-        "archlinux"
-        "zenburn"
-        "monokai"
-      ];
-      default = "archlinux";
-      description = ''
-        Default color scheme
-
-        Possible values: squirrel, archlinux, zenburn, monokai
-      '';
-    };
-
-    qrcode = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Enable QR code display";
-    };
-
-    uploadFiles = mkOption {
-      type = types.nullOr types.str;
-      default = null;
-      description = "Enable file uploading (and optionally specify for which directory)";
-    };
-
-    mkdir = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Enable creating directories";
-    };
-
-    mediaType = mkOption {
-      type = types.nullOr (
-        types.enum [
-          "image"
-          "audio"
-          "video"
-        ]
-      );
-      default = null;
-      description = ''
-        Specify uploadable media types
-
-        Possible values: image, audio, video
-      '';
-    };
-
-    rawMediaType = mkOption {
-      type = types.nullOr types.str;
-      default = null;
-      description = "Directly specify the uploadable media type expression";
-    };
-
-    overwriteFiles = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Enable overriding existing files during file upload";
-    };
-
-    enableTar = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Enable uncompressed tar archive generation";
-    };
-
-    enableTarGz = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Enable gz-compressed tar archive generation";
-    };
-
-    enableZip = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        Enable zip archive generation
-
-        WARNING: Zipping large directories can result in out-of-memory exception because zip generation is done in memory
-        and cannot be sent on the fly
-      '';
-    };
-
-    compressResponse = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        Compress response
-
-        WARNING: Enabling this option may slow down transfers due to CPU overhead, so it is disabled by default.
-
-        Only enable this option if you know that your users have slow connections or if you want to minimize your server's bandwidth usage.
-      '';
-    };
-
-    dirsFirst = mkOption {
-      type = types.bool;
-      default = false;
-      description = "List directories first";
-    };
-
-    title = mkOption {
-      type = types.nullOr types.str;
-      default = null;
-      description = "Shown instead of host in page title and heading";
-    };
-
-    headers = mkOption {
-      type = types.listOf types.str;
-      default = [ ];
-      description = ''
-        Inserts custom headers into the responses. Specify each header as a 'Header:Value' pair.
-        This parameter can be used multiple times to add multiple headers.
-
-        Example:
-        --header "Header1:Value1" --header "Header2:Value2"
-        (If a header is already set or previously inserted, it will not be overwritten.)
-      '';
-    };
-
-    showSymlinkInfo = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Visualize symlinks in directory listing";
-    };
-
-    hideVersionFooter = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Hide version footer";
-    };
-
-    hideThemeSelector = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Hide theme selector";
-    };
-
-    showWgetFooter = mkOption {
-      type = types.bool;
-      default = false;
-      description = "If enabled, display a wget command to recursively download the current directory";
-    };
-
-    tlsCert = mkOption {
-      type = types.nullOr types.path;
-      default = null;
-      description = "TLS certificate to use";
-    };
-
-    tlsKey = mkOption {
-      type = types.nullOr types.path;
-      default = null;
-      description = "TLS private key to use";
-    };
-
-    readme = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Enable README.md rendering in directories";
-    };
-
-    disableIndexing = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        Disable indexing
-
-        This will prevent directory listings from being generated and return an error instead.
-      '';
-    };
-  };
-
-  config = mkIf cfg.enable {
-    systemd.services.miniserve = {
-      description = "Miniserve File Server";
-      after = [ "network.target" ];
-      wantedBy = [ "multi-user.target" ];
-      serviceConfig = {
-        ExecStart =
-          let
-            args = [
-              (optionalString cfg.verbose "-v")
-              (optionalString (cfg.indexFile != null) "--index '${cfg.indexFile}'")
-              (optionalString cfg.spa "--spa")
-              (optionalString cfg.prettyUrls "--pretty-urls")
-              "-p ${toString cfg.port}"
-              (concatMapStringsSep " " (i: "-i ${i}") cfg.interfaces)
-              (optionalString (cfg.auth != null) "-a '${cfg.auth}'")
-              (optionalString (cfg.authFile != null) "--auth-file ${cfg.authFile}")
-              (optionalString (cfg.routePrefix != null) "--route-prefix '${cfg.routePrefix}'")
-              (optionalString cfg.randomRoute "--random-route")
-              (optionalString cfg.hideSymlinks "-P")
-              (optionalString cfg.showHidden "-H")
-              "-S ${cfg.sortingMethod}"
-              "-O ${cfg.sortingOrder}"
-              "-c ${cfg.colorScheme}"
-              "-d ${cfg.colorSchemeDark}"
-              (optionalString cfg.qrcode "-q")
-              (optionalString (cfg.uploadFiles != null) (
-                if (cfg.uploadFiles != "") then "-u '${cfg.uploadFiles}'" else "-u"
-              ))
-              (optionalString cfg.mkdir "-U")
-              (optionalString (cfg.mediaType != null) "-m ${cfg.mediaType}")
-              (optionalString (cfg.rawMediaType != null) "-M '${cfg.rawMediaType}'")
-              (optionalString cfg.overwriteFiles "-o")
-              (optionalString cfg.enableTar "-r")
-              (optionalString cfg.enableTarGz "-g")
-              (optionalString cfg.enableZip "-z")
-              (optionalString cfg.compressResponse "-C")
-              (optionalString cfg.dirsFirst "-D")
-              (optionalString (cfg.title != null) "-t '${cfg.title}'")
-              (concatMapStringsSep " " (h: "--header '${h}'") cfg.headers)
-              (optionalString cfg.showSymlinkInfo "-l")
-              (optionalString cfg.hideVersionFooter "-F")
-              (optionalString cfg.hideThemeSelector "--hide-theme-selector")
-              (optionalString cfg.showWgetFooter "-W")
-              (optionalString (cfg.tlsCert != null) "--tls-cert ${cfg.tlsCert}")
-              (optionalString (cfg.tlsKey != null) "--tls-key ${cfg.tlsKey}")
-              (optionalString cfg.readme "--readme")
-              (optionalString cfg.disableIndexing "-I")
-              cfg.path
-            ];
-          in
-          "${pkgs.miniserve}/bin/miniserve ${concatStringsSep " " args}";
-        Restart = "on-failure";
-        User = cfg.user;
-        Group = cfg.group;
-      };
-    };
-
-    users.users.${cfg.user} = {
-      group = cfg.group;
-      home = cfg.path;
-      createHome = true;
-      isSystemUser = true;
-      isNormalUser = false;
-    };
-    users.groups.${cfg.group} = { };
-  };
-}
D modules/tclip/default.nix
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
diff --git a/modules/tclip/default.nix b/modules/tclip/default.nix
deleted file mode 100644
index c8c68763d3bccb388e5dd08d61f645cc0214273c..0000000000000000000000000000000000000000
--- a/modules/tclip/default.nix
+++ /dev/null
@@ -1,108 +0,0 @@
-{ config, lib, ... }:
-let
-  cfg = config.services.tclip;
-in
-{
-  options.services.tclip = {
-    enable = lib.mkEnableOption "tclip service";
-
-    hostname = lib.mkOption {
-      type = lib.types.str;
-      default = "paste";
-      description = "The hostname to use on your tailnet";
-    };
-
-    dataLocation = lib.mkOption {
-      type = lib.types.str;
-      default = "/var/lib/tclip";
-      description = "Where program data is stored";
-    };
-
-    tsnetVerbose = lib.mkOption {
-      type = lib.types.bool;
-      default = false;
-      description = "Log verbosely to stderr";
-    };
-
-    useFunnel = lib.mkOption {
-      type = lib.types.bool;
-      default = false;
-      description = "Expose pastes with tailscale funnel";
-    };
-
-    hideFunnelUsers = lib.mkOption {
-      type = lib.types.bool;
-      default = false;
-      description = "Hide usernamd/image on funnel";
-    };
-
-    httpPort = lib.mkOption {
-      type = lib.types.nullOr lib.types.port;
-      default = null;
-      description = "Expose pastes on an HTTP server at the given port";
-    };
-
-    controlURL = lib.mkOption {
-      type = lib.types.nullOr lib.types.str;
-      default = null;
-      description = "Custom control server (e.g. headscale)";
-    };
-
-    disableHTTPS = lib.mkOption {
-      type = lib.types.bool;
-      default = false;
-      description = "Disable serving on HTTPS";
-    };
-
-    package = lib.mkOption {
-      type = lib.types.package;
-      description = "The tclip package to use";
-    };
-
-    authKey = lib.mkOption {
-      type = lib.types.nullOr lib.types.str;
-      default = null;
-      description = "Tailscale auth key";
-    };
-  };
-
-  config = lib.mkIf cfg.enable {
-    systemd.services.tclip = {
-      description = "tclip Service";
-      after = [ "network.target" ];
-      wantedBy = [ "multi-user.target" ];
-
-      serviceConfig = {
-        ExecStart =
-          let
-            args =
-              lib.optionals (cfg.httpPort != null) [ "--http-port=${cfg.httpPort}" ]
-              ++ lib.optionals (cfg.controlURL != null) [ "--control-url=${cfg.controlURL}" ]
-              ++ [
-                (lib.optionalString cfg.disableHTTPS "--disable-https")
-                "--hostname=${cfg.hostname}"
-                "--data-location=${cfg.dataLocation}"
-                (lib.optionalString cfg.tsnetVerbose "--tsnet-verbose")
-                (lib.optionalString cfg.useFunnel "--use-funnel")
-                (lib.optionalString cfg.hideFunnelUsers "--hide-funnel-users")
-              ];
-          in
-          "${cfg.package}/bin/tclipd ${lib.concatStringsSep " " args}";
-        Restart = "always";
-        User = "tclip";
-        Group = "tclip";
-        Environment = [ "TS_AUTHKEY=${cfg.authKey}" ];
-      };
-    };
-
-    # Create user and group
-    users.users.tclip = {
-      isSystemUser = true;
-      group = "tclip";
-      home = cfg.dataLocation;
-      createHome = true;
-    };
-
-    users.groups.tclip = { };
-  };
-}
D secrets/personal/dex-tailscale.age
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
diff --git a/secrets/personal/dex-tailscale.age b/secrets/personal/dex-tailscale.age
deleted file mode 100644
index 126c2e80f7aabd778dee4d1a18afbb1273253097..0000000000000000000000000000000000000000
--- a/secrets/personal/dex-tailscale.age
+++ /dev/null
@@ -1,8 +0,0 @@
-age-encryption.org/v1
--> ssh-ed25519 E8j6/g QWZGgeu5+89wRzWH31D1GdNuhrNyyKsKqv/b4Kkyn2s
-3vYwTYDVOMyiNeE+NtNPyplmGiknjyTQvln2DRxUPg0
--> ssh-ed25519 f31uNA NVB2C1IjxvB25uA+PdB9lmNgmPQ16wSRl8lS0Wp4Tzg
-Fe7BCcnb+1HzJ43Iq+YtHCI/i2m7TT5xO1rZwb9yZ70
---- 4Fmm3sQzE/funn3yI79REu1SVRzgUMQ1r8bUaNgVYZE
-΍�
-���,F�����/��~ŔT�D�ِۨ���t`)9������+x�y~+
\ No newline at end of file
D secrets/personal/dex-tandoor.age
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
diff --git a/secrets/personal/dex-tandoor.age b/secrets/personal/dex-tandoor.age
deleted file mode 100644
index 764061e9a96a34c1c32a34424abc7e190b9f0b48..0000000000000000000000000000000000000000
--- a/secrets/personal/dex-tandoor.age
+++ /dev/null
@@ -1,7 +0,0 @@
-age-encryption.org/v1
--> ssh-ed25519 E8j6/g npvjWOaLtdQ8shF6rkXfUlXXf1MAe/pvPBPIPY9R1XY
-gO6lr8kHN7fOQb5NXaybFqhghx5VqcK0LaHCVvlsdvs
--> ssh-ed25519 f31uNA qrbvpL4AuM1wPSR2Qc9VKSpO4Ho0WgpmOIThWvotBCQ
-Q1oMS4SAxzqb1vQffM4dpsnlXP1M2fZ5nYYIpyB9uoA
---- ESb6mxdTZnHs053UowTuWZRn+W+QlOeVM8/kL1VWSgw
-H��D�ݭD�����֢�w�o�k�G�EJ�-�_up���!��!����B
\ No newline at end of file
D secrets/personal/dex-vikunja.age
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
diff --git a/secrets/personal/dex-vikunja.age b/secrets/personal/dex-vikunja.age
deleted file mode 100644
index fdcdfa10e6423a11b1827ab53939cb1b350f9c4c..0000000000000000000000000000000000000000
--- a/secrets/personal/dex-vikunja.age
+++ /dev/null
@@ -1,8 +0,0 @@
-age-encryption.org/v1
--> ssh-ed25519 E8j6/g rUc81FjzuShzhp/3we9dQPPAqIPEoKAagCF9K0/S9lw
-0mv/S6RCEosLF1aWvb/2+oPdQEfTHraOqVI8v3PMcrI
--> ssh-ed25519 f31uNA C3OusAWxSswFYZxr26XtuB5EpJUzkxcP0US+F4SZFlc
-L/soUr5i+7+RyZ8mMUI6AOfTXdWzqO+a9OFLHGw28SI
---- rVDcNMV2dVpwhNiIx964+sw6ak5lcZzaeGASLlVNac8
-��&sE
-H'��/�S���|��%8ӛ��ԧ@�Z�:2����j1��5p��.�
\ No newline at end of file
D secrets/personal/dex.age
1
2
3
4
diff --git a/secrets/personal/dex.age b/secrets/personal/dex.age
deleted file mode 100644
index afde76e712eaecda1252e887cbe5d7ff4dfb8e65..0000000000000000000000000000000000000000
Binary files a/secrets/personal/dex.age and /dev/null differ
D secrets/personal/restic-env.age
1
2
3
4
diff --git a/secrets/personal/restic-env.age b/secrets/personal/restic-env.age
deleted file mode 100644
index 8ca40dc79344a0a11f2b07a33dc206c005415d58..0000000000000000000000000000000000000000
Binary files a/secrets/personal/restic-env.age and /dev/null differ
D secrets/personal/restic-pass.age
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
diff --git a/secrets/personal/restic-pass.age b/secrets/personal/restic-pass.age
deleted file mode 100644
index 1a2664a6f90d67687dafe515b905611a78e6e7c6..0000000000000000000000000000000000000000
--- a/secrets/personal/restic-pass.age
+++ /dev/null
@@ -1,7 +0,0 @@
-age-encryption.org/v1
--> ssh-ed25519 E8j6/g c3mP+3muM3Nk+CR8X2GRdVDgc88Y5FHblV7EzxaYF08
-dVEE+rQ6Y7ki9Uyr+8B3xYRZtO9VeGWwFboasp5ycqg
--> ssh-ed25519 f31uNA Xq8QkBgX9mpIkenoJQCt+hyg/AVf/kwkVMJnOxqEARM
-tkte19pOr+Lb2lk1BVQibsC8d8k38oKwllx6cySVtt0
---- geKlgkUKw/FYhJNqGSZmXoTSTfRQR+dlz7fq5WzL7SU
-�l,��ٗ���WL�����4VE����������b�6�Y8�����
\ No newline at end of file
D secrets/personal/restic-repo.age
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
diff --git a/secrets/personal/restic-repo.age b/secrets/personal/restic-repo.age
deleted file mode 100644
index 08d2997d2f7a326a5d729e5a8dc95cb8d9b79060..0000000000000000000000000000000000000000
--- a/secrets/personal/restic-repo.age
+++ /dev/null
@@ -1,7 +0,0 @@
-age-encryption.org/v1
--> ssh-ed25519 E8j6/g vLXo/gyZOwGUJyLHIqcrpCmvLmbFpgrFHBRLmqzyiwg
-ha7V1vSM3r5Y0PQyeNL01wqqvSuMOWfwbdZjJSMpzhk
--> ssh-ed25519 f31uNA NGUshv3FTRw4kARWfLgSqp2EbLvPnm638rKAULFLZlY
-3owquk+she5gB+cjdpPYdIFlz+RtA25RbwxIGftD6BI
---- MZfK5Wquy6pyOWuQdRYa9y46X8lD1ndOeXqkImvIDpM
-e7�k�UWsm��7ߨ��㗛D���d����\(1�ܪd�j$$�N���^Јi�.b*}(�2$��%���B���[�5So�1�A徱+#���c�
\ No newline at end of file
M secrets/secrets.nixsecrets/secrets.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
diff --git a/secrets/secrets.nix b/secrets/secrets.nix
index 4f4156f3621ce08c2dec6b1ad4aafda7a54dc082..d6546bf6a2cef026bcdf3cb84e7a989efe7697b0 100644
--- a/secrets/secrets.nix
+++ b/secrets/secrets.nix
@@ -3,51 +3,20 @@   jolheiser = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKrPUqk9v7FE7OgMDaOMdlnItiXSDkmS+eU94RzQFiMS";
   matcha = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILZxjkZLj/9xvmg1enK+B7k8qf6Px0j4kTZ2caQfYmB1";
   genmaicha = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKhyzwMV0eoS8RSAcUvLkPhbXoR9/06cLoBmUVyb9DTw";
   sencha = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJurjAMu4IXgpBwgUP0QvE2ySE5/Orn/yflkdWVvy6Am";
-  dragonwell = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN32Cwxer2AOGvEqSqXSPp49gj1VtR7G2XmPnmXj6o53";
 
   all = [
     jolheiser
     matcha
     genmaicha
     sencha
-    dragonwell
   ];
 in
 {
-  "shared/cachix.age".publicKeys = all;
-  "shared/ssh-config.age".publicKeys = all;
-  "shared/spotify.age".publicKeys = all;
-  "shared/irc-pw.age".publicKeys = all;
-  "shared/gist-pw.age".publicKeys = all;
-  "shared/git-send-email.age".publicKeys = all;
-  "shared/llm.age".publicKeys = all;
-  "shared/spectre-pw.age".publicKeys = [ jolheiser ];
-  "personal/restic-env.age".publicKeys = [
-    jolheiser
-    dragonwell
-  ];
-  "personal/restic-pass.age".publicKeys = [
-    jolheiser
-    dragonwell
-  ];
-  "personal/restic-repo.age".publicKeys = [
-    jolheiser
-    dragonwell
-  ];
-  "personal/dex.age".publicKeys = [
-    jolheiser
-    dragonwell
-  ];
-  "personal/dex-tailscale.age".publicKeys = [
-    jolheiser
-    dragonwell
-  ];
-  "personal/dex-vikunja.age".publicKeys = [
-    jolheiser
-    dragonwell
-  ];
-  "personal/dex-tandoor.age".publicKeys = [
-    jolheiser
-    dragonwell
-  ];
+  "cachix.age".publicKeys = all;
+  "ssh-config.age".publicKeys = all;
+  "spotify.age".publicKeys = all;
+  "irc-pw.age".publicKeys = all;
+  "git-send-email.age".publicKeys = all;
+  "llm.age".publicKeys = all;
+  "spectre-pw.age".publicKeys = [ jolheiser ];
 }
M secrets/shared/cachix.agesecrets/cachix.age
1
2
3
diff --git a/secrets/shared/cachix.age b/secrets/cachix.age
rename from secrets/shared/cachix.age
rename to secrets/cachix.age
D secrets/shared/gist-pw.age
1
2
3
4
diff --git a/secrets/shared/gist-pw.age b/secrets/shared/gist-pw.age
deleted file mode 100644
index 6e0eb99c00a6de509b77671b1e29e1c64225d860..0000000000000000000000000000000000000000
Binary files a/secrets/shared/gist-pw.age and /dev/null differ
M secrets/shared/git-send-email.agesecrets/git-send-email.age
1
2
3
diff --git a/secrets/shared/git-send-email.age b/secrets/git-send-email.age
rename from secrets/shared/git-send-email.age
rename to secrets/git-send-email.age
M secrets/shared/irc-pw.agesecrets/irc-pw.age
1
2
3
diff --git a/secrets/shared/irc-pw.age b/secrets/irc-pw.age
rename from secrets/shared/irc-pw.age
rename to secrets/irc-pw.age
M secrets/shared/llm.agesecrets/llm.age
1
2
3
diff --git a/secrets/shared/llm.age b/secrets/llm.age
rename from secrets/shared/llm.age
rename to secrets/llm.age
M secrets/shared/spectre-pw.agesecrets/spectre-pw.age
1
2
3
diff --git a/secrets/shared/spectre-pw.age b/secrets/spectre-pw.age
rename from secrets/shared/spectre-pw.age
rename to secrets/spectre-pw.age
M secrets/shared/spotify.agesecrets/spotify.age
1
2
3
diff --git a/secrets/shared/spotify.age b/secrets/spotify.age
rename from secrets/shared/spotify.age
rename to secrets/spotify.age
M secrets/shared/ssh-config.agesecrets/ssh-config.age
1
2
3
diff --git a/secrets/shared/ssh-config.age b/secrets/ssh-config.age
rename from secrets/shared/ssh-config.age
rename to secrets/ssh-config.age