Web administration console for SILO object storage
Keep the interface. Own the objects.
Website · Documentation · Download · Release Notes · Compatibility · Security
Important
SILO Console is an independent, community-maintained continuation of the former MinIO Console codebase, published by Pigsty for SILO. It is not affiliated with, endorsed by, or sponsored by MinIO, Inc. The MinIO name is used only to identify the upstream project and compatibility lineage.
v2.5.0 uses Go 1.27.3, silo-pkg v3.15.1,
and the published mcli 20261025 source (dcc78d506f94). The upstream S3 SDK
is minio-go v7.4.2-0.20261020194015-ab93db7ba435, which contains multipart,
read/seek and batch-delete fixes after v7.4.1; upstream has not tagged v7.4.2.
Existing policy behavior and output-format compatibility selections are retained.
This version includes permission-aware navigation, Overview, bucket tables, richer object previews, Tasks, updated identity management, and a compact light/dark interface. It also fixes diagnostic WebSocket closing handshakes reported in #63: after sending the final report and Close frame, the server waits for the peer Close or a bounded five-second timeout. Thanks to Azat (@azataiot) for the report and analysis. Health reports also preserve all buffered JSON frames from the admin API, close the response body, and reject truncated or canceled responses.
Download binaries, packages, checksums and verification material from the v2.5.0 release. See CHANGELOG.md, the maintenance announcement, the password-policy migration and the component matrix. Updating standalone Console does not replace the Console embedded in SILO; that requires a separate Server build and release. Policy Reset to default also requires the Server IAM cache repair. Published Server 20261018 does not contain it and can fail the first policy read after a reset; this action must ship with the coordinated Server update. The repaired Server source passes the immediate-read regression with Console 2.5.0.
SILO Console is the browser-based administration interface for SILO. It combines a React and TypeScript web application with a Go backend that connects to a SILO or compatible object storage server.
The Console provides:
- dashboards, health information, logs, diagnostics, and speed tests;
- bucket, object, lifecycle, replication, notification, and tier management;
- users, groups, service accounts, policies, identity providers, and KMS setup;
- server configuration and day-to-day administrative workflows.
The screenshots in this README predate the current-source GUI changes.
Note
SILO Console is not a generic S3 browser. Its administrative features require the MinIO-compatible administration APIs implemented by SILO in addition to the S3 API.
Upstream reduced its community console to an object browser. This project keeps the complete administrative interface described above — not only object browsing, but identity, policy, tiering, replication, and observability management.
After sign-in, current source restores a remembered destination. With no
remembered destination, full-console mode opens Overview (/overview) for users
with server-information permission; other users open Buckets (/buckets).
Object-browser-only mode defaults to Buckets even for administrators. One
Buckets entry connects object browsing and bucket settings; Identity,
Monitoring, Settings and Tools group the remaining pages.
Existing object deep links remain valid. /browser redirects to /buckets, and
bare bucket administration links open Summary.
Overview also groups permitted destinations into Tools, Settings, Monitoring and Identity panels. Help keeps Documentation, Video and Blog/RSS accessible by hover, click or keyboard; phones retain a visible Help control.
Overview shows health, alerts, data freshness and raw drive capacity reported by the server. It does not estimate EC usable capacity; missing measurements remain unknown. Buckets offers sortable tables and compact cards. Object browsing adds bounded text, Markdown and CSV/TSV previews, keyboard selection and context menus. Tasks tracks transfers and supported bulk delete/restore operations; a browser download handoff does not confirm that a file has been saved to disk.
User and policy pages show status, policy sources and direct assignment counts. Default built-in policies are read-only until explicitly overridden; modified built-ins can be reset to their defaults.
The dashboard is built on MinIO Metrics V3, the metric set current
deployments actually scrape. All widget queries target the V3 catalog, with
guards for its zero-value and per-node export semantics, so panels distinguish a
real zero from missing data. See docs/metrics-v3.md for
the mapping.
Current source uses neutral light/dark surfaces, system UI fonts, compact controls, consistent focus states and reduced-motion support. The original MDS icons and login hero remain, with Chakra Petch confined to the hero. The existing React and styled-components stack gains no new UI or animation framework.
Navigation becomes a drawer below 768px and defaults to an icon rail from 768px to 1199px; an explicit saved sidebar preference takes precedence at widths of 768px and above. Narrow layouts retain page actions and use a sheet for object details. The login hero is hidden only below 768px. Temporary-credential (STS) sign-in remains available independently of configured identity-provider redirects.
The embedded payload went from roughly 10 MB to about 3 MB, reproducible byte for byte and enforced by a release gate. There is no telemetry — no analytics, no beacons, no external scripts or fonts, and no call-home. Automatic self-update is disabled, and a release catalog is contacted only when one is explicitly configured.
The entire interface, including help content and documentation links, is available in English and Chinese behind a per-page toggle, with no added runtime dependencies.
| Looking for | Canonical location |
|---|---|
| Project overview and navigation | Silo Website |
| Console binaries, packages, and checksums | GitHub Releases |
| Configuration reference | Environment variables · systemd setup · FAQ |
| Release notes for this console | Console release notes · CHANGELOG.md |
| Differences from the upstream MinIO Console | Console compatibility notes |
| Metrics V3 dashboard mapping | docs/metrics-v3.md |
| Development setup and frontend workflow | DEVELOPMENT.md · CONTRIBUTING.md |
| Project news and security advisories | Blog · release and security notes |
| Bug reports and feature discussions | GitHub Issues |
| Vulnerability reporting | SECURITY.md · Security Policy |
| License, attribution, and trademark information | LICENSE · NOTICE · CREDITS · portal license, attribution, and trademark pages |
| Repository | Description |
|---|---|
pgsty/silo |
Silo object storage server — the S3-compatible MinIO fork this console administers |
pgsty/silo-console |
This repository — the admin web console for the Silo server |
pgsty/mc |
The Silo command-line client, shipped as mcli with the mc command name |
pgsty/silo-pkg |
Shared Go packages maintained for the Silo forks |
pgsty/pigsty |
Pigsty — the PostgreSQL distribution that ships Silo as its object storage |
The public project and release name is silo-console. Compatibility-sensitive
names are retained where changing them would break existing integrations:
| Surface | Current contract |
|---|---|
| Repository | pgsty/silo-console |
| Release binary | silo-console |
| Development build | ./console |
| Go module | github.com/minio/console |
| Server endpoint | CONSOLE_MINIO_SERVER |
| Server region | CONSOLE_MINIO_REGION |
The retained Go module, import paths, environment variables, API fields, and protocol identifiers are compatibility interfaces, not product branding. Any future rename of those interfaces will require aliases and a migration period.
The supported and release-tested stack is pgsty/silo, pgsty/silo-console,
pgsty/mc and pgsty/silo-pkg. Compatibility with unmodified upstream MinIO is
best effort and does not replace validation against that maintained stack.
Standalone Console directly requires github.com/pgsty/silo-pkg/v3 at the
revision selected by go.mod and recorded in hack/deps-release.json,
and resolves github.com/minio/minio-go/v7 upstream. The maintained mc source
keeps the compatibility module path github.com/minio/mc and lives in
pgsty/mc. Console pins an immutable Go pseudo-version: either a published
calendar release or a commit accepted on main with successful CI. The current
selection is the published mcli 20261025 source (dcc78d506f94). Selecting it
as a dependency does not create another mcli release. An embedding server must
copy this replacement because Go ignores replacements declared by dependency
modules:
replace (
github.com/minio/mc => github.com/pgsty/mc v0.0.0-20261025104502-dcc78d506f94
)The block above is generated from go.mod (go run ./hack/replacements update)
and verified on every build (go run ./hack/replacements check), so it always
names the exact mc source revision this Console commit builds with. The shared
package is an ordinary direct requirement and needs no downstream replacement:
| Module graph | Status |
|---|---|
| The single maintained replacement above | Supported; downstream-embedder-compat builds a minimal embedder from the published block and verifies the exact pgsty/silo-pkg version selected by go.mod is inherited directly |
| No mc replacement | Best-effort upstream compatibility signal, tested by the non-blocking upstream-pkg-compat job; it is neither the released SILO CLI behavior nor a dependency floor |
| The retired three-replacement graph | Unsupported: do not replace github.com/minio/pkg/v3 with silo-pkg v3.13.0 or later, whose declared module path is github.com/pgsty/silo-pkg/v3 |
This is the coordinated own-module-path line introduced by silo-pkg v3.13.0.
Console imports github.com/pgsty/silo-pkg/v3 directly, while upstream
dependencies that still use github.com/minio/pkg/v3 may coexist as a distinct
module. Compatibility with unmodified upstream MinIO and mc is maintained on a
best-effort basis and never overrides the SILO dependency graph. See
docs/Embedding.md.
The complete, versioned list of differences from the upstream MinIO Console — restored features, removed features, and known gaps — is maintained in the compatibility notes.
Versioned binaries, packages, checksums, and source archives are published on GitHub Releases.
| Artifact | Location |
|---|---|
| Source | github.com/pgsty/silo-console |
| Standalone binaries | GitHub Releases, for Linux (amd64, arm64, armv6), macOS (amd64, arm64), and Windows (amd64) |
| Linux packages | DEB, RPM, and APK for amd64, arm64, and armv6; packages retain the minio-console.service compatibility unit and /etc/default/console environment file |
| Checksums | silo-console_<version>_checksums.txt (SHA-256) alongside each release |
Automatic self-update remains disabled until signed release artifacts and a tested rollback path are available; upgrade explicitly through a pinned binary or package version.
Go 1.27 builds require macOS 13 or later. On macOS, builds targeting Go 1.27
replace Keychain trust with on-disk roots and Go's verifier when either
SSL_CERT_FILE or SSL_CERT_DIR is set. Stale or incomplete CA paths can break
previously trusted connections; unset inherited values to restore Keychain
trust. Certificates in the configured CAs directory remain additive to the
selected root pool.
Outbound identity-provider, SILO/STS, and other HTTP connections use Go's default
key exchanges. GODEBUG=tlsmlkem=0 affects those defaults without disabling
certificate verification; it does not disable ML-DSA signatures.
GODEBUG=tlssecpmlkem=0 disables only the SecP hybrids and retains X25519MLKEM768.
Console's HTTPS listener explicitly uses P-256 and is unaffected by the hybrid-curve override
change. See the Go release notes.
Install the Go version declared in go.mod, then build the standalone
Console server:
git clone https://github.com/pgsty/silo-console.git
cd silo-console
make consolePoint it at a running SILO server and start the Console:
export CONSOLE_MINIO_SERVER=http://127.0.0.1:9000
./console serverOpen http://127.0.0.1:9090 and sign in with a user from the configured server.
For production, use TLS, configure stable random values for
CONSOLE_PBKDF_PASSPHRASE and CONSOLE_PBKDF_SALT, and grant users only the
permissions they need. Do not reuse the server root credentials for routine
administration.
If the server uses a region other than us-east-1, set the compatibility
variable as well:
export CONSOLE_MINIO_REGION=your-regionSee the environment variable reference, systemd setup, and FAQ for additional configuration.
The repository includes the generated frontend bundle embedded by the Go server. For an embedded GUI update, rebuild it after source, tests and documentation are final:
make assetsKeep generated assets in a separate reviewed commit from source changes.
Building assets does not publish or deploy them. The required Node.js version is
recorded in .nvmrc. See web-app/README.md for the
source workspace, bundle gates and GUI regression runner, and
DEVELOPMENT.md for the local server workflow.
SILO Console follows the conservative maintenance model of the SILO server. The active line focuses on:
- compatibility with the maintained SILO server;
- applicable security and dependency updates;
- focused fixes for reproducible defects;
- release engineering, tests, documentation, and operational continuity.
Maintenance is best effort. No response time, remediation schedule, support window, commercial support, or SLA is guaranteed. Pin versions, review changes, keep a rollback path, and test upgrades before production use.
The upstream MinIO Console was reduced to an object browser and its community maintenance ended. Pigsty maintains this continuation because SILO needs a complete, reproducible administration console rather than depending on an archived upstream line. The broader upstream changes and the fork maintenance record are documented in these essays:
| Essay | Subject |
|---|---|
| MinIO Is Dead | Changes to the upstream project and distribution model |
| MinIO Is Dead, Who Takes Over? | Alternatives considered |
| MinIO Is Dead, Long Live MinIO | Establishing the server and client release pipeline |
| Two months into maintaining a MinIO fork | Initial security and maintenance work |
Report security issues privately as described in SECURITY.md.
For ordinary defects and feature work, open an
issue or follow
CONTRIBUTING.md. Useful contributions include security and
dependency updates, compatibility fixes, tests, release automation,
documentation, and accessibility improvements.
As of 2026-10-25, 3 contributors are credited in this repository. Every human issue or PR author counts, regardless of merge status. Merged fixes, adopted proposals, and actionable reports receive priority, with first participation guiding the remaining order. Gold rings highlight significant contributions.
View the contribution record, including actual PR status and work incorporated through later fixes.
SILO Console is free software distributed under the
GNU Affero General Public License v3.0 or later. See NOTICE
and CREDITS for notices and third-party license information.
This repository contains code derived from the former MinIO Console and carried
forward through the Alevsk/console and
georgmangold/console community
maintenance lines. Copyright in inherited code remains with MinIO, Inc. and the
respective contributors; SILO-specific modifications remain copyright their
respective authors. Existing copyright, license, and attribution notices must
be kept intact.
MinIO® is a registered trademark of MinIO, Inc. SILO and SILO Console are independent community projects and are not affiliated with, endorsed by, or sponsored by MinIO, Inc. Amazon S3 is a trademark of Amazon.com, Inc. or its affiliates; references to S3 describe protocol compatibility only. All other trademarks are the property of their respective owners.


