feat(firefly): install

This commit is contained in:
wi11-holdsworth 2026-01-07 12:21:35 +11:00
parent 4ec5efa5ac
commit f793bee495
5 changed files with 87 additions and 0 deletions

View file

@ -0,0 +1,65 @@
{
config,
...
}:
{
services = {
firefly-iii = {
enable = true;
dataDir = "/srv/firefly";
group = "nginx";
settings = {
# keep-sorted start
ALLOW_WEBHOOKS = "true";
APP_KEY_FILE = config.age.secrets.firefly.path;
APP_URL = "https://firefly.fi33.buzz";
DEFAULT_LANGUAGE = "en_GB";
REPORT_ERRORS_ONLINE = "false";
TRUSTED_PROXIES = "**";
TZ = "Australia/Melbourne";
# keep-sorted end
};
};
borgmatic.settings.sqlite_databases = [
{
name = "firefly";
path = "/srv/firefly/storage/database/database.sqlite";
}
];
nginx.virtualHosts."firefly.fi33.buzz" = {
forceSSL = true;
useACMEHost = "fi33.buzz";
root = "${config.services.firefly-iii.package}/public";
locations = {
"/" = {
tryFiles = "$uri $uri/ /index.php?$query_string";
index = "index.php";
extraConfig = ''
sendfile off;
'';
};
"~ \\.php$" = {
extraConfig = ''
include ${config.services.nginx.package}/conf/fastcgi_params ;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
fastcgi_pass unix:${config.services.phpfpm.pools.firefly-iii.socket};
'';
};
};
};
};
age.secrets = {
firefly = {
file = ../../../secrets/firefly.age;
owner = "firefly-iii";
};
firefly-db = {
file = ../../../secrets/firefly-db.age;
owner = "firefly-iii";
};
};
}