2017-04-15 23:16:20 +02:00
< ? php
2020-10-17 11:03:47 +02:00
// Settings can also be overwritten in two ways
//
// First priority
// A .txt file with the same name as the setting in /data/settingoverrides
// the content of the file is used as the setting value
//
// Second priority
// An environment variable with the same name as the setting and prefix "GROCY_"
// so for example "GROCY_BASE_URL"
//
// Third priority
// The settings defined here below
// Either "production", "dev", "demo" or "prerelease"
// When not "production", authentication will be disabled and
// demo data will be populated during database migrations
2018-07-12 19:12:31 +02:00
Setting ( 'MODE' , 'production' );
2018-04-18 19:03:39 +02:00
2020-10-17 11:03:47 +02:00
// Either "en" or "de" or the directory name of
// one of the other available localization folders in the "/localization" directory
2020-08-31 19:11:51 +02:00
Setting ( 'DEFAULT_LOCALE' , 'en' );
2018-04-18 19:03:39 +02:00
2020-10-17 11:03:47 +02:00
// This is used to define the first day of a week for calendar views in the frontend,
// leave empty to use the locale default
// Needs to be a number where Sunday = 0, Monday = 1 and so forth
2019-07-06 20:19:21 +02:00
Setting ( 'CALENDAR_FIRST_DAY_OF_WEEK' , '' );
2020-10-17 11:03:47 +02:00
// If calendars should show week numbers
2019-09-18 18:30:25 +02:00
Setting ( 'CALENDAR_SHOW_WEEK_OF_YEAR' , true );
2020-10-17 11:03:47 +02:00
// To keep it simple: grocy does not handle any currency conversions,
// this here is used to format all money values,
// so doesn't really matter, but should be the
// ISO 4217 code of the currency ("USD", "EUR", "GBP", etc.)
2019-03-09 16:04:03 +01:00
Setting ( 'CURRENCY' , 'USD' );
2018-07-26 20:27:38 +02:00
2020-10-17 11:03:47 +02:00
// When running grocy in a subdirectory, this should be set to the relative path, otherwise empty
2020-12-19 15:00:31 +01:00
// It needs to be set to the part (of the URL) after the document root,
// if URL rewriting is disabled, including index.php
// Example with URL Rewriting support:
// Root URL = https://example.com/grocy
2020-10-17 11:03:47 +02:00
// => BASE_PATH = /grocy
2020-12-19 15:00:31 +01:00
// Example without URL Rewriting support:
// Root URL = https://example.com/grocy/public/index.php/
// => BASE_PATH = /grocy/public/index.php
2020-03-06 20:41:00 +01:00
Setting ( 'BASE_PATH' , '' );
2020-12-19 15:00:31 +01:00
// The base URL of your installation,
2020-10-17 11:03:47 +02:00
// should be just "/" when running directly under the root of a (sub)domain
// or for example "https://example.com/grocy" when using a subdirectory
2018-07-12 19:12:31 +02:00
Setting ( 'BASE_URL' , '/' );
2018-04-22 19:47:46 +02:00
2020-10-17 11:03:47 +02:00
// The plugin to use for external barcode lookups,
// must be the filename without .php extension and must be located in /data/plugins,
// see /data/plugins/DemoBarcodeLookupPlugin.php for an example implementation
2018-07-12 19:12:31 +02:00
Setting ( 'STOCK_BARCODE_LOOKUP_PLUGIN' , 'DemoBarcodeLookupPlugin' );
2018-06-15 20:50:40 +02:00
2020-10-17 11:03:47 +02:00
// If, however, your webserver does not support URL rewriting, set this to true
2018-07-12 19:12:31 +02:00
Setting ( 'DISABLE_URL_REWRITING' , false );
2018-09-30 17:14:04 +02:00
2020-12-19 15:00:31 +01:00
// Specify an custom homepage if desired - by default the homepage will be set to the stock overview page,
2020-10-17 11:03:47 +02:00
// this needs to be one of the following values:
// stock, shoppinglist, recipes, chores, tasks, batteries, equipment, calendar, mealplan
2019-06-22 16:02:52 +02:00
Setting ( 'ENTRY_PAGE' , 'stock' );
2019-03-01 19:33:33 +01:00
2020-10-17 11:03:47 +02:00
// Set this to true if you want to disable authentication / the login screen,
// places where user context is needed will then use the default (first existing) user
2019-07-06 18:29:18 +02:00
Setting ( 'DISABLE_AUTH' , false );
2020-10-17 11:03:47 +02:00
// Either "Grocy\Middleware\DefaultAuthMiddleware", "Grocy\Middleware\ReverseProxyAuthMiddleware"
// or any class that implements Grocy\Middleware\AuthMiddleware
2020-08-19 19:23:13 +02:00
Setting ( 'AUTH_CLASS' , 'Grocy\Middleware\DefaultAuthMiddleware' );
2020-10-17 11:03:47 +02:00
// When using ReverseProxyAuthMiddleware,
// the name of the HTTP header which your reverse proxy uses to pass the username (on successful authentication)
2020-08-19 19:23:13 +02:00
Setting ( 'REVERSE_PROXY_AUTH_HEADER' , 'REMOTE_USER' );
2020-10-20 21:43:58 +02:00
// When using LdapAuthMiddleware
Setting ( 'LDAP_DOMAIN' , '' ); // Example value "local"
Setting ( 'LDAP_ADDRESS' , '' ); // Example value "ldap://vm-dc2019.local.berrnd.net"
Setting ( 'LDAP_BASE_DN' , '' ); // Example value "OU=OU_Users,DC=local,DC=berrnd,DC=net"
2020-10-17 11:03:47 +02:00
// Set this to true if you want to disable the ability to scan a barcode via the device camera (Browser API)
2019-09-19 12:48:02 +02:00
Setting ( 'DISABLE_BROWSER_BARCODE_CAMERA_SCANNING' , false );
2020-10-17 11:03:47 +02:00
// Set this if you want to have a different start day for the weekly meal plan view,
// leave empty to use CALENDAR_FIRST_DAY_OF_WEEK (see above)
// Needs to be a number where Sunday = 0, Monday = 1 and so forth
2020-01-25 20:01:40 +01:00
Setting ( 'MEAL_PLAN_FIRST_DAY_OF_WEEK' , '' );
2020-10-17 11:03:47 +02:00
// Default permissions for new users
// the array needs to contain the technical/constant names
// see the file controllers/Users/User.php for possible values
2020-08-29 12:05:32 +02:00
Setting ( 'DEFAULT_PERMISSIONS' , [ 'ADMIN' ]);
2020-10-17 11:03:47 +02:00
// Default user settings
// These settings can be changed per user, here the defaults
// are defined which are used when the user has not changed the setting so far
2019-09-19 17:46:52 +02:00
2020-10-17 11:03:47 +02:00
// Night mode related
2018-09-30 17:14:04 +02:00
DefaultUserSetting ( 'night_mode_enabled' , false ); // If night mode is enabled always
DefaultUserSetting ( 'auto_night_mode_enabled' , false ); // If night mode is enabled automatically when inside a given time range (see the two settings below)
2020-10-17 11:03:47 +02:00
DefaultUserSetting ( 'auto_night_mode_time_range_from' , '20:00' ); // Format HH:mm
DefaultUserSetting ( 'auto_night_mode_time_range_to' , '07:00' ); // Format HH:mm
2018-09-30 18:02:59 +02:00
DefaultUserSetting ( 'auto_night_mode_time_range_goes_over_midnight' , true ); // If the time range above goes over midnight
2018-09-30 19:31:03 +02:00
DefaultUserSetting ( 'currently_inside_night_mode_range' , false ); // If we're currently inside of night mode time range (this is not user configurable, but stored as a user setting because it's evaluated client side to be able to use the client time instead of the maybe different server time)
2019-04-20 15:30:45 +02:00
2020-10-17 11:03:47 +02:00
// Keep screen on settings
2020-01-05 10:03:02 +01:00
DefaultUserSetting ( 'keep_screen_on' , false ); // Keep the screen always on
DefaultUserSetting ( 'keep_screen_on_when_fullscreen_card' , false ); // Keep the screen on when a "fullscreen-card" is displayed
2020-10-17 11:03:47 +02:00
// Stock settings
2018-10-20 14:55:49 +02:00
DefaultUserSetting ( 'product_presets_location_id' , - 1 ); // Default location id for new products (-1 means no location is preset)
DefaultUserSetting ( 'product_presets_product_group_id' , - 1 ); // Default product group id for new products (-1 means no product group is preset)
DefaultUserSetting ( 'product_presets_qu_id' , - 1 ); // Default quantity unit id for new products (-1 means no quantity unit is preset)
2020-10-20 13:08:54 -05:00
DefaultUserSetting ( 'stock_decimal_places_amounts' , 4 ); // Default decimal places allowed for amounts
2020-11-13 17:45:09 +01:00
DefaultUserSetting ( 'stock_decimal_places_prices' , 2 ); // Default decimal places allowed for prices
2020-11-15 19:53:44 +01:00
DefaultUserSetting ( 'stock_due_soon_days' , 5 );
2019-05-04 13:19:34 +02:00
DefaultUserSetting ( 'stock_default_purchase_amount' , 0 );
DefaultUserSetting ( 'stock_default_consume_amount' , 1 );
2020-12-04 18:16:58 +01:00
DefaultUserSetting ( 'stock_default_consume_amount_use_quick_consume_amount' , false );
2020-01-26 15:35:01 +01:00
DefaultUserSetting ( 'scan_mode_consume_enabled' , false );
DefaultUserSetting ( 'scan_mode_purchase_enabled' , false );
2020-04-13 18:47:41 +02:00
DefaultUserSetting ( 'show_icon_on_stock_overview_page_when_product_is_on_shopping_list' , true );
2021-03-31 21:12:51 +01:00
DefaultUserSetting ( 'show_purchased_date_on_purchase' , false ); // Whether the purchased date should be editable on purchase (defaults to today otherwise)
2020-11-15 19:53:44 +01:00
DefaultUserSetting ( 'show_warning_on_purchase_when_due_date_is_earlier_than_next' , true ); // Show a warning on purchase when the due date of the purchased product is earlier than the next due date in stock
2019-04-20 15:30:45 +02:00
2020-10-17 11:03:47 +02:00
// Shopping list settings
2020-11-15 19:53:44 +01:00
DefaultUserSetting ( 'shopping_list_to_stock_workflow_auto_submit_when_prefilled' , false ); // Automatically do the booking using the last price and the amount of the shopping list item, if the product has "Default due days" set
2020-02-01 12:54:05 +01:00
DefaultUserSetting ( 'shopping_list_show_calendar' , false );
2020-10-17 11:03:47 +02:00
// Recipe settings
2020-02-10 18:24:15 +01:00
DefaultUserSetting ( 'recipe_ingredients_group_by_product_group' , false ); // Group recipe ingredients by their product group
2020-10-17 11:03:47 +02:00
// Chores settings
2019-04-20 15:30:45 +02:00
DefaultUserSetting ( 'chores_due_soon_days' , 5 );
2020-10-17 11:03:47 +02:00
// Batteries settings
2019-04-20 15:30:45 +02:00
DefaultUserSetting ( 'batteries_due_soon_days' , 5 );
2020-10-17 11:03:47 +02:00
// Tasks settings
2019-04-20 15:30:45 +02:00
DefaultUserSetting ( 'tasks_due_soon_days' , 5 );
2018-09-30 17:14:04 +02:00
2020-10-17 11:03:47 +02:00
// If the page should be automatically reloaded when there was
// an external change
2018-09-30 17:14:04 +02:00
DefaultUserSetting ( 'auto_reload_on_db_change' , true );
2018-11-20 19:23:48 +01:00
2020-10-17 11:03:47 +02:00
// Show a clock in the header next to the logo or not
2018-11-20 19:23:48 +01:00
DefaultUserSetting ( 'show_clock_in_header' , false );
2018-11-21 19:08:36 +01:00
2020-10-17 11:03:47 +02:00
// Component configuration for Quagga2 - read https://github.com/ericblade/quagga2#configobject for details
// Below is a generic good configuration,
// for an iPhone 7 Plus, halfsample = true, patchsize = small, frequency = 5 yields very good results
2020-04-13 16:14:43 +02:00
DefaultUserSetting ( 'quagga2_numofworkers' , 4 );
2020-08-19 14:52:04 -03:00
DefaultUserSetting ( 'quagga2_halfsample' , false );
DefaultUserSetting ( 'quagga2_patchsize' , 'medium' );
DefaultUserSetting ( 'quagga2_frequency' , 10 );
DefaultUserSetting ( 'quagga2_debug' , true );
2019-03-01 19:33:33 +01:00
2021-06-12 17:21:12 +02:00
// Label Printer Settings
// This is the URI that grocy will POST to when asked to print a label.
Setting ( 'LABEL_PRINTER_WEBHOOK' , '' );
// This setting decides whether the webhook will be called server- or clientside.
// If the machine grocy runs on has a network connection to the host
// the webhook receiver is on, this is probably a good idea.
// If, for example, grocy runs in the cloud and your printer daemon
// runs locally to you, set this to false to let your browser call
// the webhook instead.
Setting ( 'LABEL_PRINTER_RUN_SERVER' , true );
// Additional Parameters supplied to the webhook.
Setting ( 'LABEL_PRINTER_PARAMS' , [ 'font_family' => 'Source Sans Pro (Regular)' ]);
// Use JSON or normal POST request variables?
Setting ( 'LABEL_PRINTER_HOOK_JSON' , false );
2020-10-17 11:03:47 +02:00
// Feature flags
// grocy was initially about "stock management for your household", many other things
// came and still come by, because they are useful - here you can disable the parts
// which you don't need to have a less cluttered UI
// (set the setting to "false" to disable the corresponding part, which should be self explanatory)
2019-05-03 20:03:04 +02:00
Setting ( 'FEATURE_FLAG_STOCK' , true );
2019-03-01 19:33:33 +01:00
Setting ( 'FEATURE_FLAG_SHOPPINGLIST' , true );
Setting ( 'FEATURE_FLAG_RECIPES' , true );
Setting ( 'FEATURE_FLAG_CHORES' , true );
Setting ( 'FEATURE_FLAG_TASKS' , true );
Setting ( 'FEATURE_FLAG_BATTERIES' , true );
Setting ( 'FEATURE_FLAG_EQUIPMENT' , true );
Setting ( 'FEATURE_FLAG_CALENDAR' , true );
2021-06-12 17:21:12 +02:00
Setting ( 'FEATURE_FLAG_LABELPRINTER' , false );
2019-09-19 17:46:52 +02:00
2020-10-17 11:03:47 +02:00
// Sub feature flags
2019-09-19 17:46:52 +02:00
Setting ( 'FEATURE_FLAG_STOCK_PRICE_TRACKING' , true );
Setting ( 'FEATURE_FLAG_STOCK_LOCATION_TRACKING' , true );
Setting ( 'FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING' , true );
Setting ( 'FEATURE_FLAG_STOCK_PRODUCT_OPENED_TRACKING' , true );
2020-01-26 20:01:30 +01:00
Setting ( 'FEATURE_FLAG_STOCK_PRODUCT_FREEZING' , true );
2020-11-15 19:53:44 +01:00
Setting ( 'FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_FIELD_NUMBER_PAD' , true ); // Activate the number pad in due date fields on (supported) mobile browsers
2019-10-05 13:10:56 +02:00
Setting ( 'FEATURE_FLAG_SHOPPINGLIST_MULTIPLE_LISTS' , true );
2019-09-26 17:20:25 +02:00
Setting ( 'FEATURE_FLAG_CHORES_ASSIGNMENTS' , true );
2019-09-19 18:11:03 +02:00
2020-10-17 11:03:47 +02:00
// Feature settings
2020-12-19 15:00:31 +01:00
Setting ( 'FEATURE_SETTING_STOCK_COUNT_OPENED_PRODUCTS_AGAINST_MINIMUM_STOCK_AMOUNT' , true ); // When set to true, opened items will be counted as missing for calculating if a product is below its minimum stock amount
2021-03-31 21:12:51 +01:00
Setting ( 'FEATURE_FLAG_AUTO_TORCH_ON_WITH_CAMERA' , true ); // Enables the torch automatically (if the device has one)