Skip to main content

Storage configuration

Synjar stores uploaded documents in S3-compatible object storage.

Supported providers

  • AWS S3
  • Backblaze B2 (recommended for cost)
  • MinIO (self-hosted)
  • Google Cloud Storage (S3 compatibility)
  • DigitalOcean Spaces
  • Any S3-compatible service

Environment variables

VariableDescription
B2_KEY_IDAccess key ID
B2_APPLICATION_KEYSecret access key
B2_BUCKET_NAMEBucket name
B2_ENDPOINTS3 endpoint URL

Provider configurations

Backblaze B2

B2_KEY_ID=your-key-id
B2_APPLICATION_KEY=your-application-key
B2_BUCKET_NAME=synjar-documents
B2_ENDPOINT=s3.us-west-004.backblazeb2.com

AWS S3

B2_KEY_ID=AKIAIOSFODNN7EXAMPLE
B2_APPLICATION_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
B2_BUCKET_NAME=synjar-documents
B2_ENDPOINT=s3.us-east-1.amazonaws.com

MinIO (self-hosted)

B2_KEY_ID=minioadmin
B2_APPLICATION_KEY=minioadmin
B2_BUCKET_NAME=synjar-documents
B2_ENDPOINT=http://localhost:9000

DigitalOcean Spaces

B2_KEY_ID=your-spaces-key
B2_APPLICATION_KEY=your-spaces-secret
B2_BUCKET_NAME=synjar-documents
B2_ENDPOINT=nyc3.digitaloceanspaces.com

Bucket setup

Creating a bucket

Most providers have web consoles for bucket creation. Via CLI:

# AWS CLI
aws s3 mb s3://synjar-documents

# MinIO CLI
mc mb minio/synjar-documents

Bucket permissions

Synjar needs these permissions:

  • s3:PutObject - Upload files
  • s3:GetObject - Download files
  • s3:DeleteObject - Delete files
  • s3:ListBucket - List files

CORS configuration

For web uploads, configure CORS on your bucket:

{
"CORSRules": [
{
"AllowedOrigins": ["https://yourdomain.com"],
"AllowedMethods": ["GET", "PUT", "POST"],
"AllowedHeaders": ["*"],
"MaxAgeSeconds": 3600
}
]
}

Storage sizing

DocumentsEstimated storage
100~500 MB
1,000~5 GB
10,000~50 GB

Backup storage

For backups, use a separate bucket:

BACKUP_B2_KEY_ID=backup-key-id
BACKUP_B2_APP_KEY=backup-app-key
BACKUP_B2_BUCKET_NAME=synjar-backups
BACKUP_B2_ENDPOINT=s3.us-west-004.backblazeb2.com

See Backup guide for details.

Troubleshooting

Access denied

  • Verify credentials are correct
  • Check bucket permissions
  • Ensure bucket name matches exactly

Connection timeout

  • Verify endpoint URL is correct
  • Check network connectivity
  • Ensure firewall allows outbound S3 traffic

Upload failures

  • Check file size limits
  • Verify bucket isn't full
  • Check bucket CORS settings

See also