Files
explorer-monorepo/COMPLETE_DEPLOYMENT.md

180 lines
4.4 KiB
Markdown
Raw Normal View History

# Complete Deployment - All Steps
## ✅ Ready to Execute
All deployment scripts and documentation are ready. Execute the following commands in your terminal:
## Step-by-Step Execution
### 1. Navigate to Project
```bash
cd ~/projects/proxmox/explorer-monorepo
```
### 2. Run Complete Deployment Script
```bash
bash scripts/run-all-deployment.sh
```
This script will:
- ✅ Test database connection
- ✅ Run migration
- ✅ Restart server with database
- ✅ Test all endpoints
- ✅ Provide status summary
## Alternative: Manual Execution
If the script doesn't work, run these commands manually:
### Step 1: Test Database Connection
```bash
PGPASSWORD='L@ker$2010' psql -h localhost -U explorer -d explorer -c "SELECT 1;"
```
### Step 2: Check Existing Tables
```bash
PGPASSWORD='L@ker$2010' psql -h localhost -U explorer -d explorer -c "
SELECT COUNT(*) FROM information_schema.tables
WHERE table_schema = 'public'
AND table_name IN ('wallet_nonces', 'operator_roles', 'addresses', 'token_transfers');
"
```
### Step 3: Run Migration
```bash
cd ~/projects/proxmox/explorer-monorepo
PGPASSWORD='L@ker$2010' psql -h localhost -U explorer -d explorer \
-f backend/database/migrations/0010_track_schema.up.sql
```
### Step 4: Stop Existing Server
```bash
pkill -f api-server
sleep 2
```
### Step 5: Start Server with Database
```bash
cd ~/projects/proxmox/explorer-monorepo/backend
export DB_PASSWORD='L@ker$2010'
export JWT_SECRET='deployment-secret-$(date +%s)'
export RPC_URL='http://192.168.11.250:8545'
export CHAIN_ID=138
export PORT=8080
export DB_HOST='localhost'
export DB_USER='explorer'
export DB_NAME='explorer'
nohup ./bin/api-server > logs/api-server.log 2>&1 &
echo $! > logs/api-server.pid
sleep 3
```
### Step 6: Verify Server
```bash
# Check health
curl http://localhost:8080/health
# Check features
curl http://localhost:8080/api/v1/features
# Test Track 1
curl http://localhost:8080/api/v1/track1/blocks/latest?limit=5
# Test auth
curl -X POST http://localhost:8080/api/v1/auth/nonce \
-H 'Content-Type: application/json' \
-d '{"address":"0x1234567890123456789012345678901234567890"}'
```
## Expected Results
After completion, you should see:
**Database:** Connected and migrated
**Server:** Running on port 8080
**Health:** Shows database as "ok"
**Endpoints:** All responding correctly
**Track 1:** Fully operational
**Track 2-4:** Configured and protected
## Verification Commands
```bash
# Check server process
ps aux | grep api-server
# Check server logs
tail -f backend/logs/api-server.log
# Test health endpoint
curl http://localhost:8080/health | jq .
# Test feature flags
curl http://localhost:8080/api/v1/features | jq .
# Verify database tables
PGPASSWORD='L@ker$2010' psql -h localhost -U explorer -d explorer -c "
SELECT table_name FROM information_schema.tables
WHERE table_schema = 'public'
AND table_name IN ('wallet_nonces', 'operator_roles', 'addresses', 'token_transfers')
ORDER BY table_name;
"
```
## Next Steps After Deployment
1. **Test Authentication Flow**
- Connect wallet in frontend
- Request nonce
- Sign message
- Get JWT token
2. **Approve Users**
```bash
export DB_PASSWORD='L@ker$2010'
bash scripts/approve-user.sh <address> <track_level>
```
3. **Test Track 2-4 Endpoints**
- Use JWT token from authentication
- Test protected endpoints
4. **Start Indexers (Optional)**
```bash
cd backend/indexer
go run main.go
```
## Troubleshooting
### If Database Connection Fails
- Verify PostgreSQL is running: `systemctl status postgresql`
- Check user exists: `sudo -u postgres psql -c "\du"`
- Verify password: `L@ker$2010`
### If Server Won't Start
- Check logs: `tail -50 backend/logs/api-server.log`
- Verify port 8080 is free: `netstat -tuln | grep 8080`
- Check environment variables are set
### If Migration Fails
- Some tables may already exist (this is OK)
- Check existing tables: See Step 2 above
- Migration is idempotent (safe to run multiple times)
## Status
All deployment scripts and documentation are ready. Execute the commands above to complete the deployment.
**Files Created:**
-`scripts/run-all-deployment.sh` - Automated deployment
-`scripts/fix-database-connection.sh` - Database connection helper
-`scripts/test-full-deployment.sh` - Complete test suite
-`DEPLOYMENT_FINAL_STATUS.md` - Status report
-`COMPLETE_DEPLOYMENT.md` - This file
**Ready for execution!**