Skip to content

Commit 8e16f56

Browse files
tom: separate service permissions to prefer shared access ports
1 parent 9c2b4a4 commit 8e16f56

File tree

4 files changed

+97
-13
lines changed

4 files changed

+97
-13
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ versioning is done in a continuous fashion without worries of breaking changes.
66

77
## patches
88

9+
- `tom`: separate service permissions to prefer shared access ports 2026-02-05
910
- `claude`: avoid resetting memories of past conversations on start 2026-02-05
1011
- `blog`: run pages and app immediate after restarted server is set 2026-02-02
1112
- `quintus`: host a calendar service with the kind ordering machine 2026-01-31

machines/tom/configuration.nix

Lines changed: 47 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -198,21 +198,49 @@
198198
};
199199
"aws/iam/minecraft" = {
200200
format = "dotenv";
201+
owner = "minecraft";
202+
group = "minecraft";
201203
sopsFile = ./services/minecraft-server/vault.env;
202204
};
203205
"github/oauth" = {
204206
owner = config.users.users.default.name;
205207
group = "wheel";
206208
};
207-
"github/runners/blog" = { };
208-
"github/runners/coffee" = { };
209-
"github/runners/dotfiles" = { };
210-
"github/runners/etime" = { };
211-
"github/runners/quintus" = { };
212-
"github/runners/slacks" = { };
213-
"restic/minecraft" = { };
214-
"tailscale/auth" = { };
209+
"github/runners/blog" = {
210+
owner = "blog";
211+
group = "blog";
212+
};
213+
"github/runners/coffee" = {
214+
owner = "coffee";
215+
group = "coffee";
216+
};
217+
"github/runners/dotfiles" = {
218+
owner = "dotfiles";
219+
group = "dotfiles";
220+
};
221+
"github/runners/etime" = {
222+
owner = "etime";
223+
group = "etime";
224+
};
225+
"github/runners/quintus" = {
226+
owner = "quintus";
227+
group = "quintus";
228+
};
229+
"github/runners/slacks" = {
230+
owner = "slacks";
231+
group = "slacks";
232+
};
233+
"restic/minecraft" = {
234+
owner = "minecraft";
235+
group = "minecraft";
236+
};
237+
"tailscale/auth" = {
238+
owner = "root";
239+
group = "root";
240+
};
215241
"tom/password" = {
242+
owner = "root";
243+
group = "root";
216244
neededForUsers = true;
217245
};
218246
"tom/sops/private" = {
@@ -223,6 +251,7 @@
223251
"tom/ssh/public" = {
224252
owner = config.users.users.default.name;
225253
group = "wheel";
254+
mode = "0644";
226255
path = "${config.users.users.default.home}/.ssh/id_ed25519.pub";
227256
};
228257
"tom/ssh/private" = {
@@ -231,15 +260,25 @@
231260
path = "${config.users.users.default.home}/.ssh/id_ed25519";
232261
};
233262
"tom/ssh/host/ed25519/public" = {
263+
owner = "root";
264+
group = "root";
265+
mode = "0644";
234266
path = "/etc/ssh/ssh_host_ed25519_key.pub";
235267
};
236268
"tom/ssh/host/ed25519/private" = {
269+
owner = "root";
270+
group = "root";
237271
path = "/etc/ssh/ssh_host_ed25519_key";
238272
};
239273
"tom/ssh/host/rsa/public" = {
274+
owner = "root";
275+
group = "root";
276+
mode = "0644";
240277
path = "/etc/ssh/ssh_host_rsa_key.pub";
241278
};
242279
"tom/ssh/host/rsa/private" = {
280+
owner = "root";
281+
group = "root";
243282
path = "/etc/ssh/ssh_host_rsa_key";
244283
};
245284
"tom/wireguard/private" = {

machines/tom/services/github-runners/default.nix

Lines changed: 48 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,65 @@
11
# https://docs.github.com/actions
22
{ pkgs, ... }:
33
{
4+
users = {
5+
users = {
6+
blog = {
7+
isSystemUser = true;
8+
group = "blog";
9+
};
10+
coffee = {
11+
isSystemUser = true;
12+
group = "coffee";
13+
};
14+
dotfiles = {
15+
isSystemUser = true;
16+
group = "dotfiles";
17+
};
18+
etime = {
19+
isSystemUser = true;
20+
group = "etime";
21+
};
22+
quintus = {
23+
isSystemUser = true;
24+
group = "quintus";
25+
};
26+
slacks = {
27+
isSystemUser = true;
28+
group = "slacks";
29+
};
30+
};
31+
groups = {
32+
blog = { };
33+
coffee = { };
34+
dotfiles = { };
35+
etime = { };
36+
quintus = { };
37+
slacks = { };
38+
};
39+
};
440
services.github-runners = {
541
blog = {
642
enable = true;
743
ephemeral = true;
844
extraPackages = [
945
pkgs.gh # https://github.com/cli/cli
1046
];
11-
group = "wheel";
47+
group = "blog";
1248
name = "tom";
1349
replace = true;
1450
tokenFile = "/run/secrets/github/runners/blog";
1551
url = "https://github.com/zimeg/blog";
16-
user = "root";
52+
user = "blog";
1753
};
1854
coffee = {
1955
enable = true;
2056
ephemeral = true;
57+
group = "coffee";
2158
name = "tom";
2259
replace = true;
2360
tokenFile = "/run/secrets/github/runners/coffee";
2461
url = "https://github.com/maintainersdotcoffee/shop";
62+
user = "coffee";
2563
};
2664
dotfiles = {
2765
enable = true;
@@ -32,21 +70,25 @@
3270
extraPackages = [
3371
pkgs.fastfetch # https://github.com/fastfetch-cli/fastfetch
3472
];
73+
group = "dotfiles";
3574
name = "tom";
3675
replace = true;
3776
tokenFile = "/run/secrets/github/runners/dotfiles";
3877
url = "https://github.com/zimeg/.DOTFILES";
78+
user = "dotfiles";
3979
};
4080
etime = {
4181
enable = true;
4282
ephemeral = true;
4383
extraPackages = [
4484
pkgs.time
4585
];
86+
group = "etime";
4687
name = "tom";
4788
replace = true;
4889
tokenFile = "/run/secrets/github/runners/etime";
4990
url = "https://github.com/zimeg/emporia-time";
91+
user = "etime";
5092
};
5193
slacks = {
5294
enable = true;
@@ -57,21 +99,22 @@
5799
pkgs.rsync # https://github.com/rsyncproject/rsync
58100
pkgs.which # https://git.savannah.gnu.org/cgit/which.git
59101
];
60-
group = "wheel";
102+
group = "slacks";
61103
name = "tom";
62104
replace = true;
63105
tokenFile = "/run/secrets/github/runners/slacks";
64106
url = "https://github.com/zimeg/slack-sandbox";
65-
user = "root";
107+
user = "slacks";
66108
};
67109
quintus = {
68110
enable = true;
69111
ephemeral = true;
112+
group = "quintus";
70113
name = "tom";
71114
replace = true;
72115
tokenFile = "/run/secrets/github/runners/quintus";
73116
url = "https://github.com/zimeg/quintus";
74-
user = "root";
117+
user = "quintus";
75118
};
76119
};
77120
}

machines/tom/services/restic/default.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
services.restic.backups = {
44
minecraft = {
55
initialize = true;
6+
user = "minecraft";
67
environmentFile = "/run/secrets/aws/iam/minecraft";
78
passwordFile = "/run/secrets/restic/minecraft";
89
repository = "s3:s3.us-east-1.amazonaws.com/tom.25565";

0 commit comments

Comments
 (0)