## Summary - nginx container (`containers/cv/`) downloads and serves a content tarball at startup (same pattern as quartz) - ArgoCD app + k8s manifests (deployment, service, Tailscale ingress) - Caddy route for `cv.ops.eblu.me` - Deploy workflow: resolves "latest" or specific version from Forgejo packages, updates deployment, syncs ArgoCD - Content is built and released from the separate [cv repo](https://forge.ops.eblu.me/eblume/cv) ## Deployment steps (after merge) 1. `mise run container-tag-and-release cv v1.0.0` 2. Run "Release CV" workflow in cv repo (SPECIFIC_VERSION `v0.1.0`) 3. Run "Deploy CV" workflow in blumeops (default: latest) 4. `mise run provision-indri -- --tags caddy` 5. Verify at `https://cv.ops.eblu.me/` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/169
31 lines
776 B
Bash
31 lines
776 B
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
HTML_DIR="/usr/share/nginx/html"
|
|
|
|
# Check for required environment variable
|
|
if [ -z "$CV_RELEASE_URL" ]; then
|
|
echo "Error: CV_RELEASE_URL environment variable is required"
|
|
echo "Set it to the URL of the CV content tarball to serve"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Downloading CV content from: $CV_RELEASE_URL"
|
|
|
|
# Download the tarball
|
|
if ! curl -fsSL "$CV_RELEASE_URL" -o /tmp/cv.tar.gz; then
|
|
echo "Error: Failed to download CV content from $CV_RELEASE_URL"
|
|
exit 1
|
|
fi
|
|
|
|
# Clear existing content and extract
|
|
rm -rf "${HTML_DIR:?}"/*
|
|
echo "Extracting CV content to $HTML_DIR"
|
|
tar -xzf /tmp/cv.tar.gz -C "$HTML_DIR"
|
|
rm /tmp/cv.tar.gz
|
|
|
|
echo "CV content extracted successfully"
|
|
echo "Starting nginx..."
|
|
|
|
# Start nginx in foreground
|
|
exec nginx -g "daemon off;"
|