Kiosk Configuration Guide

Complete guide to configuring and customizing the EyeOn Kiosk Application

Kiosk Configuration

The EyeOn Kiosk Application offers extensive configuration options to customize the experience for your specific shopping center needs. From API integration settings to display customization, this guide covers all aspects of kiosk configuration and optimization.

Configuration is managed through both the Portal CMS interface and local kiosk settings files. Most settings can be updated remotely through the Portal CMS, while some system-level configurations require direct access to the kiosk hardware.

EyeOn Kiosk Application configuration interface showing settings and options

EyeOn Kiosk Application - Configuration and customization options

Configuration Types

Different types of configuration and where they are managed

Portal CMS Configuration

Settings managed through the Portal CMS web interface

  • Store information and locations
  • Mall hours and contact details
  • Promotions and events content
  • Map layout and store positioning
  • Branding and visual customization
  • Content scheduling and management

Local Kiosk Settings

System-level settings configured directly on the kiosk

  • API connection parameters
  • Display and touch screen settings
  • Network configuration
  • Accessibility options
  • Performance and caching settings
  • Error handling and logging

Runtime Configuration

Settings that can be updated without restarting the application

  • Content refresh intervals
  • Display brightness and contrast
  • Touch sensitivity settings
  • Accessibility mode toggles
  • Language and localization
  • Feature enable/disable options

API Configuration

Configure connection to Portal CMS APIs and external services:

Portal CMS API Base URL

RequiredConnection

Base URL for all Portal CMS API endpoints

Example:https://api.eyeonllc.com/v1
File: config/api.json
Key: baseUrl
Type: string
Validation: URL format validation

Center ID

RequiredConnection

Unique identifier for your shopping center

Example:center_12345
File: config/api.json
Key: centerId
Type: string
Validation: Alphanumeric with underscore

API Key

RequiredAuthentication

Authentication key for API access

Example:ak_1234567890abcdef
File: config/api.json
Key: apiKey
Type: string
Validation: API key format validation

Content Update Interval

Performance

How often to check for content updates (in minutes)

Example:5
File: config/api.json
Key: updateInterval
Type: number
Validation: Positive integer, minimum 1

Connection Timeout

Performance

API connection timeout in seconds

Example:30
File: config/api.json
Key: timeout
Type: number
Validation: Positive integer, maximum 300

Retry Attempts

Reliability

Number of retry attempts for failed requests

Example:3
File: config/api.json
Key: retryAttempts
Type: number
Validation: Integer between 0 and 10

Offline Mode

Reliability

Enable offline operation when API unavailable

Example:true
File: config/api.json
Key: offlineMode
Type: boolean
Validation: Boolean value

Display Configuration

Configure display settings, touch screen, and visual appearance:

Screen Resolution

RequiredDisplay

Display resolution for the kiosk

Example:1920x1080 or 3840x2160
File: config/display.json
Key: resolution
Type: string
Validation: Valid resolution format (WIDTHxHEIGHT)

Touch Calibration

RequiredTouch

Touch screen calibration settings

Example:auto-detect or manual
File: config/display.json
Key: touchCalibration
Type: string
Validation: auto-detect or manual

Brightness Level

Display

Screen brightness percentage

Example:80
File: config/display.json
Key: brightness
Type: number
Validation: Integer between 10 and 100

Contrast Level

Display

Screen contrast percentage

Example:75
File: config/display.json
Key: contrast
Type: number
Validation: Integer between 10 and 100

Accessibility Mode

Accessibility

Enable accessibility features

Example:true
File: config/display.json
Key: accessibilityMode
Type: boolean
Validation: Boolean value

High Contrast Mode

Accessibility

Enable high contrast display

Example:false
File: config/display.json
Key: highContrast
Type: boolean
Validation: Boolean value

Font Size

Display

Base font size for text elements

Example:16
File: config/display.json
Key: fontSize
Type: number
Validation: Integer between 12 and 24

Network Configuration

Configure network settings and connectivity options:

Network Interface

RequiredNetwork

Primary network interface to use

Example:eth0 or wlan0
File: config/network.json
Key: interface
Type: string
Validation: Valid network interface name

Static IP Address

Network

Static IP address for the kiosk

Example:192.168.1.100
File: config/network.json
Key: staticIp
Type: string
Validation: Valid IPv4 address

Gateway Address

Network

Gateway IP address

Example:192.168.1.1
File: config/network.json
Key: gateway
Type: string
Validation: Valid IPv4 address

DNS Servers

Network

DNS server addresses

Example:8.8.8.8,8.8.4.4
File: config/network.json
Key: dnsServers
Type: array
Validation: Array of valid IPv4 addresses

Proxy Server

Network

Proxy server configuration if required

Example:http://proxy.company.com:8080
File: config/network.json
Key: proxy
Type: string
Validation: Valid URL format

WiFi Configuration

Network

WiFi network settings

Example:SSID and password
File: config/network.json
Key: wifi
Type: object
Validation: WiFi credentials object

Content Configuration

Configure content display, caching, and update settings:

Content Cache Duration

Performance

How long to cache content locally (in minutes)

Example:60
File: config/content.json
Key: cacheDuration
Type: number
Validation: Positive integer, minimum 5

Image Quality

Performance

Image compression quality (1-100)

Example:85
File: config/content.json
Key: imageQuality
Type: number
Validation: Integer between 1 and 100

Preload Images

Performance

Preload images for faster display

Example:true
File: config/content.json
Key: preloadImages
Type: boolean
Validation: Boolean value

Content Refresh Strategy

Content

How to refresh content when updates are available

Example:immediate or scheduled
File: config/content.json
Key: refreshStrategy
Type: string
Validation: immediate or scheduled

Fallback Content

Reliability

Enable fallback content when API is unavailable

Example:true
File: config/content.json
Key: fallbackContent
Type: boolean
Validation: Boolean value

Security Configuration

Configure security settings and access controls:

HTTPS Only

Security

Force HTTPS connections only

Example:true
File: config/security.json
Key: httpsOnly
Type: boolean
Validation: Boolean value

API Key Rotation

Security

Enable automatic API key rotation

Example:false
File: config/security.json
Key: keyRotation
Type: boolean
Validation: Boolean value

Content Validation

Security

Validate content integrity before display

Example:true
File: config/security.json
Key: contentValidation
Type: boolean
Validation: Boolean value

Logging Level

Security

Level of logging detail

Example:info
File: config/security.json
Key: loggingLevel
Type: string
Validation: debug, info, warn, error

Configuration Files

Understanding the configuration file structure and management:

config/api.json

644 (readable by kiosk user)

API connection and authentication settings

Location:/opt/eyeon-kiosk/config/api.json
Example Configuration:
{
  "baseUrl": "https://api.eyeonllc.com/v1",
  "centerId": "center_12345",
  "apiKey": "ak_1234567890abcdef",
  "updateInterval": 5,
  "timeout": 30,
  "retryAttempts": 3,
  "offlineMode": true
}

config/display.json

644 (readable by kiosk user)

Display and touch screen settings

Location:/opt/eyeon-kiosk/config/display.json
Example Configuration:
{
  "resolution": "1920x1080",
  "touchCalibration": "auto-detect",
  "brightness": 80,
  "contrast": 75,
  "accessibilityMode": false,
  "highContrast": false,
  "fontSize": 16
}

config/network.json

644 (readable by kiosk user)

Network and connectivity settings

Location:/opt/eyeon-kiosk/config/network.json
Example Configuration:
{
  "interface": "eth0",
  "staticIp": "192.168.1.100",
  "gateway": "192.168.1.1",
  "dnsServers": [
    "8.8.8.8",
    "8.8.4.4"
  ],
  "proxy": null,
  "wifi": {
    "ssid": "MallWiFi",
    "password": "encrypted_password"
  }
}

config/content.json

644 (readable by kiosk user)

Content display and caching settings

Location:/opt/eyeon-kiosk/config/content.json
Example Configuration:
{
  "cacheDuration": 60,
  "imageQuality": 85,
  "preloadImages": true,
  "refreshStrategy": "immediate",
  "fallbackContent": true
}

config/security.json

600 (readable only by kiosk user)

Security and access control settings

Location:/opt/eyeon-kiosk/config/security.json
Example Configuration:
{
  "httpsOnly": true,
  "keyRotation": false,
  "contentValidation": true,
  "loggingLevel": "info"
}

Configuration Methods

Different ways to configure and update kiosk settings:

center-portal

Configure most settings through the Portal CMS web interface

Advantages:

  • User-friendly web interface
  • Real-time updates without kiosk access
  • Centralized management for multiple kiosks
  • Version control and change tracking
  • Role-based access control

Limitations:

  • Requires internet connectivity
  • Some system-level settings not available
  • Changes may take time to propagate

Applicable Settings:

Store information and locationsMall hours and contact detailsPromotions and events contentMap layout and store positioningBranding and visual customization

content

Direct editing of configuration files on the kiosk

Advantages:

  • Full control over all settings
  • Immediate changes take effect
  • No internet connectivity required
  • Advanced configuration options available

Limitations:

  • Requires direct access to kiosk
  • Risk of configuration errors
  • No centralized management
  • Requires technical knowledge

Applicable Settings:

API connection parametersDisplay and touch screen settingsNetwork configurationPerformance and caching settingsSecurity and access controls

kiosk

Use command line tools for configuration management

Advantages:

  • Automated configuration scripts
  • Bulk configuration updates
  • Integration with deployment tools
  • Version control integration

Limitations:

  • Requires technical expertise
  • Risk of configuration errors
  • No validation through UI

Applicable Settings:

System-level configurationsBulk setting updatesAutomated deploymentConfiguration backups and restores

Configuration Validation

Ensuring configuration settings are valid and properly applied:

1

Syntax Validation

Check configuration file syntax and format

Commands:

  • 1.Validate JSON syntax: python -m json.tool config/api.json
  • 2.Check file permissions: ls -la config/
  • 3.Verify file ownership: ls -la config/ | grep kiosk
2

Value Validation

Validate configuration values and ranges

Commands:

  • 1.Test API connectivity: curl -H 'Authorization: Bearer $API_KEY' $BASE_URL/health
  • 2.Validate network settings: ping -c 1 $GATEWAY
  • 3.Check display settings: xrandr --query
3

Application Testing

Test application with new configuration

Commands:

  • 1.Restart application: sudo systemctl restart eyeon-kiosk
  • 2.Check application logs: journalctl -u eyeon-kiosk -f
  • 3.Test functionality: curl http://localhost:3000/health
4

Performance Validation

Ensure configuration doesn't impact performance

Commands:

  • 1.Monitor resource usage: htop
  • 2.Check memory usage: free -h
  • 3.Test response times: time curl $API_URL

Backup & Recovery

Configuration backup and recovery procedures

Backup Strategy

Regular backup of configuration files and settings:

  1. 1.Create backup directory: sudo mkdir -p /opt/eyeon-kiosk/backups
  2. 2.Backup configuration files: sudo cp -r config/ backups/config-$(date +%Y%m%d)/
  3. 3.Backup system settings: sudo cp /etc/systemd/system/eyeon-kiosk.service backups/
  4. 4.Create configuration archive: sudo tar -czf backups/kiosk-config-$(date +%Y%m%d).tar.gz config/
  5. 5.Schedule regular backups: Add to crontab for daily backups

Recovery Process

Steps to recover from configuration issues:

  1. 1.Stop the application: sudo systemctl stop eyeon-kiosk
  2. 2.Restore configuration files: sudo cp -r backups/config-YYYYMMDD/* config/
  3. 3.Restore system service: sudo cp backups/eyeon-kiosk.service /etc/systemd/system/
  4. 4.Reload systemd: sudo systemctl daemon-reload
  5. 5.Start the application: sudo systemctl start eyeon-kiosk
  6. 6.Verify functionality: Check application logs and test features

Configuration Troubleshooting

Common configuration issues and their solutions:

API connection failed after configuration change

Solution:

Check API base URL, center ID, and API key. Verify network connectivity and firewall settings.

Prevention:

Test API connectivity before saving configuration changes

Display issues after resolution change

Solution:

Verify resolution is supported by display. Check xrandr output for available resolutions.

Prevention:

Test display settings in a non-kiosk environment first

Touch screen not responding after calibration change

Solution:

Reset touch calibration to auto-detect. Check touch screen drivers and USB connections.

Prevention:

Test touch calibration before deploying to production

Application won't start after configuration update

Solution:

Check configuration file syntax. Verify all required fields are present and valid.

Prevention:

Validate configuration files before restarting application

Content not updating after API configuration

Solution:

Verify API credentials and endpoints. Check content update interval settings.

Prevention:

Test API integration thoroughly before deployment

Best Practices

Recommended practices for kiosk configuration management

Configuration Management

  • Always backup configuration before making changes
  • Test configuration changes in a development environment first
  • Document all configuration changes and their purposes
  • Use version control for configuration files when possible
  • Regularly validate configuration settings and performance

Security

  • Use secure file permissions for sensitive configuration files
  • Encrypt sensitive data like API keys and passwords
  • Regularly rotate API keys and update credentials
  • Monitor configuration changes and access logs
  • Implement proper access controls for configuration management

Performance

  • Optimize configuration settings for your specific hardware
  • Monitor performance impact of configuration changes
  • Use appropriate caching settings for your content
  • Test configuration under load conditions
  • Regularly review and optimize configuration settings

Reliability

  • Implement fallback configurations for critical settings
  • Use configuration validation to prevent errors
  • Monitor application health after configuration changes
  • Have rollback procedures ready for configuration issues
  • Test disaster recovery procedures regularly

Ready to Configure Your Kiosk?

Follow this configuration guide to optimize your kiosk settings and ensure optimal performance.

View Troubleshooting Guide