Skip to content

Commit 7d3e605

Browse files
committed
feat(nixcloud): add homebox
1 parent 616696a commit 7d3e605

File tree

4 files changed

+57
-5
lines changed

4 files changed

+57
-5
lines changed

hosts/server/nixcloud/default.nix

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
{
33
imports = [
44
"${modulesPath}/virtualisation/proxmox-lxc.nix"
5+
./homebox.nix
56
./immich.nix
67
./nextcloud.nix
78
];

hosts/server/nixcloud/homebox.nix

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
{ config, lib, ... }:
2+
{
3+
sops.secrets.HOMEBOX_ENV = {
4+
owner = config.users.users.homebox.name;
5+
inherit (config.users.users.homebox) group;
6+
};
7+
8+
services = rec {
9+
homebox = {
10+
enable = true;
11+
settings = {
12+
HBOX_MODE = "production";
13+
14+
HBOX_WEB_HOST = "0.0.0.0";
15+
HBOX_WEB_PORT = "7745";
16+
17+
HBOX_DATABASE_TYPE = "postgres";
18+
HBOX_DATABASE_HOST = "nixio";
19+
HBOX_DATABASE_PORT = "5432";
20+
HBOX_DATABASE_USERNAME = "homebox";
21+
HBOX_DATABASE_DATABASE = "homebox";
22+
};
23+
};
24+
25+
caddy.virtualHosts."photos".extraConfig = ''
26+
reverse_proxy http://${homebox.settings.HBOX_WEB_HOST}:${toString homebox.settings.HBOX_WEB_PORT}
27+
'';
28+
29+
postgresql = {
30+
ensureDatabases = [ homebox.settings.HBOX_DATABASE_DATABASE ];
31+
ensureUsers = [
32+
{
33+
name = homebox.settings.HBOX_DATABASE_USERNAME;
34+
ensureDBOwnership = true;
35+
}
36+
];
37+
};
38+
39+
};
40+
41+
systemd.services = {
42+
postgresql.postStart =
43+
lib.mine.mkPostgresRolePass config.services.homebox.settings.HBOX_DATABASE_DATABASE
44+
config.sops.secrets."POSTGRES/HOMEBOX_PASSWORD".path;
45+
46+
homebox.serviceConfig.EnvironmentFile = config.sops.secrets.HOMEBOX_ENV.path;
47+
};
48+
}

hosts/server/nixcloud/secrets.yaml

+5-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@ SSH_PRIVATE_KEY: ENC[AES256_GCM,data:RHiQV12pn/5iSU+bUBALRqq51T6ubUABFMSPT/9v44I
22
POSTGRES:
33
NEXTCLOUD_PASSWORD: ENC[AES256_GCM,data:TYoCOI+T7WeNFSM6DXOlTL3IITWWqc3RzmUR7eJHrMPAwcVTRciyhyruDLI4HKpd,iv:6dvDcIPindlWhVYcl3u2Ld5Oj3+3UcZ+ALfzs4m5RB4=,tag:mibNvM4T7Sy6UZB/AsI7QQ==,type:str]
44
IMMICH_PASSWORD: ENC[AES256_GCM,data:kW0vU1JtnJmd0ATWcUVuCMY4Ct/rhkk4WNldE6ZcrGYP7hXDWwumyeSbwPHHs+1s,iv:MooOWP25bgq7gQvJy+Kz6BxBQfeUsAqHbM80/FECKDw=,tag:7i5xxTyB52Z/n5FsW4oPGA==,type:str]
5+
HBOX_PASSWORD: ENC[AES256_GCM,data:Mk7flhaxsrqb1MguutKn0Sli+qbbi7sBL/8IE4NG0CNleFPCqhxPdkxT3uXn+asb,iv:myqMWL30s4Bo8uluajf9duDFwtuIdDkDnWOKHxZ2POI=,tag:8R3V7InjCspP5GSfub6k0w==,type:str]
56
NEXTCLOUD:
67
admin-password: ENC[AES256_GCM,data:klTk4gwC0EIYm6Dajej0uwlPkBXTWeCQS6M0bG5GwVCaZnzK9DlIKl7dyYZ5U2kq,iv:vYVSvLVAUdSpVM9/GaIamIvRcuFDl1h1CZBeRxOiXr8=,tag:GKHmGNr4KbKvHvLUfSp/8w==,type:str]
78
S3FS_AUTH: ENC[AES256_GCM,data:anEW/fwkwJY+l5XTdPBNn0CGSneRvh9jTB5QpOxLt8CJXwN4NnWXUUT7wEHgiNhsN6lt1+IwsQXvxZv8Ow==,iv:0/4NpkzUhc1a1QQ2LYu2Ei+pmufFVjaVcN8EpLeihm0=,tag:xDSvhyCjSLyZ7aeXihsDZQ==,type:str]
89
IMMICH:
910
ENV: ENC[AES256_GCM,data:m0VcEipCHGSdRX3vQJh2GLLEjaR3TyptLcJdr1SUkbp1WdZNwcz7Mbo/Zi0H0GKigquOOOPvsVWmc4Ym,iv:AP+XLrhTm0pAXzlMG3B4QFB4eGNdr4zUnyjG9We3l3A=,tag:29ny86uGv8GS9U2JvSMXHw==,type:str]
11+
HOMEBOX_ENV: ENC[AES256_GCM,data:vjaTv966APkC8M1C9ULNPKN6lg6LUSVX0OPCSTesPj2k9FXr5du/YVBMRtu1AfUsyTsUAFwXlca3IeeU27+jRxwkrTruEei/,iv:S7mmHTX0z9iLR1z+clP8KVSXafYMdOK8ilAUQglrTPQ=,tag:cx5HLONh9epK2M0idwW9Qg==,type:str]
1012
sops:
1113
kms: []
1214
gcp_kms: []
@@ -40,8 +42,8 @@ sops:
4042
QUFwenpVL1FPNThLa1ROTWVobksvZjQKbTjQj/SZCdngr+f6OtAEIyJA4oCYcQzC
4143
phJhd7EZdH4kbzpdKXe7RRO+QUhjZfdHHHLOcV4SL20/aVQvU93Dcg==
4244
-----END AGE ENCRYPTED FILE-----
43-
lastmodified: "2025-01-18T09:21:39Z"
44-
mac: ENC[AES256_GCM,data:P5o98F9JeKSxXq0mbcVsYu9GHeGiVUlTcPclc4EB/wNZHj3lB0sZ2ZLQ5dY2ocEIAQo7c2kjNPFJWwaCIZlNCulgmU1bJ82W1/RXAzCgMmUFbME3c5jCYw3XGVjNvXgfa2DV9dM/DJLheeNLMXuZSH+2sM2tLEOQLgCZ/7lc77A=,iv:492kbDyg+I0+7QFRvf9w8+bf3x5CJt+iB8cFAcu79ms=,tag:KO+zeYJyuuF92cdJCIMDGQ==,type:str]
45+
lastmodified: "2025-03-19T04:10:12Z"
46+
mac: ENC[AES256_GCM,data:GKVo7u39qP4B7jagEacAul8k1fisxjPo1RurhbKoSnNMLQhRI3r+jrZ4ugHQxB0qjJsTirTmvpcsLTTCSBdZnYCEo66ZdiX1YTDC9aAJz1uUVoSt+Io/uNJxhziQApwFk5MnUYeNXK1RK8VKBorzha4mIKZMVawWSQ0DCc9tWC8=,iv:J9lta1efZDQ0su36NEu3zBcSLgRG9yJ1/9SG765H/u0=,tag:ryEhR+kPATEPEbcfO6bc3A==,type:str]
4547
pgp: []
4648
unencrypted_suffix: _unencrypted
47-
version: 3.9.2
49+
version: 3.9.4

hosts/server/nixio/secrets.yaml

+3-2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ POSTGRES:
1010
ATTIC_PASSWORD: ENC[AES256_GCM,data:Clmy7H4L6GUWCYoh1CCOp7aVS/K5x0oWPG7yE+oBNYx37rO3Bj1ye2gU5RSjxztQ,iv:OPOWRbDR3zYqz5GKn9864QnGVaxJQpssT9UgjswI/uM=,tag:Zxf7mwsOvClN4I94VeFedQ==,type:str]
1111
NEXTCLOUD_PASSWORD: ENC[AES256_GCM,data:9QLlTdMi/WF8S9gux8ebLN01PnpFj2VPnDez54k8q16pvd3qBua+b+rMgnTxJW/v,iv:jsj29kffypfmw5oN6X+HbbJ+UVnCv7QdtEteVv487hY=,tag:Rpj4Rjs4jVncytD6F0zXbg==,type:str]
1212
IMMICH_PASSWORD: ENC[AES256_GCM,data:+16fgOHDp1kc7Ly2BK7VZLNRAoAeWXQyKGnKuix/YGcbSeCHeVlkQlpxGu40L6zN,iv:LaZA7xkVCy/5xUOPXTTwi1yjHC/28c7488x4PpRg8hc=,tag:u7tHoAUa0lg2w2knvKJ/Sw==,type:str]
13+
HOMEBOX_PASSWORD: ENC[AES256_GCM,data:sReDtwSRc/aMTKLodGRIsxQ6BF99EBkk+/pxj9UO8lWvQcWRyNcg2uIerBNPukTI,iv:7OcSpsfvgfQd9/b2AAB+ovXAKg5dCC4One1p5OZmvoY=,tag:ukDY5/1jRjMRQy8gng2z1g==,type:str]
1314
COUCHDB_SETTINGS: ENC[AES256_GCM,data:6OKCakWsWV6osV08PvLqF+1dclBp+P8O9XsdPR8soervaXjsXn6kKp0mE72dTruJFJdfEaDP3+riXWcuJCdytR+D,iv:mIUJlPjYBfkwJxKVWDGfIzhcaFhiftrKc2VQfiTKFEg=,tag:rgSv6TRxYqEISWL96Jml4Q==,type:str]
1415
sops:
1516
kms: []
@@ -44,8 +45,8 @@ sops:
4445
WnplVitXTXBIcFFuYXNuL3lneFM2QXcKgpEM40wVTHFpi5DKyZt15gioxZPPmTvk
4546
uYQCCD9UsXJt2/X0/ph+5Tdd9qACOvtCm2yfwpwW3w/TTxoT+Z2ehQ==
4647
-----END AGE ENCRYPTED FILE-----
47-
lastmodified: "2025-02-18T06:08:01Z"
48-
mac: ENC[AES256_GCM,data:76kp6hUM3oEXrXWMlM8y8nwhBvwZ6O0l579qhwWK7+oc+CyRr2xqM4i1fPWRJd+BGK2c8NNgU/1k8L8j6Q6TgUl1K0hfCH7bx0I2JzNz9NJWHOcqv/XsTihgLC2AtKkRm6OqXyn+tcClVEYcli2bWWh8Dpd8JywxtqXgl+dCYQY=,iv:XuhM+yTZ+nwEtMpNHl3h+K6WXYlvaTkS+uFpEn8B9Zw=,tag:BPOVuIXX1Yb4MdMI5YdW5w==,type:str]
48+
lastmodified: "2025-03-19T04:06:43Z"
49+
mac: ENC[AES256_GCM,data:msX/KP8vX67nUIIxCXS9v0VbgD+54Y1w2ODY7wAKTBMV2lhWYgE92Y/s+q+S07iJlDh7X7Z9WE2Wi28SGpHqwb6HlH8yigfM37SzYdXWJncTKLC4LPz9+vAmKpJg0nuN+TTIh+nUFsXJwnbd0xLu1PbciiTRv1zkduxgtqxq6tQ=,iv:sTSJIBZ+4ya89kevh1z8toCwHL8h5grpFiNtJNgFrAw=,tag:VKOmVF4/4/q/lJbIzzlssg==,type:str]
4950
pgp: []
5051
unencrypted_suffix: _unencrypted
5152
version: 3.9.4

0 commit comments

Comments
 (0)