Skip to content

Commit efacfc4

Browse files
feat: backup
1 parent 30467c6 commit efacfc4

File tree

5 files changed

+55
-3
lines changed

5 files changed

+55
-3
lines changed

cloud/backup.tf

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ module "backup" {
22
for_each = {
33
git = "tom.git"
44
minecraft = "tom.25565"
5+
openclaw = "tom.openclaw"
56
}
67

78
source = "./modules/backup"
@@ -32,3 +33,15 @@ output "backup_minecraft_secret_access_key" {
3233
value = module.backup["minecraft"].secret_access_key
3334
sensitive = true
3435
}
36+
37+
# https://opentofu.org/docs/language/values/outputs/
38+
output "backup_openclaw_access_key_id" {
39+
value = module.backup["openclaw"].access_key_id
40+
sensitive = true
41+
}
42+
43+
# https://opentofu.org/docs/language/values/outputs/
44+
output "backup_openclaw_secret_access_key" {
45+
value = module.backup["openclaw"].secret_access_key
46+
sensitive = true
47+
}

machines/tom/configuration.nix

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,12 @@
227227
group = "minecraft";
228228
sopsFile = ./services/restic/vault.minecraft.env;
229229
};
230+
"aws/iam/openclaw" = {
231+
format = "dotenv";
232+
owner = "openclaw";
233+
group = "openclaw";
234+
sopsFile = ./services/restic/vault.openclaw.env;
235+
};
230236
"github/oauth" = {
231237
owner = config.users.users.default.name;
232238
group = "wheel";
@@ -305,6 +311,10 @@
305311
owner = "minecraft";
306312
group = "minecraft";
307313
};
314+
"restic/openclaw" = {
315+
owner = "openclaw";
316+
group = "openclaw";
317+
};
308318
"slack/snaek" = {
309319
format = "dotenv";
310320
owner = "snaek";

machines/tom/secrets/vault.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ github:
2424
restic:
2525
git: ENC[AES256_GCM,data:HiSNgy2BByydX5OpVCno0jIE2tt+XsOc/SqXvmpf2th1OAFauvF+FOrGywM=,iv:DgBnpVXapP39J4eRzy4/DRWHfOc0dk51pMi32XWHlrQ=,tag:7T2kqGV/l6mKRNna7S9bJQ==,type:str]
2626
minecraft: ENC[AES256_GCM,data:tk4jvTaCTGDK1RGa/uW6RWyjtUKl,iv:EJLhXDhGBnnWmDaKuhDPl4/daoVnnAN8v0mIalS1ODw=,tag:saefTwBI1pDIZEZ10t/ePw==,type:str]
27+
openclaw: ENC[AES256_GCM,data:u1XfiniFMqWS+x7xh8/NbPKjWLk1MbOZIHv3BtftL3zcwV0eezfbraLOBl8=,iv:xJfIl1T6L+xmVLF5cEYq2e58DMLUQGd9OoCFwpffbIo=,tag:Emx/SllzPoes7WQpNE6Vug==,type:str]
2728
tailscale:
2829
auth: ENC[AES256_GCM,data:6LWj2Cx8DLXpxPH0MnttV0exwkQe7bsxB84aKMGUupws0GAsL0YMFC/yF4ffz5u9109mcMsMY3HatzLpuw4=,iv:hFW8p2fZbprUS1TIl5VR8nwfwey7zwkKN9YPKADzw1s=,tag:DweIRvZNHOUXdoKJr1CDtg==,type:str]
2930
tom:
@@ -55,7 +56,7 @@ sops:
5556
ZkxZVFpHMXpPaUhTTFRQZExXZXlrckkKgF4x8xxm1WeRHWmMItTkWUelYnHd0d0v
5657
rXpwaQ/l79BzAsGy3YmENr/w0/pOTYXTNXSR1dam46qnJuFflqxhhg==
5758
-----END AGE ENCRYPTED FILE-----
58-
lastmodified: "2026-03-07T21:27:42Z"
59-
mac: ENC[AES256_GCM,data:ZANJKMW8EuRdi3dywpodG4i/9b66w/iYMjcF0kzLcB5Qvk3669zrlH3G55WaeUTJjd7MA7l5CB4aM8jH5KvIpYA5W7wDApAE3DC8HTXVXPWZdrr1ldZXVzg08lYnucIWXzfJLiQ2qmX7oo0uzP2UTZ6H60Nj5WUkEmNqDfxywo0=,iv:uiF9sjwpatspbhC7tMD3mB3wM+ElbqPtD06V09uhAgc=,tag:s7L8sKAVIK1JZMkFx5+5VA==,type:str]
59+
lastmodified: "2026-04-06T01:13:42Z"
60+
mac: ENC[AES256_GCM,data:ydWWt/2RdvgYY76euU18JO1rgdnl3BO5NVBFHvcEz3lJYbLewi4ztG8Yor5IEFX3l/GpUkOugsfeacFO7afoJGm1S4P3Z6Qbb+WTr7zZKxCbuEKhrNCuumSQy+VwK0HHY6+pSw5JEG8bfvS1zw22S3jieUn9K2jQAgdC+J5LxwE=,iv:p+nbK7xRE4SsV5QPeZmtz4kUOXjNw2s/r95a9L9joMA=,tag:ImSAUH31OdavSnbbL4ihOQ==,type:str]
6061
unencrypted_suffix: _unencrypted
61-
version: 3.12.1
62+
version: 3.12.2

machines/tom/services/restic/default.nix

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,25 @@
4242
Persistent = true;
4343
};
4444
};
45+
openclaw = {
46+
initialize = true;
47+
user = "openclaw";
48+
environmentFile = "/run/secrets/aws/iam/openclaw";
49+
passwordFile = "/run/secrets/restic/openclaw";
50+
repository = "s3:s3.us-east-1.amazonaws.com/tom.openclaw";
51+
paths = [
52+
"/var/lib/openclaw"
53+
];
54+
pruneOpts = [
55+
"--keep-daily 5"
56+
"--keep-weekly 6"
57+
"--keep-monthly 12"
58+
"--keep-yearly 60"
59+
];
60+
timerConfig = {
61+
OnCalendar = "daily";
62+
Persistent = true;
63+
};
64+
};
4565
};
4666
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
AWS_ACCESS_KEY_ID=ENC[AES256_GCM,data:I2BZZad6XA8bykwxyM9yRkRY0Qs=,iv:KqDHlW/6RCFrvB6SqLvoJ4oEjTskvKmkZwAgbBHvddY=,tag:UwlcreLfyGttotNal0aDUQ==,type:str]
2+
AWS_SECRET_ACCESS_KEY=ENC[AES256_GCM,data:rmWvrotMPHmtbtxccsIGTNy1ZXzM8qMaC1W8Yr1rHjtJWLcUBcIY4w==,iv:yq3RmdClHDSTTrkRHuk3tju0OINsoQEcLGPYiBUCvoE=,tag:C7tXZC6Ti06VzlUQhDFoqA==,type:str]
3+
sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBva2VGVVNyTkladTNHc2ox\nc1ZsU3NLSzc2Rkt0dGt4T0pJQ3BmUFhqUmw4ClMwa3Y5OGxGUWw5ckFrakY1Q2Fi\naUVjZ2Jmdm1XeXJYZTNTcEE3WmcxaHcKLS0tIDZFNUg3SGxENStBVk1RdVJFZWtr\nY25CS1pNUG5tNEU0S2JlKzhSS25BVk0KNchaSe7PfTcwt3D6EjKDauN+u60YIK9O\nmWPWATZLYI8f9mk9yDSLUlL00qdT84elz8qdAF8oFTMT3jY+E4vSqw==\n-----END AGE ENCRYPTED FILE-----\n
4+
sops_age__list_0__map_recipient=age1dujf55uzev2nnpq6c2drn0e8pmpxay22qqfsavwaxqakwn9se5hsputgx4
5+
sops_lastmodified=2026-04-06T01:06:32Z
6+
sops_mac=ENC[AES256_GCM,data:+5BrGqcXNi/iOSU8d3T59sACwss1KBNZtp5u8XjuKjJCLcUtNaIAHjg2bXCaKmHrTE6qqkgi1sXLnr2on+fbj9G9ZNedOfAQlDfJOuaqwkvmtMe6K2bT6YP/9upvJKor1dt/GtS9YV2sQmYKSGNB8dyMuoPjwrscn+PykpE1P7I=,iv:D5ah3mIkOB7Us0s9EwY+ndcQe4/ygn9rNtWncZYLOco=,tag:8qBzCt0AoUIA9lgBIN1Gog==,type:str]
7+
sops_unencrypted_suffix=_unencrypted
8+
sops_version=3.12.2

0 commit comments

Comments
 (0)