# ๐Ÿš€ Supabase Gradio Database Interface - Deployment Guide This project creates a Gradio web interface for interacting with your Supabase PostgreSQL database. ## ๐Ÿ“‹ Features - ๐Ÿ“Š **View Tables**: Browse and display data from your database tables - โž• **Add Data**: Insert new records into sample tables - ๐Ÿ” **Custom Queries**: Execute custom SQL queries - ๐Ÿ”„ **Real-time Updates**: Refresh table lists and data - ๐Ÿ›ก๏ธ **Secure Connection**: Uses environment variables for credentials ## ๐Ÿ› ๏ธ Local Development Setup ### 1. Prerequisites - Python 3.9+ - Conda (recommended) ### 2. Environment Setup ```bash # Create conda environment conda create -n superbase_gradio python=3.9 -y conda activate superbase_gradio # Install dependencies pip install -r requirements.txt ``` ### 3. Database Configuration Set up your environment variables with your Supabase credentials: ```bash export DB_HOST="db.bnjblzcqaumctpehgoid.supabase.co" export DB_PORT="5432" export DB_NAME="postgres" export DB_USER="postgres" export DB_PASSWORD="your_actual_password_here" export HF_TOKEN="your_hf_token_here" ``` ### 4. Test Connection ```bash python test_connection.py ``` ### 5. Run Locally ```bash python app.py ``` Access the interface at: `http://localhost:7860` ## ๐ŸŒ Hugging Face Deployment ### 1. Push to Repository ```bash # Add and commit all files git add . git commit -m "Initial Supabase Gradio interface" git push origin main ``` ### 2. Set Environment Variables In your Hugging Face Space settings, add these secrets: - `DB_HOST`: `db.bnjblzcqaumctpehgoid.supabase.co` - `DB_PORT`: `5432` - `DB_NAME`: `postgres` - `DB_USER`: `postgres` - `DB_PASSWORD`: `your_actual_supabase_password` - `HF_TOKEN`: `your_hf_token_here` ### 3. Repository Structure ``` testDB_full/ โ”œโ”€โ”€ app.py # Main Gradio application โ”œโ”€โ”€ requirements.txt # Python dependencies โ”œโ”€โ”€ config.py # Configuration helper โ”œโ”€โ”€ test_connection.py # Connection test script โ”œโ”€โ”€ README.md # Hugging Face Space README โ””โ”€โ”€ DEPLOYMENT.md # This deployment guide ``` ### 4. Deployment Process 1. Your Space will automatically rebuild when you push changes 2. The app will be available at: `https://huggingface.co/spaces/Babajaan/testDB` 3. Check the logs for any deployment issues ## ๐Ÿ” Security Notes - Never commit passwords or sensitive credentials to the repository - Always use environment variables for database credentials - For production use, consider implementing authentication - Limit database permissions for the connection user ## ๐Ÿงช Testing the Interface 1. **View Tables**: Select a table from the dropdown and view its data 2. **Create Sample Table**: Use the "Create Sample Table" button to set up test data 3. **Add Records**: Fill in the form to add new sample records 4. **Custom Queries**: Execute SELECT queries to explore your data ## ๐Ÿ†˜ Troubleshooting ### Common Issues: 1. **Connection Failed**: Check your database credentials and network connectivity 2. **Table Not Found**: Ensure the table exists and you have proper permissions 3. **Deployment Issues**: Check Hugging Face Space logs for specific errors ### Debug Steps: 1. Run `python test_connection.py` locally first 2. Verify all environment variables are set correctly 3. Check database firewall settings allow connections from Hugging Face 4. Review application logs in Hugging Face Space settings ## ๐Ÿ“š Database Operations The interface supports: - **SELECT**: View and query data - **INSERT**: Add new records (via forms) - **CREATE TABLE**: Create sample tables for testing - **Custom SQL**: Execute any SQL query (use with caution) ## ๐Ÿ”— Useful Links - [Supabase Documentation](https://supabase.com/docs) - [Gradio Documentation](https://gradio.app/docs) - [Hugging Face Spaces](https://huggingface.co/docs/hub/spaces) --- **โš ๏ธ Important**: Remember to replace `[YOUR-PASSWORD]` with your actual Supabase database password!