grafana-alloy: don't build the frontend twice
[NixPkgs.git] / nixos / modules / services / web-apps / grocy.md
blobf4b5769c2479ca49f6b57962064e11eba6ace4d7
1 # Grocy {#module-services-grocy}
3 [Grocy](https://grocy.info/) is a web-based self-hosted groceries
4 & household management solution for your home.
6 ## Basic usage {#module-services-grocy-basic-usage}
8 A very basic configuration may look like this:
9 ```nix
10 { pkgs, ... }:
12   services.grocy = {
13     enable = true;
14     hostName = "grocy.tld";
15   };
17 ```
18 This configures a simple vhost using [nginx](#opt-services.nginx.enable)
19 which listens to `grocy.tld` with fully configured ACME/LE (this can be
20 disabled by setting [services.grocy.nginx.enableSSL](#opt-services.grocy.nginx.enableSSL)
21 to `false`). After the initial setup the credentials `admin:admin`
22 can be used to login.
24 The application's state is persisted at `/var/lib/grocy/grocy.db` in a
25 `sqlite3` database. The migration is applied when requesting the `/`-route
26 of the application.
28 ## Settings {#module-services-grocy-settings}
30 The configuration for `grocy` is located at `/etc/grocy/config.php`.
31 By default, the following settings can be defined in the NixOS-configuration:
32 ```nix
33 { pkgs, ... }:
35   services.grocy.settings = {
36     # The default currency in the system for invoices etc.
37     # Please note that exchange rates aren't taken into account, this
38     # is just the setting for what's shown in the frontend.
39     currency = "EUR";
41     # The display language (and locale configuration) for grocy.
42     culture = "de";
44     calendar = {
45       # Whether or not to show the week-numbers
46       # in the calendar.
47       showWeekNumber = true;
49       # Index of the first day to be shown in the calendar (0=Sunday, 1=Monday,
50       # 2=Tuesday and so on).
51       firstDayOfWeek = 2;
52     };
53   };
55 ```
57 If you want to alter the configuration file on your own, you can do this manually with
58 an expression like this:
59 ```nix
60 { lib, ... }:
62   environment.etc."grocy/config.php".text = lib.mkAfter ''
63     // Arbitrary PHP code in grocy's configuration file
64   '';
66 ```