Files

2.7 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.

Verified on the host

  • Both families logged: ipv4=104.28.x.x (warp=on) ipv6=2a09:bac1:... (warp=on).
  • Forced warp-cli disconnect inside the container: next check logged NOT CONNECTED ... warp=off, ran warp-cli connect, and the following check was CONNECTED again.

[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.