# Devxura v1.0.0 Launch Checklist

**Date:** 2026-05-19
**Baseline:** Tag `v1.0.0` (commit `8d8eb7e`)
**VPS:** root@187.77.140.128

---

## Pre-Launch Verification

- [x] Central SaaS deployed at https://app.aiinvention.tech
- [x] Postgres persistence verified (25 tables, data survives restarts)
- [x] Developer auth working (login/logout/sessions)
- [x] License activation working (real central SaaS)
- [x] Runtime node registration working
- [x] License check-in working
- [x] Stripe billing configured (test mode)
- [x] Stripe webhook endpoint verified
- [x] Subscription → license state sync working
- [x] No mock dependencies remain
- [x] Code pushed to GitHub + tagged v1.0.0
- [x] 38/39 end-to-end tests passed

---

## Launch Day Tasks

### 1. Stripe Live Mode Switch
Edit `/opt/devxura/infra/env/.env.runtime`:
```bash
STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...
```
Then restart central-app:
```bash
cd /opt/devxura/infra/compose
docker compose -f docker-compose.central.yml down
docker compose -f docker-compose.central.yml up -d --build
```

### 2. Stripe Webhook Live Endpoint
In Stripe Dashboard → Webhooks:
- Add endpoint: `https://app.aiinvention.tech/stripe/webhook`
- Events: `customer.subscription.created`, `customer.subscription.updated`, `customer.subscription.deleted`

### 3. Verify Stripe Live
```bash
curl https://app.aiinvention.tech/health
# Should show: stripeConfigured: true
```

### 4. Backup Before Launch
```bash
docker exec compose-postgres-1 pg_dump -U devxura devxura > /opt/backups/devxura-v1.0.0-launch-$(date +%Y%m%d-%H%M).sql
```

### 5. Monitor Health
```bash
curl https://app.aiinvention.tech/health
curl https://aiinvention.tech
```

### 6. Announce Launch

---

## Post-Launch Monitoring

- [ ] Monitor Stripe Dashboard for webhook deliveries
- [ ] Check central-app logs: `docker logs compose-central-app-1`
- [ ] Verify new signups appear in Postgres
- [ ] Weekly backup cron job active

---

## Backup Command (Production)

```bash
# Full database backup
docker exec compose-postgres-1 pg_dump -U devxura devxura > /opt/backups/devxura-$(date +%Y%m%d-%H%M).sql

# Restore from backup
docker exec -i compose-postgres-1 psql -U devxura devxura < /opt/backups/devxura-YYYYMMDD-HHMM.sql
```

## Rollback Command

```bash
# 1. Stop central-app
cd /opt/devxura/infra/compose
docker compose -f docker-compose.central.yml down

# 2. Restore previous database backup (if needed)
docker exec -i compose-postgres-1 psql -U devxura devxura < /opt/backups/devxura-PREVIOUS-VALID-BACKUP.sql

# 3. Rebuild and restart from known-good tag
cd /opt/devxura
git fetch origin
git checkout v1.0.0
docker compose -f infra/compose/docker-compose.central.yml up -d --build

# 4. Verify
curl https://app.aiinvention.tech/health
```
