Skip to main content

Deployment Checklist

Use this checklist before every production deployment to ensure nothing is missed.
Do not skip steps. Each item addresses a real failure mode encountered during previous deployments.

Pre-deployment

1

Environment variables configured

Verify all required environment variables are set in production:
VariableServiceRequired
SUPABASE_URLBackendYes
SUPABASE_SERVICE_ROLE_KEYBackendYes
JWT_SECRETBackendYes
GROQ_API_KEYBackendYes
ASPNETCORE_ENVIRONMENTBackendRecommended
BACKEND_URLAdmin PanelYes
Never store secrets in code, config files, or Git. Use Azure Application Settings or environment variables.
All variables set and verified
2

Database schema up to date

Confirm all tables exist in the Supabase public schema:
SELECT table_name FROM information_schema.tables
WHERE table_schema = 'public'
ORDER BY table_name;
Required tables: users, ai_models, threads, thread_messages, comparisons, model_votes, providers, provider_api_keys, system_settings
All 9 tables present
3

Active models configured

Ensure at least 2 active models exist for arena mode:
SELECT model_name, display_name, provider_name, status
FROM ai_models WHERE status = 'active';
At least 2 active models available
4

Provider API keys valid

Verify API keys are set and not expired:
SELECT p.provider_name, COUNT(k.id) as key_count
FROM providers p
LEFT JOIN provider_api_keys k ON p.id = k.provider_id AND k.is_active = true
GROUP BY p.provider_name;
Each provider has at least 1 active API key
5

Backend builds successfully

cd DualMind_Back/src/DualMind.API
dotnet publish -c Release -o ./publish
Build completes with no errors
6

Tests pass

cd DualMind_Back
dotnet test
All tests green

Deployment

1

Deploy backend to Azure

Backend deployed successfully
2

Deploy frontend to Cloudflare Workers

cd DualMind_UI
npx wrangler deploy
Frontend deployed to Cloudflare
3

Deploy admin panel

cd DualMind_Admin-UI
npm run deploy:prod
Admin panel deployed

Post-deployment verification

1

Health check passes

curl https://api.dualmindlab.tech/health
Expected: {"status":"healthy"}
API is responding
2

Authentication works

curl -H "Authorization: Bearer $TOKEN" \
  https://api.dualmindlab.tech/api/arena/models
Returns model list (not 401)
3

Arena mode functional

Send a test message in arena mode and verify two model responses are returned.
Dual responses received
4

Streaming works

Test the SSE streaming endpoint:
curl -N "https://api.dualmindlab.tech/api/arena/stream?prompt=test&model=llama-3.3-70b-versatile" \
  -H "Authorization: Bearer $TOKEN"
Tokens stream in real-time
5

Frontend loads correctly

Visit https://arena.dualmindlab.tech and verify:
  • Page loads without console errors
  • Login flow works
  • Chat interface renders
  • Dark mode toggles correctly
Frontend fully functional
6

Admin panel accessible

Log in to the admin panel and verify dashboard data loads.
Admin panel operational
7

Public sharing works

Share a thread and verify the public URL is accessible without authentication.
Shared threads are publicly viewable

Rollback plan

If any post-deployment check fails, roll back immediately.
Redeploy the previous version from Azure App Service → Deployment Center → select previous deployment.Or revert the Git commit:
git revert HEAD
git push origin main
Always keep the previous deployment artifacts available for at least 48 hours after a new deployment.