Commit 8044a05
[claude] Add vortex-bench-server v3 deployment infrastructure (#7644)
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.
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.
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
---------
Signed-off-by: Claude <noreply@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>1 parent 0f40c30 commit 8044a05
7 files changed
Lines changed: 384 additions & 340 deletions
File tree
- .github/workflows
- benchmarks-website
- server
- scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
0 commit comments