Add DHCP leases management to dashboard and UI
Implement a new API endpoint to retrieve current DHCP leases from dnsmasq, enhancing the dashboard's functionality for monitoring network devices. Update the home.html template to display DHCP lease information in a structured table format, including IP, MAC, hostname, and expiry details. Introduce buttons for enabling and disabling DHCP network boot, improving user interaction. Enhance JavaScript to fetch and display lease data dynamically, ensuring users have real-time visibility of network activity.
This commit is contained in:
@@ -12,6 +12,12 @@ if [[ -n "$TARGET" ]]; then
|
||||
REPO_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
echo "Syncing lxc config and script to $TARGET ..."
|
||||
rsync -a "$REPO_DIR/lxc/" "$TARGET:/tmp/cm4-network-boot-lxc/" --exclude='.git'
|
||||
if [[ -f "$REPO_DIR/network-boot-initramfs/initrd.img" ]]; then
|
||||
echo "Copying initrd.img to $TARGET ..."
|
||||
scp "$REPO_DIR/network-boot-initramfs/initrd.img" "$TARGET:/tmp/cm4-network-boot-lxc/initrd.img"
|
||||
else
|
||||
echo "Note: network-boot-initramfs/initrd.img not found (run build.sh first); skipping."
|
||||
fi
|
||||
scp "$SCRIPT_DIR/setup-network-boot-on-lxc.sh" "$TARGET:/tmp/cm4-network-boot-lxc/setup.sh"
|
||||
ssh "$TARGET" "bash /tmp/cm4-network-boot-lxc/setup.sh"
|
||||
echo "Done."
|
||||
@@ -68,6 +74,18 @@ else
|
||||
echo "TFTP root already has boot files (start4cd.elf present), skipping fetch."
|
||||
fi
|
||||
|
||||
# 3b) Copy provisioning initrd.img to TFTP root if provided
|
||||
if [[ -f /tmp/cm4-network-boot-lxc/initrd.img ]]; then
|
||||
cp /tmp/cm4-network-boot-lxc/initrd.img /srv/tftpboot/initrd.img
|
||||
echo "Copied initrd.img to /srv/tftpboot"
|
||||
if [[ -f /srv/tftpboot/config.txt ]] && ! grep -q 'initramfs initrd.img' /srv/tftpboot/config.txt 2>/dev/null; then
|
||||
echo "" >> /srv/tftpboot/config.txt
|
||||
echo "# Provisioning initramfs (network-boot-initramfs)" >> /srv/tftpboot/config.txt
|
||||
echo "initramfs initrd.img followkernel" >> /srv/tftpboot/config.txt
|
||||
echo "Added initramfs line to config.txt"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 4) IP forwarding (LAN clients use WAN)
|
||||
echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/99-cm4-network-boot.conf
|
||||
sysctl -p /etc/sysctl.d/99-cm4-network-boot.conf 2>/dev/null || sysctl -w net.ipv4.ip_forward=1
|
||||
@@ -105,4 +123,4 @@ systemctl restart dnsmasq
|
||||
echo "Network boot setup done."
|
||||
echo " - DHCP + TFTP on eth1 (10.20.50.1), range 10.20.50.100-200"
|
||||
echo " - NAT: 10.20.50.0/24 -> eth0 (internet)"
|
||||
echo " - TFTP root: /srv/tftpboot (RPi boot files from GitHub)"
|
||||
echo " - TFTP root: /srv/tftpboot (RPi boot files; initrd.img if provided)"
|
||||
|
||||
Reference in New Issue
Block a user