3.15. Configuration

3.15.1. User Interface Basics

Since LMS 1.5.3 you're able to configure all UI-related options directly via LMS-UI, instead of editing lms.ini. Those options are stored in database and you first need to import them from your config file (even if you haven't edited anything yet, default values will be imported). This can be done by clicking on the link presented on empty list.


Options setup with LMS-UI have higher priority than those in configuration file. With options setup in UI, the configuration will be still imported from file but values will be then overwritten by those found in DB.


Daemon read some options other than its configuration from database only, so it's preferred to store configuration in database.

In order to manually add new option click 'Add option' on the bottom of the list. To edit option value, click on its record. You'll be given with edit form, where you are also able to remove this option. Changing option status allows you to turn it on and off instantly. When an option is off, default value will be used (if it posses any). Configuration Options List

Here we've got the list of UI configuration options. Those options should be placed in [phpui] section. The rest of options is described in appropriate chapters.

  • allow_from (optional)

    List of networks or IP addresses, which have access to LMS. If empty, every IP address is permitted. You can write here list of addresses or address pools and LMS will dismiss every unwanted user with HTTP 403 error.

    Example: allow_from =,,

  • lang

    User interface language code (ISO). IF not set, language will be based on HTML browser settings. Default: en

    Example: lang = pl

  • timeout

    Timeout for WWW session. User will be log out if he won't perform any action in such number of seconds. Default: 600

    Example: timeout = 900


    It's not possible to not to have any timeout. If you set this value to zero, you won't be able to use LMS at all!

  • default_module

    Start-up module (filename from /modules without .php). Default: welcome.

    Example: default_module = copyrights

  • customerlist_pagelimit

    Limit of records that can be displayed on one page of customers list. Default: 100

    Example: customerlist_pagelimit = 10

  • nodelist_pagelimit

    Limit of records that can be displayed on one page of nodes list. Default: 100

    Example: nodelist_pagelimit = 10

  • balancelist_pagelimit

    Limit of records that can be displayed on one page of customer balance. Default: 100.

    Example: balancelist_pagelimit = 50

  • invoicelist_pagelimit

    Limit of records that can be displayed on one page of invoices list. Default: 100

    Example: invoicelist_pagelimit = 50

  • ticketlist_pagelimit

    Limit of records that can be displayed on one page of ticket (requests) list. Default: 100

    Example: ticketlist_pagelimit = 50

  • networkhosts_pagelimit

    Limit of records that can be displayed on one page of nodes with network information. Default: 256

    Example: networkhosts_pagelimit = 1024

  • accountlist_pagelimit

    Limit of records that can be displayed on one page of customer accounts. Default: 100

    Example: accountlist_pagelimit = 50

  • domainlist_pagelimit

    Limit of records that can be displayed on one page of system domains. Default: 100

    Example: domainlist_pagelimit = 50

  • aliaslist_pagelimit

    Limit of records that can be displayed on one page of user aliases. Default: 100

    Example: aliaslist_pagelimit = 50

  • configlist_pagelimit

    Limit of records that can be displayed on one page of UI configuration list. Default: 100

    Example: configlist_pagelimit = 50

  • taxratelist_pagelimit

    Limit of records that can be displayed on one page of tax rates list. Default: 100

    Example: taxratelist_pagelimit = 50

  • numberplanlist_pagelimit

    Limit of records that can be displayed on one page of numbering plans list. Default: 100

    Example: numberplanlist_pagelimit = 50

  • divisionlist_pagelimit

    Limit of records that can be displayed on one page of divisions list. Default: 100

    Example: divisionlist_pagelimit = 50

  • documentlist_pagelimit

    Limit of records that can be displayed on one page of documents list. Default: 100

    Example: documentlist_pagelimit = 50

  • reload_type

    Reload type. Allowed values:

    exec - execute some command (usually with sudo, script or something else, configurable below)

    sql - doing SQL writes (can be also set to custom query)

    Default: sql.

    Example: reload_type = exec

  • reload_execcmd

    Command to run during reload, if reload_type is set to 'exec'. By default /bin/true. This string is send to system() command, so make sure that you know what you're doing. :) Besides, semicolons should be parsed by bash, but LMS splits that string and execute commands separately. In commands you can use '%host' variable, which is replaced by defined host name (Configuration -> Hosts).

    Example: reload_execcmd = "sudo /usr/bin/reload_lms.sh %host"

  • reload_sqlquery

    SQL query executed while reload, if reload_type = sql. By default, query sets reload order for daemon lmsd. You can use '%TIME%' template in your query which will be substituted with current UNIX timestamp and '%host' for host name. WARNING! Semicolon is handled as query separator, which means that you can enter couple of SQL queries separated by semicolon sign.

    Example: reload_sqlquery = "INSERT INTO reload VALUES ('1','%TIME%')"

  • force_ssl

    Enforce SSL for all connections. Setting this option to 1 will turn LMS into enforcing SSL connections by applying redirect to 'https://'.$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI] at every access without SSL. Default: 0 (off).

    Example: force_ssl = 1

  • allow_mac_sharing

    Allows for node addition even if its MAC address is not unique (not checking that some computer have that MAC yet). Default: 0 (off)

    Example: allow_mac_sharing = 1

  • smarty_debug

    Enable Smarty debug console. Useful for tracking values passed from PHP to Smarty. Default: 0 (off).

    Example: smarty_debug = 1

  • default_zip, default_city, default_address

    Default zip code, city and street used on "new user" form. Useful when we have many users on the same street.

    Example: default_zip = 39-300

  • use_current_payday

    Forces to use current day of month as a payment day. Default: 0 (off).

    Example: use_current_payday = 1

  • default_monthly_payday

    Forces to use given day of month as a payment day. Default: 0 (undefined).

    Example: default_monthly_payday = 1

  • use_invoices

    Makes option "with invoice" checked by default. Default: false.

    Example: use_invoices = true

  • lastonline_limit

    Specify time (in seconds), after which node will be marked offline. It should match frequency of execution for script responsible for checking nodes activity (i.e. lms-fping). Default: 600.

    Example: lastonline_limit = 300

  • timetable_days_forward

    Specify number of days (including current day) visible on timetable. Default: 7.

    Example: timetable_days_forward = 2

  • arpd_servers

    List of arpd servers for reading MAC addresses from remote networks. That list should include IP[:port] items separated with spaces. Default: empty.

    Example: arpd_servers =

  • helpdesk_backend_mode

    When enabled, all messages in helpdesk system (except those sent to ticket reporter) will be sent to mail server to the appropriate queue address. Mail server should run lms-rtparser script, which will write messages to database. Default: disabled.

    Example: helpdesk_backend_mode = On

  • helpdesk_sender_name

    Name of message sender or predefined values: 'queue' - ticket's queue name, 'user' - name of logged user (sender). Default: empty.

    Example: helpdesk_sender_name = Helpdesk

  • newticket_notify

    If enabled, after new ticket addition system will send notification emails to all users with rights to the queue. Default: disabled.

    Example: newticket_notify = On

  • helpdesk_stats

    Adds requests causes stats on ticket view and print pages. Default: enabled.

    Example: helpdesk_stats = true

  • helpdesk_customerinfo

    Adds customer basic information on ticket view and in notifications. Default: enabled.

    Example: helpdesk_customerinfo = false

  • ticketlist_status

    Default status filter setting on tickets list. For allowed values see html source code. Default: not set.

    Example: ticketlist_status = -1

  • ticket_template_file

    Helpdesk ticket printout template file. Default: rtticketprint.html.

    Example: ticket_template_file = ../mytemplates/ticket.html

  • to_words_short_version

    Specify format of verbal amounts representation (on invoices). For value "1" verbal expand of 123,15 will be "one two thr 15/100". Default: 0.

    Example: to_words_short_version = 1

  • nodepassword_length

    Length of (auto-generated) node password. Max.32. Default: 16.

    Example: nodepassword_length = 8

  • gd_translate_to

    Charset of data that GD library expects (useful if GD need ISO-8859-2 instead of UTF-8 to feed imagetext() function. Default: ISO-8859-2.

    Example: gd_translate_to =

  • check_for_updates_period

    How often to check for LMS updates (in seconds). Default: 86400.

    Example: check_for_updates_period = 604800

  • default_taxrate

    Specify value (not label) of tax rate which will be selected on drop-down lists by default. Default: 22.

    Example: default_taxrate = 22.0

  • big_networks

    Support for big ISPs e.g. hidding long selection dropdowns. Default: false.

    Example: big_networks = true

  • short_pagescroller

    Enables page scroller designed for lists with very big number of pages. Default: false.

    Example: short_pagescroller = true

  • ewx_support

    Support for EtherWerX devices. Default: false.

    Example: ewx_support = true

  • default_assignment_period

    Default period value for assignment. Possible values: disposable - 0 daily - 1 weekly - 2 monthly - 3 quarterly - 4 yearly - 5 Default: 0

    Example: default_assignment_period = 3

3.15.2. Tax Rates

Before you have to begin with financial system you will need to define tax rates which you will use. On the list are place all rates data. It's possible to edit tax rate, but system will not allow to change value of rate that was used in the past. Also isn't possible to delete that rate.

Link 'Add tax rate' moves you to the form, where you can define a new rate. Tax rate label is displayed on select lists and invoice printout. Value of tax rate is a number from 0 to 100 with two decimal places precision. Taxing status is used for tax-free rate, that means the rest of defined tax rates should have taxing enabled.

Tax rate which will be selected by default on lists is defined by default_taxrate option in section [phpui].

3.15.3. Number plans

This feature allows you to add unique numbering plan (numbering sequence) for each type of documents created in LMS. It's also possible to define different sequences within one type of documents. For each document type you might define default sequence (important, ie. when you're issuing invoices automatically, as perl scripts or daemon will use this default scheme when creating new document).

For each sequence you should also define time span, that is period in which sequence numbers will be unique. When time span selected will reach its end, sequence will be zeroed. You are able to set period to one of: daily, weekly (Monday to Sunday), monthly, quarterly or annually.

Numbering plans list consist of all its identifying information included, followed by example number generated using this plan plus number of documents created with this plan. You might select 'Add plan' to enter new sequence. Editing is possible by clicking the field that you want to change. Deletion of plan is only possible when no documents has been created with that yet.

Sequence template might be any string, which consist some of symbols (specifiers) known from PHP strftime function. Detailed information and list of all symbols can be find in PHP Manual. The most important and the only required symbol in sequence template is '%N', which will be substituted with incremented document number. All other symbols will expand to document's date of issue. Below you can find most popular ones:


If you have no numbering plans defined, each document will take default number as of '%N/LMS/%Y' with annual time span.

3.15.4. Divisions

Divisions/Companies are used for customers grouping. You should create at least one division. You can define division's short and long names, address bank account (or mass-payments account prefix) and other data for invoices. Locked division cannot be assigned to customer.

3.15.5. Hosts

This section defines host names of those machines (routers, servers) that read its configuration from LMS database and where scripts or lmsd daemon will be setup.

Each host name should be unique and it's recommended to be machine's real name, which could be obtained by running hostname command on each of them (assuming they're all u*ix hosts).

3.15.6. Daemon

When you create hosts list, you will be able to configure daemon lmsd. Daemon configuration is described in appropriate chapter.

3.15.7. Import sources

It's possible to import customer payments from many sources (banks). Here you can define its names/description. Then you will able to select source from the list to add/import payments or some create payments reports.