Appearance
Configuration
This guide covers all configurable settings in ioBufferPro. After reviewing the Quick Start, use this page to fine-tune your deployment for production use.
Configuration File
ioBufferPro stores its settings in a single JSON file:
config/ipbuffer_config.jsonOn startup, ioBufferPro searches for the configuration file in the following order:
<executable_directory>/config/ipbuffer_config.json<current_working_directory>/config/ipbuffer_config.json
If no configuration file is found, ioBufferPro creates a default one automatically in the first search location. You can then edit this file to customize your deployment.
TIP
After editing the configuration file, restart ioBufferPro for the changes to take effect. Some settings — such as channel pair changes made through the Management Dashboard — are applied immediately without a restart.
Required Customizations
Before putting ioBufferPro into production, you must make the following changes to the default configuration.
Change All Default Passwords
The default installation uses well-known credentials (admin / admin123). Leaving default passwords in place is a critical security risk. Change them immediately through the Management Dashboard or by editing the configuration file.
Every user account must have a strong, unique password before the system is exposed to any network.
System Identity
Set a meaningful system name and the correct timezone for your deployment:
json
{
"system": {
"name": "Plant-A ioBufferPro",
"timezone": "America/New_York"
}
}The system name appears in the web portals and log entries, making it easier to identify the instance in multi-site deployments.
Network Ports
Review and adjust the default port numbers if they conflict with other services on your host:
json
{
"web": {
"port": 8080,
"management_port": 8081
}
}Network Configuration
ioBufferPro exposes two web portals, each on its own port:
| Setting | Default | Purpose |
|---|---|---|
| Web Port | 8080 | Operations Portal — channel monitoring and live message flow |
| Management Port | 8081 | Management Dashboard — system configuration and administration |
| Host Binding | 0.0.0.0 | Network interface to listen on |
Host Binding
The host setting controls which network interfaces ioBufferPro listens on:
| Value | Behavior | Use Case |
|---|---|---|
0.0.0.0 | Listens on all network interfaces | Access from any device on the network |
127.0.0.1 | Listens on localhost only | Restrict access to the local machine (more secure) |
json
{
"web": {
"host": "0.0.0.0",
"port": 8080,
"management_port": 8081
}
}WARNING
Setting the host to 0.0.0.0 exposes the web portals to your entire network. In production, combine this with firewall rules to restrict access to authorized IP addresses only. Alternatively, bind to 127.0.0.1 and use a reverse proxy for controlled external access.
SSL/TLS Setup
For production deployments, enable SSL/TLS to encrypt all web traffic.
Enabling SSL for the Web Portals
Add the following to your configuration file:
json
{
"web": {
"ssl_enabled": true,
"ssl_cert_file": "/path/to/certificate.pem",
"ssl_key_file": "/path/to/private.key"
}
}After enabling SSL, access the portals using https:// instead of http://.
Production Certificates
For production use, obtain a certificate from a trusted Certificate Authority (CA):
- Let's Encrypt — Free, automated certificates. Ideal for internet-facing deployments.
- Commercial CA — Certificates from providers such as DigiCert, GlobalSign, or Sectigo. Recommended for enterprise environments with specific compliance requirements.
Place the certificate and key files in a secure location and update the ssl_cert_file and ssl_key_file paths in your configuration.
WARNING
Self-signed certificates are suitable for internal or testing environments only. For production deployments exposed to external networks, use a certificate from a trusted Certificate Authority.
TLS for TCP Channels
You can also enable TLS encryption for individual TCP channel pairs. In the channel configuration, enable TLS and specify the certificate and key paths:
json
{
"tls_enabled": true,
"tls_cert_file": "/path/to/channel_cert.pem",
"tls_key_file": "/path/to/channel_key.pem"
}This encrypts the data flowing between ioBufferPro and the remote TCP endpoint.
Storage Settings
Configure storage limits and backup behavior:
json
{
"storage": {
"database": "data/ipbuffer.db",
"max_storage_mb": 1000,
"backup_enabled": true,
"backup_interval_hours": 24
}
}| Setting | Default | Description |
|---|---|---|
database | data/ipbuffer.db | Path to the database file |
max_storage_mb | 1000 | Maximum database size in megabytes |
backup_enabled | true | Enable automatic database backups |
backup_interval_hours | 24 | Hours between automatic backups |
TIP
Monitor your storage usage through the Management Dashboard. When the database approaches the configured maximum size, ioBufferPro will log warnings. Consider increasing the limit or archiving old data if you see these warnings frequently.
Security Settings
Configure session management and account protection:
json
{
"security": {
"session_timeout_hours": 8,
"max_failed_attempts": 5,
"password_min_length": 8
}
}| Setting | Default | Description |
|---|---|---|
session_timeout_hours | 8 | Automatically log out inactive sessions after this many hours |
max_failed_attempts | 5 | Lock the account after this many consecutive failed login attempts |
password_min_length | 8 | Minimum number of characters required for user passwords |
TIP
For high-security environments, consider reducing the session timeout and increasing the minimum password length. A session timeout of 1-2 hours and a minimum password length of 12 characters are common recommendations.
Logging
ioBufferPro supports configurable log levels and automatic log rotation.
Log Levels
Set the log verbosity in the configuration file:
json
{
"logging": {
"level": "INFO",
"max_size_mb": 50,
"max_files": 10
}
}Available log levels, from most to least verbose:
| Level | Description |
|---|---|
DEBUG | Detailed diagnostic information. Use for troubleshooting only — generates large volumes of output. |
INFO | General operational events: startup, shutdown, connections, message flow. Recommended for production. |
WARNING | Unexpected situations that do not prevent operation, such as connection retries or approaching storage limits. |
ERROR | Failures that affect specific operations, such as a channel failing to connect or a message delivery error. |
CRITICAL | Severe failures that may prevent the system from operating, such as database corruption or out-of-memory conditions. |
Log Rotation
| Setting | Default | Description |
|---|---|---|
max_size_mb | 50 | Maximum size of a single log file before rotation |
max_files | 10 | Number of rotated log files to retain |
When a log file reaches the configured maximum size, it is rotated automatically. Older log files beyond the retention count are deleted to free disk space.
Environment Variables
ioBufferPro supports the following environment variable for overriding the default data directory:
| Variable | Description | Default |
|---|---|---|
IOBUFFERPRO_DATA_DIR | Custom path for the data directory (database, backups, logs) | <executable_directory>/data |
Example (Windows PowerShell):
powershell
$env:IOBUFFERPRO_DATA_DIR = "D:\ioBufferPro\data"
.\ioBufferPro.exeTIP
Using a custom data directory is useful when you want to store the database on a separate drive (e.g., an SSD) or a network-mounted volume for centralized backups.
Backup and Restore
Automatic Backups
Automatic backups are enabled by default. ioBufferPro creates a backup of the database every 24 hours and stores it in the backups/ directory.
| Setting | Default |
|---|---|
| Enabled | true |
| Interval | Every 24 hours |
| Location | backups/ |
Backup files are timestamped so you can identify and restore from any previous backup point.
Manual Backup
To create a manual backup at any time, copy the database file:
powershell
Copy-Item data\ipbuffer.db backups\manual_backup.dbWARNING
Always create a manual backup before performing upgrades, making major configuration changes, or migrating to new hardware.
Restoring from a Backup
To restore the database from a backup:
Stop ioBufferPro by closing the application or stopping the service.
Replace the database with the backup:
powershellCopy-Item backups\manual_backup.db data\ipbuffer.dbDelete any temporary database files to prevent conflicts:
powershellRemove-Item data\ipbuffer.db-wal, data\ipbuffer.db-shm -ErrorAction SilentlyContinueStart ioBufferPro again.
DANGER
Deleting the temporary database files is critical when restoring from a backup. If stale temporary files from a different database state are present, the database may become corrupted.
Deployment Checklist
Use this checklist to verify that your ioBufferPro deployment is properly configured for production:
- [ ] Changed the default
adminpassword - [ ] Set a meaningful system name in the configuration
- [ ] Configured the correct timezone
- [ ] Reviewed and adjusted network port bindings
- [ ] Configured host binding (
0.0.0.0vs127.0.0.1) based on access requirements - [ ] Enabled SSL/TLS for the web portals (production deployments)
- [ ] Installed a trusted SSL certificate (if internet-facing)
- [ ] Configured firewall rules to restrict portal access
- [ ] Reviewed storage limits and backup settings
- [ ] Verified automatic backups are enabled and the backup directory has sufficient space
- [ ] Set the appropriate log level for your environment
- [ ] Created individual user accounts (avoid sharing the
adminaccount) - [ ] Tested channel pair creation and message flow
Next Steps
With your configuration complete, explore these topics to get the most out of ioBufferPro:
- Features — Learn about advanced channel pair options, buffering strategies, and protocol support
- Troubleshooting — Resolve common issues and review diagnostic steps