# Create the `avatars` storage bucket

If you see **"Bucket not found"** when saving a profile with an uploaded image, the `avatars` bucket does not exist yet. Create it once using one of the methods below.

## Option 1: Supabase Dashboard (recommended)

1. Open your project: **https://supabase.com/dashboard** (or your self‑hosted URL, e.g. `https://supa1.satoshinakamoto.win`).
2. Go to **Storage** in the left sidebar.
3. Click **New bucket**.
4. Set:
   - **Name:** `avatars` (must be exactly this).
   - **Public bucket:** **ON** (so avatar URLs work without signed links).
   - **File size limit:** `2` MB (optional).
   - **Allowed MIME types:** `image/jpeg`, `image/png`, `image/gif`, `image/webp` (optional).
5. Click **Create bucket**.

Then add policies so users can upload only to their own folder and everyone can read:

1. Open the **avatars** bucket.
2. Go to **Policies** (or **Storage** → **Policies**).
3. Add policies equivalent to the ones in `supabase/migrations/20250213200000_profiles_avatar_and_storage.sql` (from the line `-- RLS: allow authenticated users...` onward), or run that part of the migration in the SQL Editor.

## Option 2: SQL Editor (if your Supabase allows it)

Run in **SQL Editor**:

```sql
INSERT INTO storage.buckets (id, name, public, file_size_limit, allowed_mime_types)
VALUES (
  'avatars',
  'avatars',
  true,
  2097152,
  ARRAY['image/jpeg', 'image/png', 'image/gif', 'image/webp']
)
ON CONFLICT (id) DO NOTHING;
```

If you get an error (e.g. column names or schema differ), use **Option 1** instead.

After the bucket exists, run the **storage RLS policies** from `supabase/migrations/20250213200000_profiles_avatar_and_storage.sql` (the `CREATE POLICY` statements for `storage.objects`) so uploads and public read work correctly.
