Features:
- Per-container CPU and memory limits via Settings menu
- Resource limit prompts when adding containers in Container Management
- Smart defaults based on system specs (cores, RAM)
- Limits persist in settings.conf and apply on container create/recreate
- Settings table shows CPU/Memory columns alongside max-clients/bandwidth
- Resource limit changes detected on restart/start, triggering container recreation
Performance optimizations:
- Parallelize all docker logs calls across containers (background jobs)
- Run docker stats, system stats, and net speed concurrently
- Batch docker inspect calls instead of per-container
- Parallel container stop/remove with -t 3 timeout (was 10s default)
- All screens optimized: Status, Container Management, Advanced Stats, Live Peers
Bug fixes:
- Normalize grep pattern to [STATS] across all screens
- Clean temp dirs before reuse to prevent stale data reads
- Check exit status on container remove operations
Co-Authored-By: Claude <noreply@anthropic.com>
- Add /containers command: per-container status with peers, data up/down
- Add /restart_N, /stop_N, /start_N commands for remote container control
- Add /uptime command: per-container uptime + 24h availability
- Self-updating script: menu option downloads latest conduit.sh from GitHub
- Add --update-components flag for script/tracker/telegram regeneration
- Extract recreate_containers() for reusable container recreation
- Interactive Docker image update with user confirmation
- 24h availability window instead of all-time percentage
- Uptime streak tracking in reports
- Container restart counts in reports
- Top countries by connected peers section
- Separate "Top by upload" vs "Top by peers" in reports
- Defensive variable defaults (CONTAINER_COUNT, DATA_CAP_GB)
- Fix get_container_name in Telegram script (conduit-N not conduitN)
- Rename Telegram "Active clients" to "Unique IPs served"
- Remove cumulative IP count from peers view columns
- Show only estimated current clients per country
- Traffic header now says "current session" to indicate it resets on restart
- TOP 5 UPLOAD header now says "cumulative" to show it persists across restarts
- Prepend server label + public IP to all Telegram messages (multi-server support)
- Configurable server label via menu option 8 (defaults to hostname)
- Wall-clock aligned report scheduling with configurable start hour
- Start hour selection in both interval menu and setup wizard
- Markdown-escape server label in both main and standalone scripts
- Preserve start hour and server label on wizard cancel/failure paths
New features:
- Uptime tracking with availability % in reports
- Alert system (CPU/RAM >90%, all containers down, zero peers 2h)
- Daily and weekly summary reports with bandwidth/peers/uptime stats
- Telegram bot commands (/status, /peers, /help)
- Toggle menu for alerts, daily/weekly summaries (options 5-7)
- Health check: tracker service, tcpdump, GeoIP, data validation
- Cumulative data log rotation with monthly archives (3-month retention)
Improvements:
- Smart restart: only recreate containers when settings change
- Stopped containers resumed with docker start instead of recreate
- Upgrade path regenerates Telegram script automatically
- Update conduit backs up tracker data and refreshes Telegram service
- Daily/weekly summary timestamps persist across service restarts
Bug fixes:
- Empty container list no longer triggers docker stats on all host containers
- process_commands recovers from malformed Telegram API responses
- Tracker service stopped before data backup to prevent write races
- Docker logs calls wrapped with timeout to prevent hangs
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix [s] Start in container menu to resume stopped containers with
docker start instead of docker run (name already in use error)
- Add safety check in run_conduit_container() to remove existing
containers before docker run to prevent conflicts
- Fix [t] Stop and [x] Restart to check exit codes and show accurate status
- Add warning in main menu Start (option 5) when recreating stopped containers
- Auto backup/restore tracker data on container restart (Option 7)
- Periodic tracker backup every 3 hours
- Manage containers: start/stop/restart now supports 'all'
- Fixed health check showing false WAITING with active clients
- UI Polish: Restored Rocket emoji 🚀 to headers and streamlined menu text.
- Resource Usage Layout: Updated dashboard to a 3-row layout (App, System, Total).
- System Stats Fix: Fixed System CPU calculation to show instantaneous usage.
- App Stats Normalization: Fixed App CPU to show percentage of Total System Capacity. Added (Raw% vCPU) display for multi-core clarity.
- Live Stats Fix: Increased log buffer to 2500 lines to prevent execution hangs in verbose mode.
- Performance: Optimized dashboard refresh rate to 5 seconds.
Removed redundant 'install.sh'. 'conduit.sh' now handles all installation, updates, and management tasks, effectively replacing the outdated install script.
- UI Fixes: Fixed dashboard corruption, ghost characters ("MBKB"), and header misalignment using tput and printf.
- Stats: Added "Connecting" count and "Uptime" to live view.
- Stability: Increased log search depth to 1000 lines to prevent "Waiting for stats" hang.