Skip to content

Local Storage Setup

Use MinIO to simulate Cloudflare R2 during development.

Prerequisites

  • Docker and Docker Compose installed
  • Backend configured for local development

Start MinIO

docker-compose up -d

This starts MinIO with:

  • API: http://localhost:9000
  • Console: http://localhost:9001
  • Credentials: minioadmin / minioadmin

Configure Backend

Update appsettings.Development.json:

{
  "ObjectStorage": {
    "Provider": "MinIO",
    "Endpoint": "http://localhost:9000",
    "AccessKeyId": "minioadmin",
    "SecretAccessKey": "minioadmin",
    "BucketName": "unicorn-trails",
    "UseHttps": false
  }
}

Create Bucket

  1. Open MinIO Console: http://localhost:9001
  2. Login with minioadmin / minioadmin
  3. Create bucket named unicorn-trails
  4. Set bucket policy to allow public read (for image viewing)

Verify Setup

  1. Start the backend: dotnet run
  2. Start the frontend: npm run dev
  3. Try uploading a profile picture or marker image
  4. Check MinIO Console to see uploaded files

Stopping

docker-compose down

To remove data:

docker-compose down -v

Production

Production uses Cloudflare R2 with different credentials. See Integrations.