From c0616edd38161b81ec1624efba3f024b120ba4c6 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Tue, 18 Feb 2025 20:43:43 +0100 Subject: firefly-iii --- hosts/vidhar/firefly-iii/app_key | 24 ++++++++++++++ hosts/vidhar/firefly-iii/default.nix | 64 ++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 hosts/vidhar/firefly-iii/app_key create mode 100644 hosts/vidhar/firefly-iii/default.nix (limited to 'hosts/vidhar/firefly-iii') 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 @@ +{ + "data": "ENC[AES256_GCM,data:Z/u19vdnY5B76AaQCZOaXGRHTXiAaZ3OlnpEwehK40De6EoTzvs8BzC4/a6KVam5JDjcog==,iv:ZlCNcjQV1brRllTVdfFjhOcDe7sjHIRVbjs/dNT/w0o=,tag:bAtBraAy+i02pyVuhWoXBg==,type:str]", + "sops": { + "kms": null, + "gcp_kms": null, + "azure_kv": null, + "hc_vault": null, + "age": [ + { + "recipient": "age1rmmhetcmllq0ahl5qznlr0eya2zdxwl9h6y5wnl97d2wtyx5t99sm2u866", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIZEZVVTZLU2VPQmM2Tjk3\nVEUvVitWRjdGRnE2Vm9FVjFhTk1IZ0g1bjJjCjd5dnZNd1VrTVc4QktRM0Z2aFdp\nVlRqLy9BMDV4VGI1SjdmWTFFVFZONG8KLS0tIHRYMGlpalZZUEJFU3c0Z0hXK1lQ\ndnFndWJmTTFjWVAzdkhwN0x6eHVHVmsKVls/ERf4ZfnTqryB6yt5OcjU42RlgAoD\nmMZzuEbhuGBApu2rEKlo4v/AKST6OVIlsiYr0na2W4vlmBOEs8OB1g==\n-----END AGE ENCRYPTED FILE-----\n" + }, + { + "recipient": "age1qffdqvy9arld9zd5a5cylt0n98xhcns5shxhrhwjq5g4qa844ejselaa4l", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCcVVJZWNkMzlYc1lOMzlu\nai82RjhkZm5UYVplV0NNTjZlWm8zcmpCaW1BCnhMaGV5NFNkUUw5ODM5OVZZMUxO\nUUpVTGhtZDM4VzF3WXhTMFpHLytKUzAKLS0tIEZCSVFIODRhRDZuMzFFbSt1YlBI\ndldaZEd6dTBvU2huREhoQ3VNQ2NNdWMKyGuG1tzxIas5G6nlWRkgbxHTOGQ8cLx6\nOw83t98BBfWSZVTuUfHAemn5fPsjRUhsZvEuH70NvQXDRxSvV2nvww==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2025-02-18T18:05:57Z", + "mac": "ENC[AES256_GCM,data:7rl6npBWEFeS+IZMLb2+jLcs1d5gSzZyGkCDcrpAbxAB7doAp4vh5DJUEFnAUMtN/iHlwjX71pRNjBHLlYqCs344aaGkcEVMDO/C2m8efuPq+qIi+z372PlM+ekVDXquthvc8fcPhsCWHyso1LTpDjMRqf6kizk0wEtwJj5kOWA=,iv:OEaeQUJ2f0XZidWkttC8Y+WAkDyNkViTNiiDgy5QKr8=,tag:ERsBlT0T3iZvoEWcRhTpPA==,type:str]", + "pgp": null, + "unencrypted_suffix": "_unencrypted", + "version": "3.9.4" + } +} \ 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 @@ +{ config, ... }: +{ + config = { + services.postgresql = { + ensureDatabases = [ "firefly-iii" ]; + ensureUsers = [ + { name = "firefly-iii"; + ensureDBOwnership = true; + } + ]; + }; + + services.firefly-iii = { + enable = true; + enableNginx = true; + group = "firefly-iii"; + virtualHost = "firefly.yggdrasil.li"; + settings = { + DB_CONNECTION = "pgsql"; + DB_DATABASE = "firefly-iii"; + APP_KEY_FILE = config.sops.secrets."firefly-iii_app_key".path; + APP_URL = "https://${config.services.firefly-iii.virtualHost}"; + }; + }; + + services.nginx = { + commonHttpConfig = '' + map $http_x_forwarded_proto $fastcgi_param_https_variable { + default '''; + https 'on'; + } + ''; + virtualHosts.${config.services.firefly-iii.virtualHost} = { + listen = [ + { addr = "[2a03:4000:52:ada:4:1::]"; port = 9000; } + ]; + extraConfig = '' + set_real_ip_from 2a03:4000:52:ada:4::; + ''; + locations."~ \\.php$" = { + extraConfig = '' + fastcgi_param HTTPS $fastcgi_param_https_variable; + ''; + }; + }; + }; + + sops.secrets."firefly-iii_app_key" = { + format = "binary"; + sopsFile = ./app_key; + group = config.services.firefly-iii.group; + mode = "0440"; + restartUnits = [ "firefly-iii-setup.service" "firefly-iii-cron.service" "phpfpm-firefly-iii.service" ]; + }; + + users.groups.${config.services.firefly-iii.group} = {}; + + systemd.services = { + nginx.serviceConfig.SupplementaryGroups = [ config.services.firefly-iii.group ]; + "firefly-iii-setup".serviceConfig.ReadWritePaths = [ "/run/postgresql" ]; + "firefly-iii-cron".serviceConfig.ReadWritePaths = [ "/run/postgresql" ]; + }; + }; +} -- cgit v1.2.3