Skip to content

Commit 8044a05

Browse files
connortsui20claude
andcommitted
[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

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Publish Bench Server
2+
3+
on:
4+
push:
5+
branches: [develop]
6+
paths:
7+
- "benchmarks-website/server/**"
8+
- "vortex-bench/**"
9+
- "Cargo.lock"
10+
- ".github/workflows/publish-bench-server.yml"
11+
workflow_dispatch:
12+
13+
jobs:
14+
publish:
15+
runs-on: ubuntu-latest
16+
timeout-minutes: 30
17+
permissions:
18+
contents: read
19+
packages: write
20+
id-token: write
21+
steps:
22+
- uses: actions/checkout@v6
23+
24+
- name: Log in to GHCR
25+
uses: docker/login-action@v4
26+
with:
27+
registry: ghcr.io
28+
username: ${{ github.actor }}
29+
password: ${{ secrets.GITHUB_TOKEN }}
30+
31+
- name: Set up QEMU
32+
uses: docker/setup-qemu-action@v4
33+
34+
- name: Set up Docker Buildx
35+
uses: docker/setup-buildx-action@v4
36+
37+
- name: Build and push
38+
uses: docker/build-push-action@v7
39+
with:
40+
context: .
41+
file: ./benchmarks-website/server/Dockerfile
42+
platforms: linux/arm64
43+
push: true
44+
tags: |
45+
ghcr.io/${{ github.repository }}/vortex-bench-server:latest
46+
ghcr.io/${{ github.repository }}/vortex-bench-server:${{ github.sha }}

0 commit comments

Comments
 (0)