| # π 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! |
|
|