Object storage support
CastKeeper stores audio files and images for podcasts. It can store these files locally, or using a cloud storage provider.
Local file storage
The local file storage driver simply stores all podcasts in a given directory on the file system where CastKeeper is running.
ObjectStorage:
Driver: local
LocalBasePath: /path/to/storage/dir
Amazon S3
The Amazon S3 driver uses the AWS API to store all podcasts on Amazon S3. Note that only podcast audio files and images associated with the podcast are stored in S3 - the database (e.g. if using SQLite) is still stored on the file system.
ObjectStorage:
Driver: awss3
S3Bucket: my-castkeeper-bucket
S3Prefix: my-prefix/ # optional
AWS config such as credentials, profile, region, etc, should be configured
using AWS environment variables, e.g. AWS_PROFILE
or AWS_ACCESS_KEY_ID
. See
https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-envvars.html
for more information.
NOTE that the Amazon S3 driver currently does not support streaming when downloading podcast files from CastKeeper, which may have a small performance impact when listening to podcasts. This will be resolved in a future version of CastKeeper.
S3-compatible storage
Other S3-compatible storage services can be used instead of Amazon S3, e.g.
Backblaze B2, DigitalOcean Spaces or MinIO. This uses the same driver, awss3
,
however requires some different configuration: e.g. using the AWS environment
variables such as AWS_ENDPOINT_URL
as per the services requirements.
Note that an additional config key is provided for compatibility with some storage providers:
ObjectStorage:
Driver: awss3
S3Bucket: eg-digital-ocean-space-name
S3Prefix: prefix/ # optional
S3ForcePathStyle: true # may be required by some providers
Backups
It it recommended that CastKeeper object data is backed up frequently.