nix-config/modules/nixos/services/grocy/default.nix

46 lines
976 B
Nix
Raw Normal View History

2022-07-28 17:53:23 +02:00
# Groceries and household management
{ config, lib, ... }:
let
cfg = config.my.services.grocy;
grocyDomain = "grocy.${config.networking.domain}";
2022-07-28 17:53:23 +02:00
in
{
options.my.services.grocy = with lib; {
enable = mkEnableOption "Grocy household ERP";
};
config = lib.mkIf cfg.enable {
services.grocy = {
enable = true;
# The service sets up the reverse proxy automatically
hostName = grocyDomain;
2022-07-28 17:53:23 +02:00
# Configure SSL by hand
2022-07-28 17:53:23 +02:00
nginx = {
enableSSL = false;
2022-07-28 17:53:23 +02:00
};
settings = {
currency = "EUR";
culture = "en";
calendar = {
# Start on Monday
firstDayOfWeek = 1;
showWeekNumber = true;
};
};
};
services.nginx.virtualHosts."${grocyDomain}" = {
forceSSL = true;
useACMEHost = config.networking.domain;
};
# FIXME: backup
# FIXME: persistence
# NOTE: unfortunately grocy does not log connection failures for fail2ban
2022-07-28 17:53:23 +02:00
};
}