feat: Add option to disable tracker for CPU savings
Adds toggle in Settings & Tools menu to enable/disable the traffic tracker. When disabled, saves ~15-25% CPU on busy servers. Features that depend on tracker (live peers, advanced stats, country breakdown) show helpful messages directing users to re-enable.
This commit is contained in:
82
conduit.sh
82
conduit.sh
@@ -1887,6 +1887,11 @@ TRACKER_SCRIPT
|
|||||||
|
|
||||||
# Setup tracker systemd service
|
# Setup tracker systemd service
|
||||||
setup_tracker_service() {
|
setup_tracker_service() {
|
||||||
|
# Skip if tracker is disabled
|
||||||
|
if [ "${TRACKER_ENABLED:-true}" = "false" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
regenerate_tracker_script
|
regenerate_tracker_script
|
||||||
|
|
||||||
if command -v systemctl &>/dev/null; then
|
if command -v systemctl &>/dev/null; then
|
||||||
@@ -1922,6 +1927,18 @@ stop_tracker_service() {
|
|||||||
|
|
||||||
# Advanced Statistics page with 15-second soft refresh
|
# Advanced Statistics page with 15-second soft refresh
|
||||||
show_advanced_stats() {
|
show_advanced_stats() {
|
||||||
|
# Check if tracker is disabled
|
||||||
|
if [ "${TRACKER_ENABLED:-true}" = "false" ]; then
|
||||||
|
echo ""
|
||||||
|
echo -e " ${YELLOW}⚠ Tracker is disabled.${NC}"
|
||||||
|
echo -e " Advanced stats requires the tracker to capture network traffic."
|
||||||
|
echo ""
|
||||||
|
echo -e " To enable: Settings & Tools → Toggle tracker (d)"
|
||||||
|
echo ""
|
||||||
|
read -n 1 -s -r -p " Press any key to return..." < /dev/tty || true
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
local persist_dir="$INSTALL_DIR/traffic_stats"
|
local persist_dir="$INSTALL_DIR/traffic_stats"
|
||||||
local exit_stats=0
|
local exit_stats=0
|
||||||
trap 'exit_stats=1' SIGINT SIGTERM
|
trap 'exit_stats=1' SIGINT SIGTERM
|
||||||
@@ -2171,6 +2188,18 @@ show_advanced_stats() {
|
|||||||
|
|
||||||
# show_peers() - Live peer traffic by country using tcpdump + GeoIP
|
# show_peers() - Live peer traffic by country using tcpdump + GeoIP
|
||||||
show_peers() {
|
show_peers() {
|
||||||
|
# Check if tracker is disabled
|
||||||
|
if [ "${TRACKER_ENABLED:-true}" = "false" ]; then
|
||||||
|
echo ""
|
||||||
|
echo -e " ${YELLOW}⚠ Tracker is disabled.${NC}"
|
||||||
|
echo -e " Live peers by country requires the tracker to capture network traffic."
|
||||||
|
echo ""
|
||||||
|
echo -e " To enable: Settings & Tools → Toggle tracker (d)"
|
||||||
|
echo ""
|
||||||
|
read -n 1 -s -r -p " Press any key to return..." < /dev/tty || true
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
local stop_peers=0
|
local stop_peers=0
|
||||||
trap 'stop_peers=1' SIGINT SIGTERM
|
trap 'stop_peers=1' SIGINT SIGTERM
|
||||||
|
|
||||||
@@ -4012,6 +4041,7 @@ TELEGRAM_SERVER_LABEL="${TELEGRAM_SERVER_LABEL:-}"
|
|||||||
TELEGRAM_START_HOUR=${TELEGRAM_START_HOUR:-0}
|
TELEGRAM_START_HOUR=${TELEGRAM_START_HOUR:-0}
|
||||||
DOCKER_CPUS=${DOCKER_CPUS:-}
|
DOCKER_CPUS=${DOCKER_CPUS:-}
|
||||||
DOCKER_MEMORY=${DOCKER_MEMORY:-}
|
DOCKER_MEMORY=${DOCKER_MEMORY:-}
|
||||||
|
TRACKER_ENABLED=${TRACKER_ENABLED:-true}
|
||||||
EOF
|
EOF
|
||||||
# Save per-container overrides
|
# Save per-container overrides
|
||||||
for i in $(seq 1 5); do
|
for i in $(seq 1 5); do
|
||||||
@@ -5118,12 +5148,18 @@ show_settings_menu() {
|
|||||||
echo -e " 8. 📖 About Conduit"
|
echo -e " 8. 📖 About Conduit"
|
||||||
echo ""
|
echo ""
|
||||||
echo -e " 9. 🔄 Reset tracker data"
|
echo -e " 9. 🔄 Reset tracker data"
|
||||||
local tracker_status
|
local tracker_status tracker_enabled_status
|
||||||
if is_tracker_active; then
|
if is_tracker_active; then
|
||||||
tracker_status="${GREEN}Active${NC}"
|
tracker_status="${GREEN}Active${NC}"
|
||||||
else
|
else
|
||||||
tracker_status="${RED}Inactive${NC}"
|
tracker_status="${RED}Inactive${NC}"
|
||||||
fi
|
fi
|
||||||
|
if [ "${TRACKER_ENABLED:-true}" = "true" ]; then
|
||||||
|
tracker_enabled_status="${GREEN}Enabled${NC}"
|
||||||
|
else
|
||||||
|
tracker_enabled_status="${RED}Disabled${NC}"
|
||||||
|
fi
|
||||||
|
echo -e " d. 📡 Toggle tracker (${tracker_enabled_status}) — saves CPU when off"
|
||||||
echo -e " r. 📡 Restart tracker service (${tracker_status})"
|
echo -e " r. 📡 Restart tracker service (${tracker_status})"
|
||||||
echo -e " t. 📲 Telegram Notifications"
|
echo -e " t. 📲 Telegram Notifications"
|
||||||
echo -e ""
|
echo -e ""
|
||||||
@@ -5204,8 +5240,52 @@ show_settings_menu() {
|
|||||||
read -n 1 -s -r -p "Press any key to return..." < /dev/tty || true
|
read -n 1 -s -r -p "Press any key to return..." < /dev/tty || true
|
||||||
redraw=true
|
redraw=true
|
||||||
;;
|
;;
|
||||||
|
d|D)
|
||||||
|
echo ""
|
||||||
|
if [ "${TRACKER_ENABLED:-true}" = "true" ]; then
|
||||||
|
echo -e " ${YELLOW}⚠ Disabling tracker will stop these features:${NC}"
|
||||||
|
echo -e " • Live peers by country"
|
||||||
|
echo -e " • Top upload by country in dashboard"
|
||||||
|
echo -e " • Advanced stats (country breakdown)"
|
||||||
|
echo -e " • Unique IP tracking"
|
||||||
|
echo ""
|
||||||
|
echo -e " ${GREEN}Benefit: Saves ~15-25% CPU on busy servers${NC}"
|
||||||
|
echo ""
|
||||||
|
read -p " Disable tracker? (y/n): " confirm < /dev/tty || true
|
||||||
|
if [[ "$confirm" =~ ^[Yy]$ ]]; then
|
||||||
|
TRACKER_ENABLED=false
|
||||||
|
save_settings
|
||||||
|
stop_tracker_service
|
||||||
|
echo -e " ${GREEN}✓ Tracker disabled.${NC}"
|
||||||
|
else
|
||||||
|
echo " Cancelled."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
read -p " Enable tracker? (y/n): " confirm < /dev/tty || true
|
||||||
|
if [[ "$confirm" =~ ^[Yy]$ ]]; then
|
||||||
|
TRACKER_ENABLED=true
|
||||||
|
save_settings
|
||||||
|
setup_tracker_service
|
||||||
|
if is_tracker_active; then
|
||||||
|
echo -e " ${GREEN}✓ Tracker enabled and running.${NC}"
|
||||||
|
else
|
||||||
|
echo -e " ${YELLOW}Tracker enabled but failed to start. Try 'r' to restart.${NC}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo " Cancelled."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
read -n 1 -s -r -p " Press any key to return..." < /dev/tty || true
|
||||||
|
redraw=true
|
||||||
|
;;
|
||||||
r)
|
r)
|
||||||
echo ""
|
echo ""
|
||||||
|
if [ "${TRACKER_ENABLED:-true}" = "false" ]; then
|
||||||
|
echo -e " ${YELLOW}Tracker is disabled. Use 'd' to enable it first.${NC}"
|
||||||
|
read -n 1 -s -r -p " Press any key to return..." < /dev/tty || true
|
||||||
|
redraw=true
|
||||||
|
continue
|
||||||
|
fi
|
||||||
echo -ne " Regenerating tracker script... "
|
echo -ne " Regenerating tracker script... "
|
||||||
regenerate_tracker_script
|
regenerate_tracker_script
|
||||||
echo -e "${GREEN}done${NC}"
|
echo -e "${GREEN}done${NC}"
|
||||||
|
|||||||
Reference in New Issue
Block a user