Skip to content

Commit b1ee1e4

Browse files
committed
feat(hosts/taygeta/factorio-server): init
1 parent 8fc4bf1 commit b1ee1e4

File tree

3 files changed

+52
-7
lines changed

3 files changed

+52
-7
lines changed

hosts/taygeta/secrets.yaml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
minecraft-secrets: ENC[AES256_GCM,data:hLwPnL+7vK5jQJGYe4ngBrU6XPeD9IzLPrGlKde7KLUQDh3zl6ewgZc6cqTfRFGxM0bs8JQKy98TqzbJ5FyhOIw39+D2znnldbPGb5TbKu5GdM63eJwM68TiTtmHhQKhaebVOz7QjsLXv4PuitSnqs4c38KZHxOVXmkqORjKKw==,iv:A7fTWZdkQvGEtATzB6bfOVFRU8gISw9NF3ILqt1WlFE=,tag:CLHzt/4wedw2qZvtFPTv/g==,type:str]
2+
factorio-server-password: ENC[AES256_GCM,data:PlrQnU9iQOEh,iv:s/02HaXC9VifwRlmSV6TV6W+bRe6C+O3kgT4zvbNrUY=,tag:gA7gjPXFxuDVafj+Jwq0Og==,type:str]
23
sops:
3-
kms: []
4-
gcp_kms: []
5-
azure_kv: []
6-
hc_vault: []
74
age:
85
- recipient: age1szxq4pz3wuxrs5ynqt3gys4wxslg27lr67smsqvg5guhap800szs3y73vd
96
enc: |
@@ -14,8 +11,8 @@ sops:
1411
ZmZuSTJKeTU1Vzdzcnp4b1NpQnRnYlkKxzNqnDG55P1j3ZwQCpoLzYmIMMLlgAfO
1512
pw//QqqFD4Y1tO/sUCHvdES1AJK/itAkOuuEdJ1YA6H4VN5NmKgrDg==
1613
-----END AGE ENCRYPTED FILE-----
17-
lastmodified: "2024-12-30T18:53:13Z"
18-
mac: ENC[AES256_GCM,data:Pm+XocUV/WInEabQxPoHUbNWxDKvYnrQwO3lS37A3ncdCevBmT1F/r18Se7pPFLU2FNwmTKbSS8JyCJoLUskG/prbzm7zqZfwy3t4dI0Mjn52VzD+6HJo/KcG34av0l5tIpLVhO/w/OiWtHmYvY6quZeVONlfDYHN646bQ5kzgY=,iv:FInXB7Nu2jintW19T/HJTTM/rE1shTlhFES1ACApvS0=,tag:5DE44rPMQ6htEqMowL7U8A==,type:str]
14+
lastmodified: "2026-01-01T15:55:59Z"
15+
mac: ENC[AES256_GCM,data:brA1FfNBm3UkxxU4EnB0c4XKvoaGFdWQhwrqfbZSVVVMTpgv6eVKsNeoxajiMrykAiXX+4QZElj/zPrP04ax93SykBITuwI2L/+C+qLYdF/AaFokZMgfOgSbLRsWPUN1AvRfG+bRgdL4sWBuvo5zgMf7zwlDFW9IDY7L/V+R1c4=,iv:j9tLgz7jS+R/2RL28PWDKvILFfXYc0UFBZBhTlv57Qk=,tag:p7s5nMbKYhPPlPjC98vw1g==,type:str]
1916
pgp:
2017
- created_at: "2024-12-30T18:52:52Z"
2118
enc: |-
@@ -36,4 +33,4 @@ sops:
3633
-----END PGP MESSAGE-----
3734
fp: 7088C7421873E0DB97FF17C2245CAB70B4C225E9
3835
unencrypted_suffix: _unencrypted
39-
version: 3.9.2
36+
version: 3.11.0

hosts/taygeta/services/default.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@
22
imports = [
33
../../common/optional/mysql.nix
44
./minecraft
5+
./factorio.nix
56
];
67
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
{config, lib, ...}: let
2+
stateDir = "/var/lib/${config.services.factorio.stateDirName}";
3+
in {
4+
services.factorio = {
5+
enable = true;
6+
bind = "172.18.0.42";
7+
loadLatestSave = true;
8+
openFirewall = true;
9+
extraSettings = {
10+
require_user_verification = false;
11+
non_blocking_saving = true;
12+
};
13+
extraSettingsFile = config.sops.templates.factorio-extra-settings.path;
14+
};
15+
sops = {
16+
secrets.factorio-server-password = {
17+
owner = "factorio";
18+
sopsFile = ../secrets.yaml;
19+
};
20+
templates.factorio-extra-settings.content = builtins.toJSON {
21+
game_password = config.sops.placeholder.factorio-server-password;
22+
};
23+
};
24+
25+
# Disable DynamicUser
26+
systemd.services.factorio.serviceConfig = {
27+
DynamicUser = lib.mkForce false;
28+
User = "factorio";
29+
Group = "factorio";
30+
};
31+
users = {
32+
users.factorio = {
33+
home = stateDir;
34+
group = "factorio";
35+
isSystemUser = true;
36+
};
37+
groups.factorio = {};
38+
};
39+
environment.persistence = {
40+
"/persist".directories = [{
41+
directory = stateDir;
42+
user = "factorio";
43+
group = "factorio";
44+
mode = "0700";
45+
}];
46+
};
47+
}

0 commit comments

Comments
 (0)