Skip to content

appliedrelevance/epibus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

IntralogisticsAI

Industrial Automation Platform for Modern Logistics

IntralogisticsAI is a comprehensive industrial automation platform that combines enterprise resource planning (ERP) with real-time programmable logic controller (PLC) integration. Built on the proven Frappe/ERPNext foundation, it delivers seamless connectivity between business processes and industrial automation systems.

πŸš€ Features

  • Enterprise ERP: Complete business management with Frappe/ERPNext
  • Industrial Integration: Real-time PLC communication via MODBUS TCP
  • Visual Programming: OpenPLC environment for ladder logic development
  • Real-time Monitoring: Live dashboard for industrial signals and processes
  • Containerized Deployment: Docker-based architecture for easy scaling
  • Educational Ready: Perfect for logistics and automation education

πŸ—οΈ Architecture

IntralogisticsAI integrates multiple components:

  • EpiBus: Custom Frappe app providing MODBUS/TCP communication
  • OpenPLC: Industrial programming environment with MODBUS TCP server
  • PLC Bridge: Real-time communication service between ERP and PLCs
  • React Dashboard: Modern frontend for monitoring industrial processes

🚦 Quick Start

Prerequisites

Windows Users:

Installation

  1. Clone the repository

    git clone https://github.com/appliedrelevance/intralogisticsai
    cd intralogisticsai
  2. Configure environment

    cp example.env .env
    # The .env file is pre-configured with optimal settings
  3. Deploy the complete stack

    # Complete industrial automation platform
    ./deploy.sh with-plc
    
    # Training lab environment with custom domains
    ./deploy.sh lab
    
    # Web deployment with real domains
    ./deploy.sh web [yourdomain.com]

The deployment script will:

  • βœ… Auto-detect your platform (macOS Intel/ARM, Linux)
  • βœ… Build custom Docker images with EpiBus integration (with smart caching)
  • βœ… Deploy Frappe/ERPNext ERP system with network resilience
  • βœ… Install and configure EpiBus automation app (with retry logic)
  • βœ… Start OpenPLC simulator with MODBUS TCP server
  • βœ… Initialize PLC Bridge for real-time communication
  • βœ… Create site (intralogistics.localhost) with admin user
  • βœ… Configure all networking and dependencies

First deployment: ~5-10 minutes
Subsequent deployments: ~1-2 minutes (using cached images)

🌐 Access Points

After deployment, access the platform:

  • IntralogisticsAI Web Interface: http://localhost:[port] (shown in deployment output)
  • OpenPLC Programming Environment: http://localhost:[port] (shown in deployment output)
  • Login Credentials: Username Administrator, Password admin
  • OpenPLC Credentials: Username openplc, Password openplc

πŸ“Š Using the Platform

ERP Operations

  1. Access the web interface and login
  2. Navigate to standard ERPNext modules (Sales, Inventory, etc.)
  3. Use the EpiBus module for industrial automation features

PLC Programming

  1. Access OpenPLC web interface
  2. Create ladder logic programs
  3. Upload and start programs to activate MODBUS TCP server
  4. Monitor real-time I/O through the web interface

Industrial Integration

  1. Configure MODBUS connections in EpiBus
  2. Define signal mappings between ERP and PLC
  3. Set up automated actions triggered by ERP events
  4. Monitor real-time data flow in the dashboard

πŸ”§ Deployment Options

The deployment script includes smart image caching and cross-platform support with automatic retry logic for network issues.

Training Lab Environment (Recommended for Education)

# Quick deployment (uses cached images)
./deploy.sh lab

# Force rebuild (rebuilds all images)
./deploy.sh lab --rebuild

Complete training lab with custom domains and real PLC connectivity:

  • ERPNext Interface: http://intralogistics.lab
  • OpenPLC Simulator: http://openplc.intralogistics.lab
  • Traefik Dashboard: http://dashboard.intralogistics.lab
  • MODBUS TCP: localhost:502 (for real PLC connections)
  • PLC Bridge: localhost:7654 (real-time events)

Configure local domains in /etc/hosts:

127.0.0.1 intralogistics.lab openplc.intralogistics.lab dashboard.intralogistics.lab

Web Deployment (Production)

# Deploy with default domain (intralogisticsai.online)
./deploy.sh web

# Deploy with custom domain
./deploy.sh web yourdomain.com

# Force rebuild
./deploy.sh web yourdomain.com --rebuild

Production deployment with real domain and subdomains:

  • ERPNext Interface: http://yourdomain.com
  • OpenPLC Simulator: http://openplc.yourdomain.com
  • Traefik Dashboard: http://dashboard.yourdomain.com
  • MODBUS TCP: yourdomain.com:502 (for real PLC connections)
  • PLC Bridge: yourdomain.com:7654 (real-time events)

Complete Industrial Stack

# Smart deployment with caching
./deploy.sh with-plc

# Force fresh build
./deploy.sh with-plc --rebuild

Includes ERP, PLC simulator, and all automation features with platform-aware optimizations.

EpiBus Only

./deploy.sh with-epibus

ERP with automation capabilities, no PLC simulator.

Basic ERP

./deploy.sh

Standard Frappe/ERPNext without industrial features.

Deployment Features

  • βœ… Smart Image Caching: Skips rebuilds when images exist (5-10min β†’ 1-2min)
  • βœ… Cross-Platform Support: Auto-detects macOS (Intel/ARM) and Linux
  • βœ… Network Resilience: 3-attempt retry logic for network timeouts
  • βœ… Docker Health Checks: Automatic Docker restart if needed
  • βœ… Robust EpiBus Installation: 60-attempt retry with intelligent backoff

Deployment Flags

# View all options and examples
./deploy.sh --help

# Force rebuild of custom images
./deploy.sh lab --rebuild
./deploy.sh with-plc --force-rebuild

πŸ› οΈ Development

For development and customization:

# View service logs
docker compose logs -f backend
docker compose logs -f plc-bridge
docker compose logs -f openplc

# Access backend container
docker compose exec backend bash

# Reset and redeploy
docker compose down --volumes
./deploy.sh with-plc

πŸ“š Documentation

πŸŽ“ Educational Use

IntralogisticsAI is designed for educational institutions teaching:

  • Industrial automation and control systems
  • Logistics and supply chain management
  • Enterprise resource planning (ERP)
  • MODBUS communication protocols
  • Docker containerization and microservices

πŸ“„ License

This project builds upon several open-source components:

See LICENSE for complete license information.

🏒 About

IntralogisticsAI is developed by Applied Relevance for educational and industrial applications. It bridges the gap between enterprise software and industrial automation, making advanced logistics concepts accessible for learning and implementation.


Ready to revolutionize your industrial automation education? πŸš€

Get started with IntralogisticsAI today!

About

Epinomy Modbus interface module

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 92