summary refs log tree commit diff
path: root/nixos/modules/services/web-apps/grocy.xml
blob: 08de25b4ce2b89334b55896c3157e6a9ef2d193f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<!-- Do not edit this file directly, edit its companion .md instead
     and regenerate this file using nixos/doc/manual/md-to-db.sh -->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="module-services-grocy">
  <title>Grocy</title>
  <para>
    <link xlink:href="https://grocy.info/">Grocy</link> is a web-based
    self-hosted groceries &amp; household management solution for your
    home.
  </para>
  <section xml:id="module-services-grocy-basic-usage">
    <title>Basic usage</title>
    <para>
      A very basic configuration may look like this:
    </para>
    <programlisting>
{ pkgs, ... }:
{
  services.grocy = {
    enable = true;
    hostName = &quot;grocy.tld&quot;;
  };
}
</programlisting>
    <para>
      This configures a simple vhost using
      <link linkend="opt-services.nginx.enable">nginx</link> which
      listens to <literal>grocy.tld</literal> with fully configured
      ACME/LE (this can be disabled by setting
      <link linkend="opt-services.grocy.nginx.enableSSL">services.grocy.nginx.enableSSL</link>
      to <literal>false</literal>). After the initial setup the
      credentials <literal>admin:admin</literal> can be used to login.
    </para>
    <para>
      The application’s state is persisted at
      <literal>/var/lib/grocy/grocy.db</literal> in a
      <literal>sqlite3</literal> database. The migration is applied when
      requesting the <literal>/</literal>-route of the application.
    </para>
  </section>
  <section xml:id="module-services-grocy-settings">
    <title>Settings</title>
    <para>
      The configuration for <literal>grocy</literal> is located at
      <literal>/etc/grocy/config.php</literal>. By default, the
      following settings can be defined in the NixOS-configuration:
    </para>
    <programlisting>
{ pkgs, ... }:
{
  services.grocy.settings = {
    # The default currency in the system for invoices etc.
    # Please note that exchange rates aren't taken into account, this
    # is just the setting for what's shown in the frontend.
    currency = &quot;EUR&quot;;

    # The display language (and locale configuration) for grocy.
    culture = &quot;de&quot;;

    calendar = {
      # Whether or not to show the week-numbers
      # in the calendar.
      showWeekNumber = true;

      # Index of the first day to be shown in the calendar (0=Sunday, 1=Monday,
      # 2=Tuesday and so on).
      firstDayOfWeek = 2;
    };
  };
}
</programlisting>
    <para>
      If you want to alter the configuration file on your own, you can
      do this manually with an expression like this:
    </para>
    <programlisting>
{ lib, ... }:
{
  environment.etc.&quot;grocy/config.php&quot;.text = lib.mkAfter ''
    // Arbitrary PHP code in grocy's configuration file
  '';
}
</programlisting>
  </section>
</chapter>