Grocy
Grocy is a web-based self-hosted groceries
& household management solution for your home.
Basic usage
A very basic configuration may look like this:
{ pkgs, ... }:
{
services.grocy = {
enable = true;
hostName = "grocy.tld";
};
}
This configures a simple vhost using nginx
which listens to grocy.tld with fully configured ACME/LE (this can be
disabled by setting services.grocy.nginx.enableSSL
to false). After the initial setup the credentials admin:admin
can be used to login.
The application's state is persisted at /var/lib/grocy/grocy.db in a
sqlite3 database. The migration is applied when requesting the /-route
of the application.
Settings
The configuration for grocy is located at /etc/grocy/config.php.
By default, the following settings can be defined in the NixOS-configuration:
{ 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 = "EUR";
# The display language (and locale configuration) for grocy.
culture = "de";
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;
};
};
}
If you want to alter the configuration file on your own, you can do this manually with
an expression like this:
{ lib, ... }:
{
environment.etc."grocy/config.php".text = lib.mkAfter ''
// Arbitrary PHP code in grocy's configuration file
'';
}