# Virtual PLC Platform - Technical Implementation Guide *Detailed technical architecture for applying ZLH platform model to industrial automation* --- ## Executive Summary This document outlines the technical implementation strategy for building a multi-tenant virtual PLC/SCADA hosting platform using proven LXC container architecture (from ZeroLagHub) applied to industrial automation. **Core Concept:** Take ZLH's architecture (LXC containers, multi-tenant hosting, automated pipelines) and apply it to **virtual PLC/SCADA hosting** for manufacturers. --- ## Platform Architecture Overview ### Business Model Tiers **ZLH Gaming Model (Reference):** ``` Dev Container → Test Container → Production Container ($10/mo) ($20/mo) ($50/mo game server) ``` **Industrial Platform Model:** ``` Dev/Simulation → Test/Commissioning → Production PLC ($500/mo) ($1,500/mo) ($2,500/mo + monitoring) ``` ### Revenue Model Comparison **ZLH (Gaming):** - Avg customer: $50-150/month - Customers needed for $10k MRR: 70-200 customers - Customer acquisition: Hard (gaming is saturated) - Churn risk: High (indie devs quit projects) **Industrial Platform:** - Avg customer: $2,000-5,000/month - Customers needed for $10k MRR: 2-5 customers - Customer acquisition: Moderate (smaller target market, hungry for solutions) - Churn risk: Low (manufacturers don't switch easily) --- ## Infrastructure Architecture ### Hosting Platform: GTHost Dedicated Servers **Available Specs:** - **Pricing**: $59-500/month depending on configuration - **RAM**: 8GB to 1TB+ - **CPU**: Intel Xeon, AMD EPYC (4-32+ cores) - **GPU**: Available for specialized workloads - **Network**: Unmetered bandwidth, 1Gbps+ - **Locations**: 21+ datacenters (USA, Canada, Europe) - **Setup**: 5-15 minutes instant activation - **Contracts**: Month-to-month (no long-term lock-in) - **Trial**: $5/day for up to 10 days ### Multi-Tenant Server Configuration **Example: Single GTHost Server Setup** ``` Total Server: 32 cores, 64GB RAM, 2TB SSD ├── ZLH Platform: 8 cores, 16GB RAM (gaming customers) │ ├── Customer A: Minecraft server (2 cores, 4GB) │ ├── Customer B: Rust server (4 cores, 8GB) │ └── Customer C: 7DTD server (2 cores, 4GB) │ ├── Industrial Platform: 8 cores, 16GB RAM (virtual PLCs) │ ├── Client A: Virtual PLC + monitoring (4 cores, 8GB) │ └── Development/Testing: Internal dev work (4 cores, 8GB) │ └── Shared Services: 4 cores, 8GB RAM ├── API layer (handles both gaming + industrial) ├── Monitoring (Grafana/Prometheus) ├── Databases (PostgreSQL for both) └── Reverse proxy (Caddy/Nginx) ``` **Cost:** $200-300/month for single server serving both businesses --- ## Container Platform: LXC ### Why LXC Over Docker **Advantages:** - ✅ Lower overhead (runs closer to bare metal) - ✅ Better for long-running services (MQTT, databases, PLCs) - ✅ Simpler networking (bridge vs overlay) - ✅ Proven from ZeroLagHub experience - ✅ Less complexity than Kubernetes - ✅ Real-time capable (lower latency) **Disadvantages:** - ❌ Less popular than Docker (smaller community) - ❌ Fewer pre-built images - ❌ Manual setup required **Decision:** Use LXC for multi-tenant platform, Docker for customer edge deployments (easier for customers to maintain) ### LXC Container Template (Per Customer) ``` Customer Container (LXC): ├── Ubuntu 24.04 minimal ├── Mosquitto MQTT broker (isolated) ├── InfluxDB (isolated database) ├── Grafana (customer-specific dashboards) ├── Node-RED (optional, for advanced workflows) ├── Virtual PLC runtime (CODESYS or OpenPLC) ├── Backup agent (automated daily) └── Resource limits (CPU, RAM, disk) ``` **Resource Allocation per Customer:** - CPU: 1-2 cores (burstable) - RAM: 2-4GB - Disk: 50-100GB - Network: Shared 1Gbps **Capacity Planning:** - 8-10 basic customers per server - 5-8 customers if heavy data volume - Monitor: CPU, RAM, disk I/O, network --- ## Virtual PLC Software Options ### Option 1: CODESYS Virtual Control (Commercial) **Overview:** - Industry standard (30 years, millions of installs) - IEC 61131-3 certified - Hardware-independent, container-based - ISO 61508 SIL3 certified (June 2024) **Pricing:** - $99-499/month per runtime instance - One-time licenses: $5k-15k + support **Pros:** - ✅ Industry standard - customers trust it - ✅ Proven reliability - ✅ Comprehensive documentation - ✅ Large ecosystem - ✅ Safety certifications **Cons:** - ❌ Licensing costs per customer - ❌ Vendor dependency - ❌ Annual fees **Best For:** - Premium tier customers - Regulated industries - Customers requiring certifications - Enterprise clients ### Option 2: OpenPLC (Open Source) **Overview:** - Open-source soft PLC - IEC 61131-3 compliant - Runs on Linux, Windows, Raspberry Pi - Web-based programming interface - No licensing costs **Pricing:** - $0 (GPL license) - Free forever **Pros:** - ✅ Zero licensing costs (100% margin) - ✅ Full control over code - ✅ Active community - ✅ Can customize for customers - ✅ Web-based interface **Cons:** - ❌ Not safety-certified (use for non-critical only) - ❌ Smaller ecosystem than CODESYS - ❌ Less mature - ❌ You provide all support **Best For:** - Budget-conscious customers - Non-safety-critical applications - Development/testing environments - Monitoring-only deployments **Installation:** ```bash git clone https://github.com/thiagoralves/OpenPLC_v3.git cd OpenPLC_v3 ./install.sh ``` ### Option 3: Hybrid Approach (Recommended) **Strategy:** - **Tier 1 (Dev/Simulation)**: Use OpenPLC ($0 cost) - **Tier 2 (Virtual Commissioning)**: OpenPLC or CODESYS based on needs - **Tier 3 (Production)**: CODESYS for critical, OpenPLC for monitoring **Benefits:** - Maximize margins on lower tiers - Offer upgrade path to certified solution - Customer choice based on requirements - Flexibility for different industries --- ## SCADA/HMI Software Stack ### Option 1: Node-RED (Recommended for Most) **Overview:** - Visual programming / flow-based development - Low-code platform - Extensive plugin ecosystem - Built-in web dashboard **Pricing:** $0 (Apache 2.0 license) **Pros:** - ✅ Zero cost - ✅ Very fast development - ✅ Customer can see/modify flows - ✅ Modern web interface - ✅ Integrates with everything (MQTT, Modbus, OPC-UA) - ✅ Built-in dashboard creator **Cons:** - ❌ Not "industrial" looking (can be styled) - ❌ Limited real-time capabilities - ❌ No built-in alarming (add custom) **Best For:** - 80% of customers - Quick deployments - Budget-conscious clients - Monitoring applications **Key Plugins:** ``` node-red-contrib-modbus # Modbus TCP/RTU node-red-contrib-opcua # OPC UA client node-red-contrib-s7 # Siemens S7 node-red-dashboard # UI widgets node-red-contrib-influxdb # Database ``` **Installation:** ```bash sudo apt update sudo apt install nodejs npm sudo npm install -g node-red sudo npm install -g pm2 pm2 start node-red pm2 save pm2 startup ``` ### Option 2: RapidSCADA (Professional) **Overview:** - Full-featured open-source SCADA - Modular architecture - Industrial-grade alarming - Built-in historian **Pricing:** $0 (Apache 2.0 license) **Pros:** - ✅ Professional appearance - ✅ Industrial features (alarming, trending, reporting) - ✅ Multi-user access control - ✅ Scalable architecture - ✅ Looks like "real" SCADA **Cons:** - ❌ Steeper learning curve - ❌ More complex to deploy - ❌ Slower development vs Node-RED **Best For:** - Enterprise customers - Complex processes - Need professional appearance - Regulated industries **Installation:** ```bash wget rapidscada.org/download/rapidscada-installer.run chmod +x rapidscada-installer.run sudo ./rapidscada-installer.run ``` ### Option 3: Grafana (Visualization Layer) **Overview:** - Modern dashboarding platform - Time-series visualization - Alerting capabilities - Multi-datasource support **Pricing:** $0 (AGPL license) **Pros:** - ✅ Beautiful, modern UI - ✅ Customers often familiar with it - ✅ Excellent time-series visualization - ✅ Built-in alerting - ✅ Mobile-friendly **Cons:** - ❌ Not a control interface (monitoring only) - ❌ Limited HMI-style features - ❌ Requires separate data source **Best For:** - Dashboard/visualization layer - Monitoring applications - Analytics and trending - Management reporting **Stack:** Grafana + InfluxDB + MQTT --- ## Complete Software Stack Options ### Stack A: "The Lightweight Solution" ($0 software cost) **Target:** 80% of customers, quick deployments **Components:** ``` OS: Ubuntu 24.04 LTS Container: LXC PLC: OpenPLC (if needed) HMI: Node-RED Dashboard Visualization: Grafana Database: InfluxDB MQTT Broker: Mosquitto Protocols: Modbus, OPC-UA (via Node-RED) ``` **Development Time:** 1-2 days to build custom HMI **Best For:** - Quick deployments - Simple monitoring - Budget-conscious customers - Non-safety-critical applications **Gross Margin:** 98%+ (only server costs) --- ### Stack B: "The Professional Solution" ($380/year per customer) **Target:** Premium customers, regulated industries **Components:** ``` OS: Ubuntu 24.04 LTS + RT-PREEMPT kernel Container: LXC PLC: CODESYS Virtual Control HMI: RapidSCADA Visualization: Grafana Database: PostgreSQL + InfluxDB MQTT Broker: Mosquitto Protocols: All major industrial protocols ``` **Development Time:** 3-5 days initial setup, then reusable templates **Best For:** - Professional installations - Complex processes - Need enterprise features - Regulated industries **Gross Margin:** ~90% (server + CODESYS licensing) --- ### Stack C: "The All-in-One Solution" ($0 software cost) **Target:** Machine builders, OEMs, motion control **Components:** ``` OS: Debian 11 All-in-One: Beremiz (PLC + HMI combined) Database: Built-in Visualization: Built-in SVG editor Protocols: Modbus, CANopen, EtherCAT ``` **Development Time:** 2-3 days learning curve, then fast **Best For:** - Machine builders - Need tight PLC/HMI integration - Motion control applications - All-in-one simplicity **Gross Margin:** 98%+ (only server costs) --- ## Edge Hardware Options (Customer Site) ### Option 1: Raspberry Pi (Not Recommended) **Price:** $35-75 **Pros:** - Very cheap - Large community - Easy to get started **Cons:** - ❌ Unreliable (SD card failures) - ❌ Not industrial-grade - ❌ Power supply issues - ❌ Limited I/O without expansion - ❌ Support nightmare **Verdict:** Too unreliable for production deployments --- ### Option 2: Industrial Mini PC (**RECOMMENDED**) **Examples:** - Protectli Vault - Qotom Mini PC - Topton industrial PC **Price:** $110-250 **Specs:** - Intel Celeron/Core i3/i5 - 4-8GB RAM - 128-256GB SSD (not SD card!) - Multiple Ethernet ports - Fanless (no moving parts) - Wide temperature range - DIN rail mountable **Pros:** - ✅ Reliable (SSD, no SD card) - ✅ Affordable - ✅ Industrial-grade - ✅ Fanless (no fan failures) - ✅ Professional appearance - ✅ x86 compatible (run anything) **Cons:** - More expensive than Raspberry Pi - Requires power brick **Verdict:** **Sweet spot for edge deployments** --- ### Option 3: Certified Industrial PC **Examples:** - Advantech - Siemens SIMATIC IPC - Beckhoff **Price:** $400-1,500+ **Pros:** - ✅ Fully certified - ✅ Long product lifecycle - ✅ Industrial certifications - ✅ Warranty and support **Cons:** - ❌ Expensive - ❌ Overkill for many applications **Best For:** - Enterprise tier customers - Regulated industries - Safety-critical applications --- ## HMI Display Options ### Option 1: No Display (Web-Based) **Cost:** $0 **Approach:** - Operators use tablets/phones/PCs - Access via web browser (HTTPS) - Responsive design **Pros:** - ✅ Zero hardware cost - ✅ BYOD (bring your own device) - ✅ Flexible (any device works) - ✅ Modern approach **Best For:** - Remote monitoring - Mobile workforce - Cost-sensitive deployments --- ### Option 2: 7" Budget Touchscreen **Examples:** - Raspberry Pi Official 7" Touch - Generic 7" HDMI touch displays **Price:** $50-80 **Pros:** - ✅ Affordable - ✅ Compact - ✅ Touch interface - ✅ Good for simple HMI **Cons:** - ❌ Not industrial-grade - ❌ Limited viewing angles - ❌ Not bright enough for direct sunlight **Best For:** - Indoor use - Simple interfaces - Budget deployments --- ### Option 3: 10" Industrial Touchscreen **Examples:** - Industrial panel PCs with touch - Industrial-grade displays **Price:** $200-400 **Pros:** - ✅ Professional appearance - ✅ Industrial certifications - ✅ Bright display - ✅ Wide viewing angles - ✅ Rugged construction **Best For:** - Professional installations - Factory floor use - Enterprise customers --- ### Option 4: Wireless Display (Bluetooth/WiFi) **Cost:** $0 (use existing displays) **Approach:** - Connect edge device to existing monitors/TVs via HDMI - Or use wireless screen sharing - Operators can mirror to phones/tablets **Best For:** - Facilities with existing displays - Flexible deployment - Cost optimization --- ## Data Flow Architecture ### Edge to Cloud Data Pipeline ``` Customer Site (Edge): PLC → Node-RED → MQTT (local edge device) ↓ (Over VPN or direct connection) ↓ GTHost Server (Cloud): MQTT Broker → InfluxDB → Grafana ↓ Alert Engine → Email/SMS ``` ### Multi-Tenant Network Architecture ``` Internet ↓ Caddy Reverse Proxy (TLS termination) ↓ LXC Bridge (internal network) ├── Customer 1 Container (192.168.100.10) ├── Customer 2 Container (192.168.100.11) ├── Customer 3 Container (192.168.100.12) └── ... ``` ### Subdomain Structure - customer1.yourdomain.com → Grafana dashboard - customer2.yourdomain.com → Grafana dashboard - mqtt.yourdomain.com → MQTT broker (port per customer) --- ## Protocol Support ### OT Protocols (Industrial) **Native Support:** - Modbus TCP/RTU - OPC UA - Siemens S7 (via Snap7) - EtherNet/IP (Allen-Bradley) - BACnet (building automation) - Profinet (via OPC UA gateway) **Via Node-RED Plugins:** ``` node-red-contrib-modbus # Modbus node-red-contrib-opcua # OPC UA node-red-contrib-s7 # Siemens node-red-contrib-bacnet # BACnet ``` ### IT Protocols (Integration) - MQTT (primary message bus) - HTTP/REST APIs - HTTPS for dashboards - SMTP for email alerts - Webhooks for integrations --- ## Security Architecture ### Server Hardening **Required:** - [ ] Disable root login (SSH key only) - [ ] Fail2ban configured - [ ] UFW firewall (only necessary ports) - [ ] Automated security updates - [ ] Regular security audits (quarterly) ### Application Security **Required:** - [ ] TLS/SSL everywhere (Let's Encrypt) - [ ] Strong passwords (generated, stored in 1Password) - [ ] API keys rotated (quarterly) - [ ] Container isolation verified - [ ] Database encryption at rest ### Network Security **Edge to Cloud:** - VPN access for edge devices (WireGuard) - Optional: Direct connection over TLS/MQTT - Firewall rules (only necessary ports) - Certificate-based authentication --- ## Backup & Disaster Recovery ### Backup Strategy **Automated Daily Backups (3am UTC):** - Retention: 7 daily, 4 weekly, 12 monthly - Storage: GTHost server + offsite (Wasabi/Backblaze B2) - Encrypted with GPG - Automated restore testing (monthly) **What's Backed Up:** - All customer containers (LXC snapshots) - Databases (InfluxDB, PostgreSQL) - Configuration files - Dashboard definitions - SSL certificates ### Disaster Recovery **Targets:** - RTO (Recovery Time Objective): 4 hours - RPO (Recovery Point Objective): 24 hours - Documented restoration procedure - Annual DR test --- ## Monitoring & Alerting ### Server Monitoring **Internal Stack:** - Prometheus + Grafana (internal monitoring) - Alerts: CPU >80%, RAM >80%, Disk >85% - UptimeRobot (external monitoring) - Optional: PagerDuty for critical alerts **Metrics:** - Per-container resource usage - MQTT connection status - InfluxDB query performance - Grafana dashboard access logs ### Customer Monitoring **Per-Customer Dashboards:** - Edge device connectivity status - Data collection rates - Alert history - System health metrics --- ## Deployment Process ### Customer Onboarding Flow **Phase 1: Planning (Week 1)** 1. Discovery call (understand needs) 2. Site assessment (protocols, I/O requirements) 3. Quote and proposal 4. Contract signing **Phase 2: Setup (Week 2)** 1. Provision LXC container 2. Configure subdomain and SSL 3. Build custom dashboards 4. Integration testing **Phase 3: Edge Deployment (Week 3)** 1. Ship pre-configured edge device 2. Customer installs (plug & play) 3. VPN connection establishes 4. Data begins flowing **Phase 4: Training & Go-Live (Week 4)** 1. Remote training session 2. Documentation handoff 3. Go live 4. 30-day monitoring period **Total Time:** ~1 month per customer --- ## Development Workflow ### Local Development **Workstation Setup:** - Ubuntu 22.04 or macOS - Docker Desktop (for testing containers) - VS Code with extensions: - Python - Docker - YAML - Grafana dashboards **Testing Environment:** - Local LXC or Docker setup - Simulated PLC data (Node-RED) - Small InfluxDB + Grafana instance ### CI/CD Pipeline (Future) **Source Control:** - Git (self-hosted Gitea or GitHub) - Branches: main, development, customer-specific **Automation:** - Gitea Actions or GitHub Actions - Automated testing on push - Deployment scripts (Ansible) **Deployment Process (Manual Initially):** 1. Test in local environment 2. Deploy to staging container 3. Validate with test data 4. Deploy to production 5. Monitor for issues --- ## Architecture Comparison: ZLH vs Industrial ### Code Reuse: 70% **What's SHARED between platforms:** ``` ✅ LXC container orchestration ✅ User authentication/authorization ✅ API infrastructure ✅ Billing/payment processing (Stripe) ✅ Resource monitoring/logging ✅ Database layer ✅ Web UI framework ``` **What's DIFFERENT:** ``` Gaming-Specific: - Game server templates (Minecraft, Rust, etc.) - Steam integration - Gaming-specific metrics Industrial-Specific: - CODESYS/OpenPLC runtime - Industrial protocols (Modbus, OPC-UA) - SCADA visualization (Grafana dashboards) - Alarm management ``` ### Development Strategy 1. ZLH is 85% done → Finish core platform 2. Industrial platform: Fork ZLH codebase 3. Swap gaming logic for industrial modules 4. Reuse: API, auth, billing, monitoring, container orchestration 5. Add: PLC runtime, protocol handlers, SCADA dashboards **Estimated Development Time:** 2-3 months to MVP (leveraging ZLH foundation) --- ## Cost Analysis ### Per-Customer Economics **Lightweight Stack (OpenPLC + Node-RED):** **Customer Pays:** $2,000/month **Your Costs:** - Server allocation: $20-30/month (1/10th of server) - Software licenses: $0 - Support time: ~5 hours/month @ $50/hour = $250 - Total Cost: ~$280/month **Gross Profit:** $1,720/month per customer (86% margin) **Premium Stack (CODESYS + RapidSCADA):** **Customer Pays:** $4,000/month **Your Costs:** - Server allocation: $30-40/month - CODESYS license: $32/month (€350/year) - Support time: ~8 hours/month @ $50/hour = $400 - Total Cost: ~$470/month **Gross Profit:** $3,530/month per customer (88% margin) ### Scaling Economics **At 5 Customers (Breakeven/Early Stage):** - Revenue: $10,000-20,000/month - Server Costs: $300/month (1 server) - Software: $0-160/month - Support: 25-40 hours/month - **Net Profit:** $8,000-15,000/month **At 10 Customers (Sustainable):** - Revenue: $20,000-40,000/month - Server Costs: $600/month (2 servers) - Software: $0-320/month - Support: 50-80 hours/month - **Net Profit:** $15,000-30,000/month --- ## Technology Decision Matrix ### When to Use What **OpenPLC:** - ✅ Development/testing environments - ✅ Non-safety-critical monitoring - ✅ Budget-conscious customers - ✅ Custom applications **CODESYS:** - ✅ Production control systems - ✅ Regulated industries - ✅ Customer requires certifications - ✅ Premium tier customers **Node-RED:** - ✅ 80% of HMI needs - ✅ Quick deployments - ✅ Modern customers - ✅ Rapid prototyping **RapidSCADA:** - ✅ Traditional industrial customers - ✅ Complex alarming requirements - ✅ Need "professional" appearance - ✅ Multi-user access control **Grafana:** - ✅ Always include for visualization - ✅ Management reporting - ✅ Time-series analytics - ✅ Mobile access --- ## Implementation Roadmap ### Phase 1: Foundation (Month 1-2) **Objective:** Get first pilot customer live 1. **Week 1-2:** Infrastructure setup - Provision GTHost server - Install Ubuntu + LXC - Configure networking and security - Set up monitoring 2. **Week 3-4:** Software stack deployment - Deploy OpenPLC + Node-RED stack - Build first customer container template - Create reusable dashboards - Integration testing 3. **Week 5-6:** Pilot customer - Onboard first customer - Deploy edge hardware - Configure data collection - Training and go-live 4. **Week 7-8:** Refinement - Document learnings - Refine templates - Improve automation - Prepare for scale ### Phase 2: Scaling (Month 3-6) **Objective:** Reach 5 customers, validate business model 1. **Add customers 2-5** 2. **Optimize deployment process** 3. **Build library of templates** 4. **Improve monitoring and alerting** 5. **Add CODESYS option for premium tier** ### Phase 3: Growth (Month 7-12) **Objective:** Scale to 10+ customers, achieve $25k+ MRR 1. **Hire first contractor** (part-time technical support) 2. **Add second server** (geographic redundancy) 3. **Implement CI/CD pipeline** 4. **Build customer self-service portal** 5. **Expand protocol support** --- ## Key Technical Decisions ### Decision 1: LXC vs Docker **Chosen:** LXC for platform, Docker for customer edge **Rationale:** - LXC: Lower overhead, proven from ZLH, better for long-running services - Docker: Easier for customers to maintain on edge devices ### Decision 2: OpenPLC vs CODESYS **Chosen:** Hybrid approach (both) **Rationale:** - OpenPLC: $0 cost, maximum margins, sufficient for 70% of use cases - CODESYS: Premium option for customers needing certifications - Flexibility to match customer requirements and budget ### Decision 3: GTHost vs AWS/Azure **Chosen:** GTHost dedicated servers **Rationale:** - No AWS conflict with employer - Bare metal performance (real-time capable) - Predictable costs - Month-to-month flexibility - Can add GPU for future AI features ### Decision 4: Edge Hardware **Chosen:** Industrial Mini PCs ($110-250) **Rationale:** - Reliable (SSD, no SD card failures like Pi) - Affordable (vs $400+ industrial PCs) - Professional appearance - x86 compatible (maximum flexibility) --- ## Risk Mitigation ### Technical Risks **Risk:** Container escape/isolation breach **Mitigation:** - Regular security updates - Container resource limits enforced - Monitoring for unusual activity - Separate network namespaces **Risk:** Data loss **Mitigation:** - Automated daily backups - Offsite backup storage - Monthly restore testing - 7-day retention minimum **Risk:** Real-time performance issues **Mitigation:** - Bare metal servers (no nested virtualization) - LXC vs Docker (lower overhead) - RT-PREEMPT kernel option - Edge processing (time-critical at edge, not cloud) ### Business Risks **Risk:** Customer churn **Mitigation:** - High-touch onboarding - Excellent support - Sticky data (historical trends) - Annual contracts for discount **Risk:** Support burden **Mitigation:** - Excellent documentation - Self-service portal - Automated monitoring - Hire contractors for overflow --- ## Success Metrics ### Technical KPIs - Container provisioning time: <15 minutes - Data collection uptime: >99.5% - Dashboard load time: <2 seconds - Backup success rate: 100% - Security incidents: 0 ### Business KPIs - Customer acquisition cost: <$500 - Gross margin: >85% - Monthly recurring revenue: $25k by month 12 - Customer churn: <10% annually - Net Promoter Score: >50 --- ## Next Steps ### Immediate Actions (Week 1) 1. [ ] Provision GTHost trial server ($5/day) 2. [ ] Install Ubuntu + LXC 3. [ ] Deploy OpenPLC + Node-RED stack 4. [ ] Build first dashboard template 5. [ ] Test with simulated PLC data ### Short-Term (Month 1) 1. [ ] Purchase industrial mini PC for testing 2. [ ] Build complete customer container template 3. [ ] Create customer onboarding checklist 4. [ ] Identify 3-5 potential pilot customers 5. [ ] Prepare pricing and proposal templates ### Medium-Term (Month 2-3) 1. [ ] Onboard first pilot customer 2. [ ] Document complete deployment process 3. [ ] Refine templates based on pilot feedback 4. [ ] Build customer self-service portal 5. [ ] Begin marketing to reach next 4 customers --- *Last Updated: December 2025*