| # Deployment Guide | |
| ## Quick Start | |
| ### 1. Copy Firebase Credentials | |
| Copy your Firebase Admin SDK JSON file to the project root: | |
| ```bash | |
| # Windows | |
| copy C:\Colorize\colorize-662df-firebase-adminsdk-fbsvc-e080668793.json . | |
| # Linux/Mac | |
| cp /path/to/colorize-662df-firebase-adminsdk-fbsvc-e080668793.json . | |
| ``` | |
| **Important**: For Hugging Face Spaces, you should add this as a secret instead of committing it to the repository. | |
| ### 2. Deploy to Hugging Face Spaces | |
| ```bash | |
| # Initialize git repository | |
| git init | |
| git add . | |
| git commit -m "Deploy Colorize API" | |
| # Add Hugging Face remote | |
| git remote add origin https://huggingface.co/spaces/LogicGoInfotechSpaces/Colorize | |
| # Push to Hugging Face | |
| git push -u origin main | |
| ``` | |
| ### 3. Configure Hugging Face Space Secrets | |
| 1. Go to your Space: https://huggingface.co/spaces/LogicGoInfotechSpaces/Colorize | |
| 2. Navigate to Settings → Secrets | |
| 3. Add a new secret: | |
| - **Name**: `FIREBASE_CREDENTIALS` | |
| - **Value**: Paste the entire contents of your Firebase Admin SDK JSON file | |
| ### 4. Update Dockerfile for Secrets (Optional) | |
| If you want to use the secret, you can modify the Dockerfile to create the file from the secret: | |
| ```dockerfile | |
| # Add this before the CMD line | |
| RUN if [ -n "$FIREBASE_CREDENTIALS" ]; then \ | |
| echo "$FIREBASE_CREDENTIALS" > colorize-662df-firebase-adminsdk-fbsvc-e080668793.json; \ | |
| fi | |
| ``` | |
| ## Testing Locally | |
| ### Run with Docker | |
| ```bash | |
| # Build image | |
| docker build -t colorize-api . | |
| # Run container | |
| docker run -p 7860:7860 \ | |
| -v $(pwd)/colorize-662df-firebase-adminsdk-fbsvc-e080668793.json:/app/colorize-662df-firebase-adminsdk-fbsvc-e080668793.json \ | |
| colorize-api | |
| ``` | |
| ### Run without Docker | |
| ```bash | |
| # Install dependencies | |
| pip install -r requirements.txt | |
| # Run API | |
| uvicorn app.main:app --host 0.0.0.0 --port 7860 | |
| ``` | |
| ## API Endpoints | |
| Once deployed, your API will be available at: | |
| - `https://logicgoinfotechspaces-colorize.hf.space/health` - Health check | |
| - `https://logicgoinfotechspaces-colorize.hf.space/colorize` - Colorize image | |
| - `https://logicgoinfotechspaces-colorize.hf.space/upload` - Upload image | |
| ## Frontend Integration Example | |
| ```javascript | |
| // Initialize Firebase | |
| import { initializeApp } from "firebase/app"; | |
| import { initializeAppCheck, ReCaptchaEnterpriseProvider } from "firebase/app-check"; | |
| const firebaseConfig = { | |
| apiKey: "AIzaSyBIB6rcfyyqy5niERTXWvVD714Ter4Vx68", | |
| authDomain: "colorize-662df.firebaseapp.com", | |
| projectId: "colorize-662df", | |
| storageBucket: "colorize-662df.firebasestorage.app", | |
| messagingSenderId: "69166278311", | |
| appId: "1:69166278311:web:0e8c50b8dd8627aaeadd82", | |
| measurementId: "G-58CC2J8XKX" | |
| }; | |
| const app = initializeApp(firebaseConfig); | |
| const appCheck = initializeAppCheck(app, { | |
| provider: new ReCaptchaEnterpriseProvider('YOUR_RECAPTCHA_SITE_KEY'), | |
| isTokenAutoRefreshEnabled: true | |
| }); | |
| // Colorize image function | |
| async function colorizeImage(file) { | |
| const { getToken } = await import('firebase/app-check'); | |
| const token = await getToken(appCheck); | |
| const formData = new FormData(); | |
| formData.append('file', file); | |
| const response = await fetch('https://logicgoinfotechspaces-colorize.hf.space/colorize', { | |
| method: 'POST', | |
| headers: { | |
| 'X-Firebase-AppCheck': token.token | |
| }, | |
| body: formData | |
| }); | |
| return await response.json(); | |
| } | |
| ``` | |
| ## Troubleshooting | |
| ### Model Not Loading | |
| - Check Hugging Face Space logs | |
| - Verify model ID: `rsortino/ColorizeNet` | |
| - Ensure sufficient disk space (models can be large) | |
| ### Firebase App Check Failing | |
| - Verify credentials are correctly set as a secret | |
| - Check that App Check is enabled in Firebase Console | |
| - Ensure reCAPTCHA Enterprise is set up | |
| ### Port Issues | |
| Hugging Face Spaces automatically handles port 7860. The Dockerfile is configured for this. | |