Skip to content

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.json

On startup, ioBufferPro searches for the configuration file in the following order:

  1. <executable_directory>/config/ipbuffer_config.json
  2. <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:

SettingDefaultPurpose
Web Port8080Operations Portal — channel monitoring and live message flow
Management Port8081Management Dashboard — system configuration and administration
Host Binding0.0.0.0Network interface to listen on

Host Binding

The host setting controls which network interfaces ioBufferPro listens on:

ValueBehaviorUse Case
0.0.0.0Listens on all network interfacesAccess from any device on the network
127.0.0.1Listens on localhost onlyRestrict 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
  }
}
SettingDefaultDescription
databasedata/ipbuffer.dbPath to the database file
max_storage_mb1000Maximum database size in megabytes
backup_enabledtrueEnable automatic database backups
backup_interval_hours24Hours 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
  }
}
SettingDefaultDescription
session_timeout_hours8Automatically log out inactive sessions after this many hours
max_failed_attempts5Lock the account after this many consecutive failed login attempts
password_min_length8Minimum 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:

LevelDescription
DEBUGDetailed diagnostic information. Use for troubleshooting only — generates large volumes of output.
INFOGeneral operational events: startup, shutdown, connections, message flow. Recommended for production.
WARNINGUnexpected situations that do not prevent operation, such as connection retries or approaching storage limits.
ERRORFailures that affect specific operations, such as a channel failing to connect or a message delivery error.
CRITICALSevere failures that may prevent the system from operating, such as database corruption or out-of-memory conditions.

Log Rotation

SettingDefaultDescription
max_size_mb50Maximum size of a single log file before rotation
max_files10Number 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:

VariableDescriptionDefault
IOBUFFERPRO_DATA_DIRCustom path for the data directory (database, backups, logs)<executable_directory>/data

Example (Windows PowerShell):

powershell
$env:IOBUFFERPRO_DATA_DIR = "D:\ioBufferPro\data"
.\ioBufferPro.exe

TIP

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.

SettingDefault
Enabledtrue
IntervalEvery 24 hours
Locationbackups/

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.db

WARNING

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:

  1. Stop ioBufferPro by closing the application or stopping the service.

  2. Replace the database with the backup:

    powershell
    Copy-Item backups\manual_backup.db data\ipbuffer.db
  3. Delete any temporary database files to prevent conflicts:

    powershell
    Remove-Item data\ipbuffer.db-wal, data\ipbuffer.db-shm -ErrorAction SilentlyContinue
  4. Start 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 admin password
  • [ ] Set a meaningful system name in the configuration
  • [ ] Configured the correct timezone
  • [ ] Reviewed and adjusted network port bindings
  • [ ] Configured host binding (0.0.0.0 vs 127.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 admin account)
  • [ ] 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

ioBufferPro Documentation