WhatsMine Documentation
Home
  • What is WhatsMine?
  • Feature Tour
  • Requirements
  • Installation
  • Configuration (.env reference)
  • Going Live Checklist
Admin Guide
User Guide
Integrations
  • Architecture
  • REST API v1
  • Production Deployment
  • Frequently Asked Questions
  • Troubleshooting
  • Changelog
Home
  • What is WhatsMine?
  • Feature Tour
  • Requirements
  • Installation
  • Configuration (.env reference)
  • Going Live Checklist
Admin Guide
User Guide
Integrations
  • Architecture
  • REST API v1
  • Production Deployment
  • Frequently Asked Questions
  • Troubleshooting
  • Changelog
  • Integrations

    • Integrations Overview
    • Meta / WhatsApp Business
    • Messenger & Instagram
    • SMS Providers
    • AI Providers
    • Payments (Stripe, PayPal & Paddle)
    • Social Networks
    • Google (Workspace & Places)
    • E-commerce (Shopify, WooCommerce, BigCommerce)
    • Email / SMTP
    • Real-time & Push Notifications
    • Storage

Storage

WhatsMine stores uploaded files — contact avatars, message media, campaign assets, template media and invoice PDFs. By default these live on the server's local disk, but for production (and especially multi-server setups) you should use cloud storage.

Admin location: Admin → Integrations

Supported backends

BackendCredentials
Local diskNone — uses the server filesystem.
Amazon S3Key, Secret, Region, Bucket (+ optional URL & path prefix).
DigitalOcean SpacesKey, Secret, Region, Bucket, Endpoint (+ optional URL).
WasabiKey, Secret, Region, Bucket, Endpoint (+ optional URL).

Only one backend is active (the default) at a time.

Why use cloud storage?

  • Persistence — files survive deploys and server rebuilds (local files can be lost on ephemeral hosting).
  • Scale — multiple app servers share the same files.
  • Performance — serve media from a CDN-backed bucket.
  • Backups — object storage is durable and easy to back up.

Setting it up

Via the admin panel

  1. Go to Admin → Integrations and open your storage provider (S3, Spaces or Wasabi).
  2. Enter the credentials (key, secret, region, bucket, endpoint).
  3. Test the connection.
  4. Set as default.

📸 Screenshot: The storage integration form.

Via .env

Alternatively, set the filesystem in .env:

FILESYSTEM_DISK=s3
AWS_ACCESS_KEY_ID=your-key
AWS_SECRET_ACCESS_KEY=your-secret
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=your-bucket
# For S3-compatible services (Spaces/Wasabi):
AWS_ENDPOINT=https://your-endpoint
AWS_USE_PATH_STYLE_ENDPOINT=true

Provider notes

  • Amazon S3 — create a bucket and an IAM user with s3:PutObject, s3:GetObject, s3:DeleteObject on it.
  • DigitalOcean Spaces — create a Space and Spaces access keys; use the regional endpoint (e.g. https://nyc3.digitaloceanspaces.com).
  • Wasabi — create a bucket and access keys; use the matching regional endpoint.

Make uploads public-readable where appropriate

Media that needs to display in chats and on the marketing site should be publicly readable (or served via signed URLs). Configure your bucket's access policy accordingly.

Invoices & backups

Invoice PDFs are written to storage too — make sure your storage is persistent so download links keep working. Database backups can also target a storage disk:

php artisan db:backup --disk=s3

➡️ That completes the Integrations section. Next: the Developer Reference.

Last Updated: 6/19/26, 4:34 PM
Prev
Real-time & Push Notifications