Knowledge Base

Installation & Requirements

The S3 Object Storage suite for Blesta consists of three installables that work together:

  • S3 Object Storage Provision Module (MinIO & RustFS) (components/modules/minio_storage/) — provisions storage users and buckets and drives the whole service lifecycle. Ships with the mc command-line client and an AWS SDK; no extra downloads needed.
  • S3 Bucket Cleanup plugin (plugins/minio_bucket_cleanup/) — safe, staged deletion of cancelled buckets. Required: cancellations are blocked without it.
  • S3 Usage Billing plugin (plugins/minio_usage_billing/) — hourly usage collection, monthly rollups and optional invoice overage lines. Optional but recommended if you sell metered plans.

Supported storage backends

  • MinIO — fully supported: provisioning, cleanup and usage billing.
  • RustFS — supported for provisioning and cleanup. RustFS documents S3 data operations, IAM (users, access keys AK/SK, policies, bucket policies), versioning and AWS-compatible lifecycle rules (including JSON rule import), which cover the module's and cleanup plugin's operations. Verify the mc admin commands (user/policy/accesskey) and mc quota against your RustFS build before going live — RustFS's own mc documentation only lists the basic data commands.
  • Usage billing is currently MinIO-only. RustFS does not document the MinIO metrics v3 endpoints (/minio/metrics/v3/...) or the minio_cluster_usage_buckets_* Prometheus metrics the collector reads — native Prometheus support is still an open item upstream. On RustFS-backed servers, treat bandwidth/disk collection and quota alert emails as unavailable until that lands.

Server requirements

  • Blesta 5.x on Linux, PHP with shell_exec and exec enabled (the module drives the bundled mc binary).
  • ionCube Loader 15 or later. The extensions are encoded.
  • The SystemFreaks Update Checker plugin with an active suite license key. See Getting Started with the SystemFreaks Update Checker.
  • Outbound network access from the Blesta host to your storage server's API/console ports and to your Prometheus server.
  • The bundled mc binary is marked executable automatically during install/upgrade.

Installing

  1. Open Tools > SystemFreaks Update Checker.
  2. On the Modules tab click Download next to S3 Object Storage Provision Module (MinIO & RustFS), then click Install.
  3. On the Plugins tab do the same for S3 Bucket Cleanup, then S3 Usage Billing.
  4. Both plugins register their cron tasks automatically (bucket cleanup runs hourly; usage collection runs hourly). Make sure the main Blesta cron is running.

Alternative without the Update Checker: download the packages from your SystemFreaks client area, upload minio_storage to components/modules/ and the plugin folders to plugins/, then install them under Settings > Company > Modules / Plugins > Available.

  1. Edit the quota alert email template. Installing the Usage Billing plugin registers a client email (MinioUsageBilling.quota_threshold) with placeholder data — the sender defaults to no-reply@<your hostname> and a generic from-name. Go to Settings > Company > Emails > Email Templates, open it under the plugin templates, and set your real sending address (so SPF/DKIM pass), your brand's from-name, and adjust the wording to your voice. Available tags: {client.first_name}, {bucket}, {service_name}, {used}, {quota}, {used_percent}.

Troubleshooting

The module's manage page (Settings > Company > Modules > S3 Object Storage Provision Module > Manage) has a Troubleshooting section with two built-in health tools:

  • mc Binary Check — runs automatically every time the manage page loads and tells you whether the bundled mc client actually executes on your server. If the execute permission was lost (common after uploading the module over FTP), the check re-applies it automatically — reload the page once and it should turn green. If it stays red, the check shows the exact error output: Permission denied with correct permissions usually means the partition is mounted noexec (ask your host); a missing-binary message means the upload skipped minioCli/min/mc. A broken mc binary makes every storage operation fail (provisioning, access keys, file manager) with "Invalid JSON response" errors in the module log, so check here first.
  • Reload McClient Settings — rewrites every server's entry in the mc client's local configuration file from the server settings above. Use it when provisioning fails with "No valid configuration found for host alias" errors (missing or corrupted configuration file). Unreachable servers are skipped and don't block the others.

Upgrading

Open Tools > SystemFreaks Update Checker, click Check Now, then click Update next to each extension with a new version. The Update Checker keeps a backup of the old folder, puts the new files in place and runs the schema migrations. Upgrades never drop your data (queue, snapshots and rollup tables are always preserved).

Alternative by hand: overwrite the three folders with the new release files, then open Settings > Company > Modules / Plugins — any extension whose version changed shows an Upgrade button. Click it.

Please rate this article to help us improve our Knowledge Base.

0 0