Files
SIB/old/README-SUPABASE-LOCAL.md

197 lines
3.8 KiB
Markdown

# Local Supabase Setup Guide
This guide will help you set up and run Supabase locally for development.
## Prerequisites
1. **Docker Desktop** - Supabase runs on Docker
- Download: https://docs.docker.com/desktop
- Make sure Docker Desktop is running before proceeding
2. **Supabase CLI** - Already installed via Homebrew
## Quick Start
### 1. Start Local Supabase
```bash
cd old
./scripts/setup-local-supabase.sh
```
This script will:
- Check if Docker is running
- Initialize Supabase (if not already done)
- Start all Supabase services locally
- Apply all database migrations
- Display your local credentials
### 2. Run Flutter App with Local Supabase
```bash
./scripts/run-flutter-local.sh
```
Or specify a device:
```bash
./scripts/run-flutter-local.sh chrome
./scripts/run-flutter-local.sh web-server
```
### 3. Get Credentials Manually
If you need to see the credentials again:
```bash
./scripts/get-local-credentials.sh
```
Or use the Supabase CLI directly:
```bash
supabase status
```
## Manual Setup
If you prefer to set up manually:
### Step 1: Start Supabase
```bash
cd old
supabase start
```
### Step 2: Get Credentials
After starting, `supabase status` will show:
- **API URL**: Your local Supabase URL (usually `http://127.0.0.1:54321`)
- **anon key**: Your local anon key
### Step 3: Run Flutter with Credentials
```bash
flutter run -d chrome \
--dart-define=SUPABASE_URL="http://127.0.0.1:54321" \
--dart-define=SUPABASE_ANON_KEY="<your-anon-key>"
```
## Useful Commands
### Supabase Management
```bash
# Start Supabase
supabase start
# Stop Supabase
supabase stop
# View Supabase status and credentials
supabase status
# View logs
supabase logs
# Reset database (applies all migrations fresh)
supabase db reset
# Apply new migrations
supabase db reset
```
### Database Migrations
Migrations are automatically applied when you run `supabase start` or `supabase db reset`.
To create a new migration:
```bash
supabase migration new <migration_name>
```
## Local Supabase Services
When running locally, Supabase provides:
- **API**: `http://127.0.0.1:54321`
- **Studio (Admin UI)**: `http://127.0.0.1:54323`
- **Database**: `postgresql://postgres:postgres@127.0.0.1:54322/postgres`
- **Auth**: Handled by the API
- **Storage**: Handled by the API
## Accessing Supabase Studio
Supabase Studio is a web-based admin interface for managing your local database:
1. Start Supabase: `supabase start`
2. Open Studio URL from `supabase status` output (usually `http://127.0.0.1:54323`)
3. Use it to:
- View and edit tables
- Run SQL queries
- Manage authentication
- View API documentation
## Troubleshooting
### Docker Not Running
```
Error: Cannot connect to the Docker daemon
```
**Solution**: Start Docker Desktop and wait for it to fully start, then try again.
### Port Already in Use
If ports 54321, 54322, or 54323 are already in use:
1. Stop the conflicting service
2. Or modify `supabase/config.toml` to use different ports
### Database Reset Issues
If migrations fail:
```bash
# Stop Supabase
supabase stop
# Reset everything
supabase db reset
# Start again
supabase start
```
### Flutter Can't Connect
Make sure:
1. Supabase is running (`supabase status`)
2. You're using the correct URL and anon key
3. The `--dart-define` flags are correctly formatted
## Switching Between Local and Production
### Use Local Supabase
```bash
./scripts/run-flutter-local.sh
```
### Use Production Supabase
Update `env.json` with production credentials and run:
```bash
flutter run -d chrome \
--dart-define-from-file=env.json
```
Note: The current app uses `String.fromEnvironment`, so you need `--dart-define` flags.
## Next Steps
1. ✅ Start Docker Desktop
2. ✅ Run `./scripts/setup-local-supabase.sh`
3. ✅ Run `./scripts/run-flutter-local.sh`
4. ✅ Open Supabase Studio to view your database
5. ✅ Start developing!