Skip to content

Commit 695bb0a

Browse files
feat: backup
1 parent 30467c6 commit 695bb0a

File tree

4 files changed

+51
-0
lines changed

4 files changed

+51
-0
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/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)