Skip to content

[claude] Add vortex-bench-server v3 deployment infrastructure#7644

Merged
connortsui20 merged 3 commits intoct/benchmarks-v3from
claude/benchmarks-v3-deploy-kjiv8
Apr 26, 2026
Merged

[claude] Add vortex-bench-server v3 deployment infrastructure#7644
connortsui20 merged 3 commits intoct/benchmarks-v3from
claude/benchmarks-v3-deploy-kjiv8

Conversation

@connortsui20
Copy link
Copy Markdown
Contributor

Summary

This PR introduces the deployment infrastructure for vortex-bench-server v3, a new benchmarking server that runs alongside the existing v2 instance. The v3 server provides an ingest endpoint for benchmark results with bearer token authentication and uses DuckDB for data storage.

Changes included:

  1. GitHub Actions workflow (publish-bench-server.yml): New CI pipeline that builds and publishes the vortex-bench-server Docker image to GHCR on changes to the server code, vortex-bench crate, or Cargo.lock.

  2. Dockerfile (benchmarks-website/server/Dockerfile): Multi-stage Docker build that:

    • Compiles vortex-bench-server in a Rust 1.91 environment
    • Packages it with DuckDB CLI tools in a minimal Debian image
    • Targets ARM64 architecture for EC2 deployment
  3. Backup script (benchmarks-website/server/scripts/backup.sh): Daily backup utility that:

    • Exports the DuckDB database from the running container
    • Uploads backups to S3 (vortex-ci-benchmark-results/v3-backups/)
    • Manages local disk space by retaining only the latest backup
  4. Docker Compose configuration: Added vortex-bench-server service that:

    • Runs on port 3001 (v2 remains on port 80)
    • Mounts EBS-backed data directory for DuckDB persistence
    • Loads bearer token from /etc/vortex-bench/secrets.env
    • Integrates with existing watchtower for automatic image updates
  5. EC2 initialization guide (ec2-init.txt): Comprehensive setup documentation covering:

    • Bearer token secret management
    • EBS volume preparation
    • Service startup and health checks
    • Cron-based backup scheduling
    • Token rotation procedures

The v3 server is designed to run additively alongside v2, allowing for gradual DNS migration and dual-write support from CI.

Testing

The Docker image build is validated by the GitHub Actions workflow on each push to develop. The backup script can be tested manually on the EC2 host before cron scheduling. Smoke tests are documented in the setup guide (curl against /health endpoint on port 3001).

https://claude.ai/code/session_019mBcBdF4LhKDXyKwuKRAPV

claude added 2 commits April 26, 2026 19:22
… backup

Adds the deployment artifacts for vortex-bench-server alongside the
existing v2 site. Dual-write only — does not modify v2 service or
route DNS. Manual EC2 setup steps documented in ec2-init.txt.

Per orchestrator direction the daily DuckDB backup is a host-side
cron + script (benchmarks-website/server/scripts/backup.sh) rather
than a GitHub Actions workflow, avoiding new SSH or IAM surface area
for what is currently a convenience backup.

Signed-off-by: Claude <noreply@anthropic.com>
…ealth path

- Runtime stage of the server Dockerfile now installs the matching
  DuckDB CLI binary so backup.sh's `docker exec ... duckdb ...` works.
  Pinned via `ARG DUCKDB_VERSION=1.4.1` to track libduckdb-sys in
  Cargo.lock; unzip/wget are apt-purged to keep the image small.
- ec2-init.txt smoke-check uses /health (the actual route in
  benchmarks-website/server/src/app.rs:61), not /healthz.

Signed-off-by: Claude <noreply@anthropic.com>
@connortsui20 connortsui20 changed the title Add vortex-bench-server v3 deployment infrastructure [claude] Add vortex-bench-server v3 deployment infrastructure Apr 26, 2026
@connortsui20 connortsui20 added the changelog/skip Do not list PR in the changelog label Apr 26, 2026
…all matching CLI, fix /health path

- benchmarks-website/server/Cargo.toml: bump duckdb-rs to 1.10502
  (engine 1.5.2) to match vortex-duckdb's bundled engine pin in
  vortex-duckdb/build.rs:386. Cargo.lock regenerated; cargo test
  -p vortex-bench-server and cargo clippy -p vortex-bench-server
  --all-targets pass clean.
- benchmarks-website/server/Dockerfile: ARG DUCKDB_VERSION bumped
  to 1.5.2 to match the resolved libduckdb-sys version. The
  runtime stage still installs the matching CLI via wget+unzip
  with apt-purge cleanup.
- benchmarks-website/ec2-init.txt: smoke-check and rotation
  verification both use /health (the actual route in
  benchmarks-website/server/src/app.rs:61), not /healthz.

Signed-off-by: Claude <noreply@anthropic.com>
@connortsui20 connortsui20 merged commit 993aec9 into ct/benchmarks-v3 Apr 26, 2026
58 checks passed
@connortsui20 connortsui20 deleted the claude/benchmarks-v3-deploy-kjiv8 branch April 26, 2026 20:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/skip Do not list PR in the changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants