MinIO πŸ’Ύ

:bookmark: ITT MinIO on eom.dev is discussed. The service itself is briefly introduced, its role on the platform is described, and instructions for accessing its contents are provided. Readers are invited to ask questions and offer suggestions towards improving its usage in the subsequent thread.

About

MinIO offers efficient uploads and downloads for media on eom.dev and it is used in the background for many of the other services on the platform.

The following repository contains the Ansible role used to deploy MinIO to eom.dev and can be used to report issues with the service on this platform:

Usage

Generally speaking, content uploaded to MinIO will be embedded directly into another site such as Gitea, Discourse, or Mastodon. The requisite link can be used to access content directly from MinIO, often with better performance:

While buckets can be viewed using a standard web browser, the service returns plain XML unless the URL contains the full object key. Dedicated clients can be used for a more user-friendly experience: mc to access objects from the command line and s3fs to mount a bucket to your local filesystem.

Buckets

Default

Unused.

Discourse

This bucket exists to store media uploaded to Discourse. It is not currently in use.

Eric

@eric’s private bucket.

Mastodon

The mastodon bucket is managed by the Mastodon service. Content in this bucket is publicly accessible, but must be accessed directly.

Nextcloud

Nextcloud provides an interface for managing any bucket to which it is given access. By default, it will store data locally. A dedicated bucket for Nextcloud exists to be shared among users.

Owncast

A bucket exists for Owncast live streams, but is not currently in use.

Public

A manually-maintained bucket for content that has been published for public consumption.

Metadata

Files in this bucket have extensive metadata used to describe the media itself. Metadata exists independently from MinIO as part of the original media file.

Tags

  • published_url: the URL at which this media was originally published (Gitea, Discourse, etc.). (Not currently implemented)

Keys

Prefixes are used to organize content in the public bucket:

  • :microphone: Audio
  • :page_facing_up: Documents
  • :file_folder: Downloads
  • :musical_note: Music
  • :camera: Photos
  • :video_camera: Videos

Though MinIO could offer performance improvements here on Discourse, the forum is currently configured to store all files uploaded by users locally. Doing so keeps these files in their original format, and prevents this platform from being dependent on that one. Migrating these files to MinIO in the future is straightforward and scripted, but migrating back to local storage has been reported to be more challenging.

I have the same apprehensions about migrating Matrix to MinIO as well; however, lack of support on the non-pro version of Element makes this a moot point for that service:

Is MinIO Still Open Source?

Recent developments in the MinIO project show that the organization is prioritizing proprietary features and paid users. The first change I heard about was that the free version of the web console was losing features. Since I do not have the web console deployed, this change did not impact me; however, in a recent Reddit thread, I was informed that they have also pulled support for their Docker containers.

Further compounding the problem, MinIO on eom.dev was deployed using a Helm chart that is being deprecated by Bitnami.

In short, there will probably be substantial work in the future to deal with these problems. If an alternate provider cannot be found I may have to take on supporting the Docker container and Helm chart myself. It may also be worth considering an alternative service, but I am not aware of a viable one. Given that all of my video content is on this service, this presents a substantial problem for my platform and workflow.

The future of MinIO on eom.dev is uncertain, and I am open to suggestions for how best to deal with these issues.