Files
DiscordBot-CloudflareWarp/CHANGELOG.md
T

2.4 KiB

Changelog

All notable changes to this project are documented here, newest first. Every change is committed and pushed so the history can be followed in git as well.

[1.1.1] - 2026-09-08

Fixed

  • IPv6 trace showed n/a (fetch failed): Node's fetch (undici) mangles IPv6 literals during TLS hostname verification. The check now uses node:https with the family option against www.cloudflare.com, so both families work with normal certificate validation.

[1.1.0] - 2026-09-08

Changed

  • WARP check now queries Cloudflare over IPv4 and IPv6 separately and logs both egress IPs: ipv4=104.28.x.x (warp=on) ipv6=2a09:bac1:... (warp=on) colo=AMS loc=NL.
  • /warp slash command shows the IPv4 and IPv6 Cloudflare IPs on separate lines.
  • "Connected" now means the IPv4 path (the one Discord uses) reports warp=on; IPv6 is informational.

Verified on the host (192.168.5.67)

  • Host public IP reports warp=off; inside the container both families report warp=on, colo AMS.
  • The Node process's Discord gateway socket originates from 172.16.0.2 on the CloudflareWARP interface, so bot traffic really goes through the tunnel.
  • Docker health check reports healthy; /ping and /warp are registered in the test guild.

[1.0.0] - 2026-09-08

Added

  • discord.js 14 bot (bot/src/index.js) with /ping and /warp slash commands.
  • Periodic Cloudflare WARP check that logs the egress IP, warp=on flag, colo and warp-cli status, with automatic warp-cli connect when the tunnel is down.
  • docker/Dockerfile: node:22-bookworm-slim with the Cloudflare WARP Debian 12 client (2026.7.1377.0) installed from the official download URL; npm ci runs inside the build.
  • docker/entrypoint.sh: starts dbus and warp-svc, registers, sets mode warp, connects, and only starts the bot once Cloudflare's trace endpoint reports warp=on.
  • docker-compose.yml: one self-contained service per bot (own WARP tunnel, own registration volume), NET_ADMIN, /dev/net/tun, required sysctls, log rotation and a warp=on health check.
  • scripts/deploy.sh: ships the committed tree to the Docker host over SSH and restarts the stack.
  • package-lock.json generated inside a node:22-bookworm-slim container (no Node on the workstation).
  • README, .env.example, .gitignore, .dockerignore, .gitattributes (LF line endings).

Removed

  • Placeholder test file from the initial commit.