# DBIS Core Deployment - COMPLETE ✅ ## Deployment Status: SUCCESSFUL All DBIS Core services have been successfully deployed, configured, and are running on Proxmox containers. ## Service Status ### ✅ PostgreSQL Primary (VMID 10100) - **Status**: ✅ Running - **IP**: 192.168.11.100 - **Port**: 5432 - **Database**: dbis_core - **User**: dbis - **Connection**: `postgresql://dbis:8cba649443f97436db43b34ab2c0e75b5cf15611bef9c099cee6fb22cc3d7771@192.168.11.100:5432/dbis_core` ### ✅ PostgreSQL Replica (VMID 10101) - **Status**: ✅ Container Running (ready for replication setup) - **IP**: 192.168.11.101 ### ✅ Redis Cache (VMID 10120) - **Status**: ✅ Running - **IP**: 192.168.11.120 - **Port**: 6379 - **Service**: redis-server (active) ### ✅ API Primary (VMID 10150) - **Status**: ✅ Running - **IP**: 192.168.11.150 - **Port**: 3000 - **Service**: dbis-api (systemd) - **Source**: /opt/dbis-core - **Node.js**: v18.20.8 (via nvm) - **Build**: Compiled TypeScript ✅ ### ✅ API Secondary (VMID 10151) - **Status**: ✅ Running - **IP**: 192.168.11.151 - **Port**: 3000 - **Service**: dbis-api (systemd) - **Source**: /opt/dbis-core - **Node.js**: v18.20.8 (via nvm) - **Build**: Compiled TypeScript ✅ ### ✅ Frontend (VMID 10130) - **Status**: ✅ Running - **IP**: 192.168.11.130 - **Port**: 80 (HTTP) - **Service**: nginx (active) - **Source**: /opt/dbis-core/frontend/dist - **Node.js**: v18.20.8 (via nvm) - **Build**: Vite production build ✅ ## Service Endpoints | Service | URL | Status | |---------|-----|--------| | PostgreSQL | `192.168.11.100:5432` | ✅ Running | | Redis | `192.168.11.120:6379` | ✅ Running | | API Primary | `http://192.168.11.150:3000` | ✅ Running | | API Secondary | `http://192.168.11.151:3000` | ✅ Running | | Frontend | `http://192.168.11.130` | ✅ Running | | API Health | `http://192.168.11.150:3000/health` | ✅ Available | ## Quick Access ```bash # API Health Check curl http://192.168.11.150:3000/health # Frontend curl http://192.168.11.130 # Service Status ssh root@192.168.11.10 "cd /root/proxmox/dbis_core/scripts/management && ./status.sh" ``` ## Database Credentials ⚠️ **IMPORTANT**: Save these credentials securely! - **Database**: dbis_core - **User**: dbis - **Password**: `8cba649443f97436db43b34ab2c0e75b5cf15611bef9c099cee6fb22cc3d7771` - **Host**: 192.168.11.100 - **Port**: 5432 - **Connection String**: `postgresql://dbis:8cba649443f97436db43b34ab2c0e75b5cf15611bef9c099cee6fb22cc3d7771@192.168.11.100:5432/dbis_core` ## Configuration Files ### API Environment (.env) Location: `/opt/dbis-core/.env` (on each API container) ``` DATABASE_URL=postgresql://dbis:PASSWORD@192.168.11.100:5432/dbis_core JWT_SECRET= ALLOWED_ORIGINS=http://192.168.11.130,https://192.168.11.130 NODE_ENV=production LOG_LEVEL=info HSM_ENABLED=false REDIS_URL=redis://192.168.11.120:6379 PORT=3000 ``` ### Frontend Environment (.env) Location: `/opt/dbis-core/frontend/.env` ``` VITE_API_BASE_URL=http://192.168.11.150:3000 VITE_APP_NAME=DBIS Admin Console VITE_REAL_TIME_UPDATE_INTERVAL=5000 ``` ## Management Commands All management scripts are at `/root/proxmox/dbis_core/scripts/management/`: ```bash # Check service status ssh root@192.168.11.10 "cd /root/proxmox/dbis_core/scripts/management && ./status.sh" # Start all services ssh root@192.168.11.10 "cd /root/proxmox/dbis_core/scripts/management && ./start-services.sh" # Stop all services ssh root@192.168.11.10 "cd /root/proxmox/dbis_core/scripts/management && ./stop-services.sh" # Restart all services ssh root@192.168.11.10 "cd /root/proxmox/dbis_core/scripts/management && ./restart-services.sh" ``` ## Service Logs ```bash # API logs (Primary) ssh root@192.168.11.10 "pct exec 10150 -- journalctl -u dbis-api -f" # API logs (Secondary) ssh root@192.168.11.10 "pct exec 10151 -- journalctl -u dbis-api -f" # Frontend Nginx logs ssh root@192.168.11.10 "pct exec 10130 -- tail -f /var/log/nginx/access.log" ssh root@192.168.11.10 "pct exec 10130 -- tail -f /var/log/nginx/error.log" # PostgreSQL logs ssh root@192.168.11.10 "pct exec 10100 -- journalctl -u postgresql -f" # Redis logs ssh root@192.168.11.10 "pct exec 10120 -- journalctl -u redis-server -f" ``` ## Database Migrations If you need to run database migrations: ```bash ssh root@192.168.11.10 "pct exec 10150 -- bash -c 'source /root/.nvm/nvm.sh && cd /opt/dbis-core && npx prisma migrate deploy'" ``` Or use the configuration script: ```bash ssh root@192.168.11.10 "cd /root/proxmox/dbis_core/scripts/deployment && DBIS_DB_PASSWORD=8cba649443f97436db43b34ab2c0e75b5cf15611bef9c099cee6fb22cc3d7771 ./configure-database.sh" ``` ## What Was Deployed 1. ✅ All 6 containers created and running 2. ✅ PostgreSQL database configured with user 3. ✅ Redis cache running 4. ✅ Source code deployed to all containers 5. ✅ Node.js dependencies installed 6. ✅ TypeScript compiled for API 7. ✅ Frontend built with Vite 8. ✅ Systemd services configured and running 9. ✅ Nginx configured and serving frontend 10. ✅ Environment variables configured 11. ✅ Database migrations ready (if needed) ## Troubleshooting ### Service Not Responding 1. **Check service status**: ```bash ssh root@192.168.11.10 "pct exec -- systemctl status " ``` 2. **Check logs**: ```bash ssh root@192.168.11.10 "pct exec -- journalctl -u -n 50" ``` 3. **Verify build exists**: ```bash # API ssh root@192.168.11.10 "pct exec 10150 -- test -f /opt/dbis-core/dist/index.js && echo 'Build exists' || echo 'Build missing'" # Frontend ssh root@192.168.11.10 "pct exec 10130 -- test -d /opt/dbis-core/frontend/dist && echo 'Build exists' || echo 'Build missing'" ``` ### API Errors Check API logs for specific errors: ```bash ssh root@192.168.11.10 "pct exec 10150 -- journalctl -u dbis-api -n 100 --no-pager" ``` ### Database Connection Issues Test database connection: ```bash ssh root@192.168.11.10 "pct exec 10150 -- bash -c 'source /root/.nvm/nvm.sh && cd /opt/dbis-core && npx prisma db pull'" ``` ## Network Access All services are accessible on the internal network (192.168.11.0/24). For external access, configure: 1. **Cloudflare Tunnel** (recommended) - See `CLOUDFLARE_DNS_CONFIGURATION.md` 2. **Port forwarding** on router 3. **VPN access** to internal network ## Security Notes 1. **Database Password**: Consider changing the auto-generated password in production 2. **JWT Secret**: Each API container has a unique JWT secret (auto-generated) 3. **HTTPS**: Configure SSL certificates for frontend in production 4. **Firewall**: Database (5432) and Redis (6379) ports should be restricted to internal network 5. **CORS**: API only allows origins from the frontend IP (192.168.11.130) ## Next Steps (Optional) 1. ⏭️ Configure PostgreSQL replication (replica container ready) 2. ⏭️ Set up SSL/HTTPS for frontend 3. ⏭️ Configure Cloudflare DNS and tunnels (see `CLOUDFLARE_DNS_CONFIGURATION.md`) 4. ⏭️ Set up monitoring and alerting 5. ⏭️ Configure automated backups for PostgreSQL 6. ⏭️ Set up log aggregation 7. ⏭️ Configure health checks and auto-recovery ## Deployment Complete! 🎉 All DBIS Core services are deployed, configured, and running successfully on Proxmox! The DBIS Core Banking System is now operational at: - **Frontend**: http://192.168.11.130 - **API**: http://192.168.11.150:3000 (Primary), http://192.168.11.151:3000 (Secondary)