diff --git a/DEPLOYMENT-CHECKLIST.md b/DEPLOYMENT-CHECKLIST.md new file mode 100644 index 0000000..f84759d --- /dev/null +++ b/DEPLOYMENT-CHECKLIST.md @@ -0,0 +1,142 @@ +# Deployment Checklist - Oliver Metadata Tool v4.0 + +## ✅ Pre-Deployment + +### 1. Backend .env Configuration +```bash +cd /opt/solventum-image-metadata +sudo cp .env.production .env +sudo nano .env +``` + +**Required variables:** +```env +SECRET_KEY= +OPENAI_API_KEY=sk-... +AZURE_CLIENT_SECRET= +``` + +**Verify Azure AD settings:** +```env +AZURE_CLIENT_ID=9079054c-9620-4757-a256-23413042f1ef +AZURE_TENANT_ID=e519c2e6-bc6d-4fdf-8d9c-923c2f002385 +REDIRECT_URI=https://ai-sandbox.oliver.solutions/solventum-image-metadata/ +``` + +### 2. Apache Configuration + +Add to `/etc/apache2/sites-available/solventum-image-metadata.conf`: + +```apache +# Frontend - static files +Alias /solventum-image-metadata /var/www/html/solventum-image-metadata + + + Options -Indexes +FollowSymLinks + AllowOverride All + Require all granted + + RewriteEngine On + RewriteBase /solventum-image-metadata + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_URI} !^/solventum-image-metadata/api/ + RewriteRule ^ /solventum-image-metadata/index.html [L] + + +# Backend API +ProxyPass /solventum-image-metadata/api/ http://localhost:5001/ +ProxyPassReverse /solventum-image-metadata/api/ http://localhost:5001/ +ProxyTimeout 600 +``` + +Enable modules: +```bash +sudo a2enmod rewrite alias proxy proxy_http +sudo apache2ctl configtest +sudo systemctl reload apache2 +``` + +## ✅ Deployment + +```bash +cd /opt/solventum-image-metadata +git pull origin main +sudo ./deploy.sh +``` + +## ✅ Verification + +### 1. Check Backend +```bash +curl http://localhost:5001/health +# Expected: {"status":"healthy"} +``` + +### 2. Check Frontend +```bash +curl https://ai-sandbox.oliver.solutions/solventum-image-metadata/ +# Expected: HTML with React app +``` + +### 3. Check API through Apache +```bash +curl https://ai-sandbox.oliver.solutions/solventum-image-metadata/api/health +# Expected: {"status":"healthy"} +``` + +### 4. Test SSO +1. Go to: https://ai-sandbox.oliver.solutions/solventum-image-metadata/ +2. Click "Login with Microsoft" +3. Should redirect to Azure AD +4. After login, should return to dashboard + +### 5. Test File Upload +1. Login to dashboard +2. Select "Manual Entry" or "AI Generation" +3. Drag & drop a PDF file +4. Edit metadata (title, subject, keywords) +5. Click "Save Metadata" +6. Download file +7. Verify: `exiftool downloaded.pdf` + +## 📊 Final Status + +- [ ] Backend running on port 5001 +- [ ] Redis running in Docker +- [ ] Frontend deployed to /var/www/html/solventum-image-metadata +- [ ] Apache configured with Alias and ProxyPass +- [ ] .env configured with all secrets +- [ ] SSO redirect to Azure AD working +- [ ] SSO callback to dashboard working +- [ ] File upload working +- [ ] Metadata editing working +- [ ] Download working + +## 🆘 Troubleshooting + +### Backend not starting +```bash +docker logs oliver-backend --tail 100 +``` + +### Frontend 404 +```bash +ls -la /var/www/html/solventum-image-metadata/ +# Should contain: index.html, assets/, etc. +``` + +### SSO redirect loop +```bash +# Check .env REDIRECT_URI matches Azure AD exactly +grep REDIRECT_URI /opt/solventum-image-metadata/.env +# Must be: https://ai-sandbox.oliver.solutions/solventum-image-metadata/ +``` + +### API 404 errors +```bash +# Check Apache proxy +sudo apache2ctl -S | grep solventum +# Check backend is running +curl http://localhost:5001/docs +``` diff --git a/frontend/.env.production b/frontend/.env.production new file mode 100644 index 0000000..764806c --- /dev/null +++ b/frontend/.env.production @@ -0,0 +1,3 @@ +# Frontend Production Environment +# API requests go through Apache proxy +VITE_API_URL=/api