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
}
| Parameter | Description |
|---|---|
host | Database server hostname or IP address |
name | Database name |
user | Database username |
pass | Database password |
port | Database 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.confwill override whatever is set there.
Server
server {
token=<app_token>
hostname=<hostname>
validate=<0|1>
}
| Parameter | Description |
|---|---|
token | Application token from the mesibo Console |
hostname | Hostname for your mesibo On-Premise server |
validate | Whether to validate that the hostname IP matches the host machine: 1 to enable (default), 0 to disable |
SSL
ssl {
path=<certificates_path>
}
| Parameter | Description |
|---|---|
path | Full 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
}
| Parameter | Description |
|---|---|
message | Message events |
calls | Voice and video call events |
network | Network-level events |
login | User login events |
logout | User logout events |
push | Push notification events |
script | Script 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
| Parameter | Description | Required |
|---|---|---|
op | Must be "tempconfig" | Yes |
token | Application token from the mesibo Console | Yes |
config.name | Configuration parameter name, e.g. logs.push, logs.message, logs.login | Yes |
config.value | Value 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.