mesibo On-Premise Local Configuration

While mesibo On-Premise can be configured entirely through the mesibo Console, many mesibo users, particularly those in regulated industries — prefer a local configuration file — /etc/mesibo/mesibo.conf, for stricter control over credentials and deployment settings. Parameters in the local file take priority over both command line arguments and console settings.

Local configuration is useful in the following scenarios:

  • Regulatory Compliance — Financial institutions, government agencies, and other security-sensitive organizations often have strict requirements that prohibit sharing database credentials with external systems. Local configuration keeps credentials entirely within your own infrastructure.
  • Custom Certificates — Specify SSL certificate paths in the config file rather than on the command line.
  • Advanced Logging — Enable granular, per-component logging for debugging or audit purposes.
  • Network Configuration — Override hostname validation and other server-specific settings.

Creating the Configuration File

Step 1 - Create the Configuration Directory

Create the configuration directory on your host system if it does not already exist:

$ sudo mkdir -p /etc/mesibo

Step 2 - Create the Configuration File

$ sudo vim /etc/mesibo/mesibo.conf

Step 3 - Set Permissions

Restrict access to the configuration file to prevent unauthorized access to credentials:

$ sudo chmod 600 /etc/mesibo/mesibo.conf
$ sudo chown root:root /etc/mesibo/mesibo.conf

Step 4 - Mount the Configuration Directory

To make the configuration file accessible inside the Docker container, mount /etc/mesibo as a volume when starting mesibo:

$ sudo docker run -v /etc/letsencrypt/archive/mesibo.example.com:/certs \
    -v /etc/mesibo:/etc/mesibo --net=host \
    --ipc=host --name mesibo --rm -d mesibo/mesibo <APP_TOKEN>

The -v /etc/mesibo:/etc/mesibo option maps the directory on your host to the same path inside the container, giving mesibo access to your configuration file.

Configuration Sections

All sections are optional. Include only the sections relevant to your setup. For a complete example, see Full Configuration Example below.

Database

database {
    host=<db_host>
    name=<db_name>
    user=<db_username>
    pass=<db_password>
    port=3306
}
ParameterDescription
hostDatabase server hostname or IP address
nameDatabase name
userDatabase username
passDatabase password
portDatabase port (default: 3306, optional)

Note: Even when using local database configuration, you must enter placeholder credentials in the mesibo Console — the Console requires them to save the configuration. The values in /etc/mesibo/mesibo.conf will override whatever is set there.

Server

server {
    token=<app_token>
    hostname=<hostname>
    validate=<0|1>
}
ParameterDescription
tokenApplication token from the mesibo Console
hostnameHostname for your mesibo On-Premise server
validateWhether to validate that the hostname IP matches the host machine: 1 to enable (default), 0 to disable

SSL

ssl {
    path=<certificates_path>
}
ParameterDescription
pathFull path to the directory containing your SSL certificate files (cert.pem, privkey.pem, chain.pem)

Logging

All log fields accept 1 (enabled) or 0 (disabled).

logs {
    message = 0
    calls = 0
    network = 0
    login = 1
    logout = 0
    push = 1
    script = 0
}
ParameterDescription
messageMessage events
callsVoice and video call events
networkNetwork-level events
loginUser login events
logoutUser logout events
pushPush notification events
scriptScript execution events

In production, enable only what is necessary — excessive logging has a measurable performance impact. For most production deployments, login = 1 is sufficient.

Full Configuration Example

A complete /etc/mesibo/mesibo.conf with all sections:

database {
    host=192.168.1.10
    name=mesiboapp
    user=mesibouser
    pass=StrongPassword123
}

server {
    token=xhc2sayx05ba2l5cralockbicqjsvv1nsqxs0x1yclfv0qvyg1q
    hostname=mesibo.example.com
    validate=1
}

ssl {
    path=/etc/letsencrypt/archive/mesibo.example.com
}

logs {
    message = 0
    calls = 0
    network = 0
    login = 1
    logout = 0
    push = 0
    script = 0
}

Dynamic Configuration via Backend API

Certain configuration parameters can be updated at runtime without restarting mesibo, using the tempconfig backend API operation. This is useful for temporarily adjusting log levels during debugging.

These changes are not persistent. Settings applied via tempconfig are reset when the On-Premise server restarts. For permanent changes, update /etc/mesibo/mesibo.conf.

Currently, only logging parameters are supported via tempconfig.

Send a POST request to your hosted backend API endpoint (the /mesiboapi URL configured on your web server):

$ curl --header "Content-Type: application/json" \
     --request POST \
     --data '{
       "op": "tempconfig",
       "token": "<APP_TOKEN>",
       "config": {
         "name": "logs.push",
         "value": "1"
       }
     }' \
     https://<your-web-server>/mesiboapi
ParameterDescriptionRequired
opMust be "tempconfig"Yes
tokenApplication token from the mesibo ConsoleYes
config.nameConfiguration parameter name, e.g. logs.push, logs.message, logs.loginYes
config.valueValue to set. Pass an empty string to reset to the default.No

Troubleshooting

If mesibo is not picking up your local configuration, first verify the file is readable inside the container:

$ sudo docker exec mesibo ls -la /etc/mesibo/mesibo.conf

Then check the container logs for any configuration parsing errors:

$ sudo docker logs mesibo

If the file is present but unreadable, check the permissions and ensure the file has appropriate read permissions.

For all other issues such as database connectivity, certificate problems, or networking, refer to the Troubleshooting section in the main On-Premise documentation.