Skip to main content

Set up file storage

Mattermost requires a file storage system for storing user files, images, and attachments. Choose one of the following before you install, because moving between them later means migrating existing files:

  • S3-compatible object storage (recommended)
  • Network file storage
  • Local file storage

For guidance on how much storage to provision, see backing storage benchmarks.

For production environments, we recommend using S3-compatible object storage such as:

  • Amazon S3
  • Digital Ocean Spaces
  • Other S3-compatible services

When using S3 storage, you'll need:

  1. A bucket created specifically for Mattermost
  2. Access credentials (Access Key and Secret Key)
  3. Appropriate bucket policies configured
  4. The following information for configuration:
    • Bucket name
    • Region (if applicable)
    • Access Key
    • Secret Key
    • Endpoint URL (for non-AWS S3 services)

You configure these values in System Console > Environment > File Storage. See the file storage configuration settings documentation for details.

Network file storage

For production environments that cannot use S3-compatible object storage, we recommend using a Network Addressable Storage (NAS) solution with Network File System (NFS).

You'll need to prepare an NFS server with a dedicated share for Mattermost (e.g. /mnt/mattermost_data) and mount it on all servers that will be running Mattermost.

Local file storage

For simple deployments, you can use local file storage. However, we don't recommend this for production environments or multi-node deployments, because the files aren't shared between application servers and aren't covered by a separate backup target.

  1. Create a directory for file storage:

    sudo mkdir -p /opt/mattermost/data
  2. Set appropriate permissions:

    sudo chown -R mattermost:mattermost /opt/mattermost/data

Next steps