37e9af4080
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
45 lines
2.4 KiB
Markdown
45 lines
2.4 KiB
Markdown
# 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.
|