diff options
Diffstat (limited to 'hosts/vidhar/firefly-iii')
-rw-r--r-- | hosts/vidhar/firefly-iii/app_key | 24 | ||||
-rw-r--r-- | hosts/vidhar/firefly-iii/default.nix | 64 |
2 files changed, 88 insertions, 0 deletions
diff --git a/hosts/vidhar/firefly-iii/app_key b/hosts/vidhar/firefly-iii/app_key new file mode 100644 index 00000000..b318b9c1 --- /dev/null +++ b/hosts/vidhar/firefly-iii/app_key | |||
@@ -0,0 +1,24 @@ | |||
1 | { | ||
2 | "data": "ENC[AES256_GCM,data:Z/u19vdnY5B76AaQCZOaXGRHTXiAaZ3OlnpEwehK40De6EoTzvs8BzC4/a6KVam5JDjcog==,iv:ZlCNcjQV1brRllTVdfFjhOcDe7sjHIRVbjs/dNT/w0o=,tag:bAtBraAy+i02pyVuhWoXBg==,type:str]", | ||
3 | "sops": { | ||
4 | "kms": null, | ||
5 | "gcp_kms": null, | ||
6 | "azure_kv": null, | ||
7 | "hc_vault": null, | ||
8 | "age": [ | ||
9 | { | ||
10 | "recipient": "age1rmmhetcmllq0ahl5qznlr0eya2zdxwl9h6y5wnl97d2wtyx5t99sm2u866", | ||
11 | "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIZEZVVTZLU2VPQmM2Tjk3\nVEUvVitWRjdGRnE2Vm9FVjFhTk1IZ0g1bjJjCjd5dnZNd1VrTVc4QktRM0Z2aFdp\nVlRqLy9BMDV4VGI1SjdmWTFFVFZONG8KLS0tIHRYMGlpalZZUEJFU3c0Z0hXK1lQ\ndnFndWJmTTFjWVAzdkhwN0x6eHVHVmsKVls/ERf4ZfnTqryB6yt5OcjU42RlgAoD\nmMZzuEbhuGBApu2rEKlo4v/AKST6OVIlsiYr0na2W4vlmBOEs8OB1g==\n-----END AGE ENCRYPTED FILE-----\n" | ||
12 | }, | ||
13 | { | ||
14 | "recipient": "age1qffdqvy9arld9zd5a5cylt0n98xhcns5shxhrhwjq5g4qa844ejselaa4l", | ||
15 | "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCcVVJZWNkMzlYc1lOMzlu\nai82RjhkZm5UYVplV0NNTjZlWm8zcmpCaW1BCnhMaGV5NFNkUUw5ODM5OVZZMUxO\nUUpVTGhtZDM4VzF3WXhTMFpHLytKUzAKLS0tIEZCSVFIODRhRDZuMzFFbSt1YlBI\ndldaZEd6dTBvU2huREhoQ3VNQ2NNdWMKyGuG1tzxIas5G6nlWRkgbxHTOGQ8cLx6\nOw83t98BBfWSZVTuUfHAemn5fPsjRUhsZvEuH70NvQXDRxSvV2nvww==\n-----END AGE ENCRYPTED FILE-----\n" | ||
16 | } | ||
17 | ], | ||
18 | "lastmodified": "2025-02-18T18:05:57Z", | ||
19 | "mac": "ENC[AES256_GCM,data:7rl6npBWEFeS+IZMLb2+jLcs1d5gSzZyGkCDcrpAbxAB7doAp4vh5DJUEFnAUMtN/iHlwjX71pRNjBHLlYqCs344aaGkcEVMDO/C2m8efuPq+qIi+z372PlM+ekVDXquthvc8fcPhsCWHyso1LTpDjMRqf6kizk0wEtwJj5kOWA=,iv:OEaeQUJ2f0XZidWkttC8Y+WAkDyNkViTNiiDgy5QKr8=,tag:ERsBlT0T3iZvoEWcRhTpPA==,type:str]", | ||
20 | "pgp": null, | ||
21 | "unencrypted_suffix": "_unencrypted", | ||
22 | "version": "3.9.4" | ||
23 | } | ||
24 | } \ No newline at end of file | ||
diff --git a/hosts/vidhar/firefly-iii/default.nix b/hosts/vidhar/firefly-iii/default.nix new file mode 100644 index 00000000..026d4643 --- /dev/null +++ b/hosts/vidhar/firefly-iii/default.nix | |||
@@ -0,0 +1,64 @@ | |||
1 | { config, ... }: | ||
2 | { | ||
3 | config = { | ||
4 | services.postgresql = { | ||
5 | ensureDatabases = [ "firefly-iii" ]; | ||
6 | ensureUsers = [ | ||
7 | { name = "firefly-iii"; | ||
8 | ensureDBOwnership = true; | ||
9 | } | ||
10 | ]; | ||
11 | }; | ||
12 | |||
13 | services.firefly-iii = { | ||
14 | enable = true; | ||
15 | enableNginx = true; | ||
16 | group = "firefly-iii"; | ||
17 | virtualHost = "firefly.yggdrasil.li"; | ||
18 | settings = { | ||
19 | DB_CONNECTION = "pgsql"; | ||
20 | DB_DATABASE = "firefly-iii"; | ||
21 | APP_KEY_FILE = config.sops.secrets."firefly-iii_app_key".path; | ||
22 | APP_URL = "https://${config.services.firefly-iii.virtualHost}"; | ||
23 | }; | ||
24 | }; | ||
25 | |||
26 | services.nginx = { | ||
27 | commonHttpConfig = '' | ||
28 | map $http_x_forwarded_proto $fastcgi_param_https_variable { | ||
29 | default '''; | ||
30 | https 'on'; | ||
31 | } | ||
32 | ''; | ||
33 | virtualHosts.${config.services.firefly-iii.virtualHost} = { | ||
34 | listen = [ | ||
35 | { addr = "[2a03:4000:52:ada:4:1::]"; port = 9000; } | ||
36 | ]; | ||
37 | extraConfig = '' | ||
38 | set_real_ip_from 2a03:4000:52:ada:4::; | ||
39 | ''; | ||
40 | locations."~ \\.php$" = { | ||
41 | extraConfig = '' | ||
42 | fastcgi_param HTTPS $fastcgi_param_https_variable; | ||
43 | ''; | ||
44 | }; | ||
45 | }; | ||
46 | }; | ||
47 | |||
48 | sops.secrets."firefly-iii_app_key" = { | ||
49 | format = "binary"; | ||
50 | sopsFile = ./app_key; | ||
51 | group = config.services.firefly-iii.group; | ||
52 | mode = "0440"; | ||
53 | restartUnits = [ "firefly-iii-setup.service" "firefly-iii-cron.service" "phpfpm-firefly-iii.service" ]; | ||
54 | }; | ||
55 | |||
56 | users.groups.${config.services.firefly-iii.group} = {}; | ||
57 | |||
58 | systemd.services = { | ||
59 | nginx.serviceConfig.SupplementaryGroups = [ config.services.firefly-iii.group ]; | ||
60 | "firefly-iii-setup".serviceConfig.ReadWritePaths = [ "/run/postgresql" ]; | ||
61 | "firefly-iii-cron".serviceConfig.ReadWritePaths = [ "/run/postgresql" ]; | ||
62 | }; | ||
63 | }; | ||
64 | } | ||