v1.2 - Telegram Bot, Resource Limits & Faster TUI
Conduit Manager v1.2
A major release focused on resource control, Telegram integration, and performance. Containers now support per-instance CPU and memory limits, a full Telegram bot provides remote monitoring and management, and parallelized Docker commands cut TUI refresh times by 75%. 🚀
🌟 New Features
- 🖥️ Per-Container Resource Limits: Set CPU and memory limits for each container via the Settings menu. Smart defaults based on your system's CPU cores and RAM. Limits are also prompted when adding new containers.
- 🤖 Telegram Bot Integration: Full-featured Telegram bot with guided setup wizard. Receive periodic status reports with client counts, bandwidth, and timestamps — all delivered automatically.
- 📲 Telegram Container Commands: Manage containers remotely with
/containers,/restart_N,/stop_N,/start_Ndirectly from Telegram. - 🔧 Systemd Notification Service: Telegram bot runs as a proper systemd service — survives reboots, TUI exits, and SSH disconnects.
- 🔢 Compact Number Display: Large counts now show as 16.5K, 1.2M instead of raw numbers across all screens and reports.
- 👥 Active Clients Count: Dashboard and Telegram reports now show both connected and connecting peers separately.
- 📈 Total Bandwidth Served: Reports include cumulative bandwidth alongside per-session stats.
- 🕐 Timestamps on Reports: All Telegram reports include server time and uptime info.
- 🏷️ Server Label & IP: Reports identify your server by label and IP for multi-server operators.
- 🔄 Auto-Restart for Stuck Containers: Improved detection and automatic recovery of stuck containers.
⚡ Performance
- Parallelized Docker Commands: All TUI screens (Status, Container Management, Advanced Stats, Live Peers) now run Docker commands in parallel.
- Batched Inspect Calls: Single
docker inspectcall for all containers instead of one per container. - Parallel Stop/Remove: Multi-container operations run concurrently instead of sequentially.
- ~75% Faster Refresh: Screen refresh time reduced from ~10s to ~2-3s with multiple containers.
🐛 Fixes
- False WAITING Status: Health check no longer shows WAITING for connected containers without stats.
- Container Lifecycle Logic: Start/stop/restart now correctly detects resource limit changes and recreates containers when needed.
- Duplicate Countries in GeoIP: Broader name normalization prevents duplicate country entries (e.g., "Korea" vs "South Korea").
- Telegram Markdown Escaping: Backslash handling fixed — reports no longer break with special characters.
- Telegram Container Names: Fixed mismatch (
conduit2→conduit-2) so bot commands target the right container. - Telegram Report Accuracy: Log tail increased from 50 to 400 lines for accurate client counting.
- Wizard Failure Recovery: Failed setup wizard now preserves your existing config instead of leaving a blank file.
- Tracker Arithmetic Overflow: Fixed overflow in traffic counters for high-traffic nodes.
- Input/Output Error Loop: Broken
/dev/ttyno longer causes infinite error loop. - CPU Normalization: Reports now divide CPU usage by core count for accurate percentages.
- Peers Count Consistency: Peer counts now match across all views (dashboard, stats, peers, Telegram).
- Notification Loop: Menu no longer restarts the notification loop every time it opens.
- PID Management: Proper cleanup of background process PID files.
- Stale Temp Data: Temp directories cleaned up to prevent reading leftover data from previous sessions.
- Multiple TUI Stability Fixes: Various edge cases and display glitches resolved.
🔒 Security
- Atomic Settings Writes: Config file writes use temp file + rename — no more corruption on power loss.
- Secure Temp Directories: All temp dirs use
mktempwith random names (prevents symlink attacks). - Pipeline Error Detection:
set -eo pipefailcatches failures in piped commands. - Docker Stats Timeout:
timeout 10ondocker statsprevents indefinite hangs. - Silent Bot Token Input: Telegram token is not echoed to terminal during setup.
- Chat ID Validation: Numeric-only validation prevents injection in Telegram chat IDs.
- Restricted PID Permissions: PID files created with mode 600.
- OPSEC Warning: Setup wizard warns operators in censored regions about Telegram metadata.
- Curl Safety Limits: All curl calls include
--max-filesizeand--max-time.
⬆️ Seamless Upgrade from v1.1
Existing users do not need to reinstall. Just run the update command or use Option 8 from the menu. All containers, settings, Telegram config, and node identity keys are preserved automatically. The new resource limits default to unlimited (same behavior as before) until you configure them.
💡 Tip for existing users: After updating, check out Settings & Tools (Option 9) to set up Telegram notifications and configure resource limits for your containers.
📥 How to Update
Simply run the installer again:
curl -sL https://raw.githubusercontent.com/SamNet-dev/conduit-manager/main/conduit.sh | sudo bash