# Console Compatibility Notes

> Differences between SILO Console and the upstream MinIO Console

---

LLMS index: [llms.txt](/llms.txt)

---

> **Latest release:** [Console v2.4.1](/blog/release/console-2.4.1/) (2026-09-16), with restricted shared downloads, password-permission separation, streaming ZIPs and signed release artifacts. See the [component matrix](/compatibility/versions/).

SILO Console is Silo's build of the MinIO Console. This page records where the two are interchangeable and where they differ.

[`pgsty/silo-console`](https://github.com/pgsty/silo-console) continues the upstream `minio/console` history from its final commit, [`feff71e4`](https://github.com/pgsty/silo-console/commit/feff71e48e39547834399a84a9460edb4fb50563) (2026-04-16); the rebrand begins at `50797deb` (2026-08-04). The upstream repository is no longer published — `github.com/minio/console` now returns 404, where `minio/mc` was merely archived — so the source lineage survives only in this fork. The Go module path still resolves, because the module proxy continues to serve the versions it already cached. Earlier release records: [v2.0.0](/blog/release/console-2.0.0/), [v2.1.0](/blog/release/console-2.1.0/), [v2.1.1], [v2.2.0](/blog/release/console-2.2.0/), and [v2.2.1].

## Principles {#principles}

The fork follows the same rule as the rest of Silo: **the shipped artifact and its channels are renamed; the interfaces other software depends on are not.**

- **Renamed** — the artifact on disk (`silo-console`), the product identity in the interface and in `--version`, the distribution channels, and the signing keys.
- **Unchanged** — the Go module path `github.com/minio/console`, every `CONSOLE_*` environment variable (including `CONSOLE_MINIO_SERVER` and `CONSOLE_MINIO_REGION`), the REST API shapes the web application calls, and the packaging identifiers `minio-console.service`, `console-user`, and `/etc/default/console`, so an in-place package upgrade keeps working.
- **Severed** — automatic self-update, telemetry, analytics, beacons, external scripts and fonts, and call-home. A release catalog is contacted only when one is explicitly configured, through `SILO_RELEASE_SERVICE_HOST` with `RELEASE_SERVICE_HOST` retained as a fallback.
- **Preserved** — upstream copyright and the AGPL-3.0 license. Runtime output credits both MinIO, Inc. and PGSTY.

> [!NOTE]
> SILO Console is not a generic S3 browser. Its administrative features need the MinIO-compatible administration APIs that Silo implements in addition to the S3 API.

## What changed {#changed}

### 1. The full administration console is retained {#scope}

This is the largest functional difference, and it runs opposite to the usual direction of a fork. Upstream reduced its community console to an object browser. SILO Console keeps the complete administrative interface: dashboards, health, logs, diagnostics, and speed tests; bucket, object, lifecycle, replication, notification, and tier management; users, groups, service accounts, policies, identity providers, and KMS setup; and server configuration.

### 2. The dashboard targets Metrics V3 {#metrics}

Dashboard widgets query the **MinIO Metrics V3** catalog, the metric set current deployments actually scrape, with guards for its zero-value and per-node export semantics so a panel distinguishes a real zero from missing data. The mapping is recorded in [`docs/metrics-v3.md`](https://github.com/pgsty/silo-console/blob/main/docs/metrics-v3.md).

### 3. A smaller, quieter payload {#payload}

The embedded frontend went from roughly 10 MB to under 3 MB, rebuilt reproducibly byte for byte and enforced by a release gate. There is no telemetry of any kind, and no external network dependency in the page itself.

### 4. Bilingual interface {#i18n}

The interface, help content, and documentation links are available in English and Chinese behind a per-page toggle, with no added runtime dependencies.

### 5. For developers: the module graph {#source}

Console v2.4.1 directly requires `github.com/pgsty/silo-pkg/v3` v3.14.1 and
upstream SDK `v7.3.1-0.20260915093545-32e1f32cb176`, retaining the historical
`github.com/minio/console` module path. Embedders explicitly select these released sources:

```go
replace github.com/minio/console => github.com/pgsty/silo-console v0.0.0-20260916075814-1360e26d976d
replace github.com/minio/mc => github.com/pgsty/mc v0.0.0-20260916070421-e952aa78f10a
```

Go does not inherit dependency replacements. Server must select both PGSTY
Console and MC. go-systemd v22.6.0 preserves NetBSD compatibility and tablewriter
v0.0.5 preserves the MC API. Legacy transitive minio/pkg from colorjson remains
separate from the maintained silo-pkg policy implementation. The old
`minio/pkg => silo-pkg` and `minio-go => silo-go` replacements are unsupported.
See the [component matrix](/compatibility/versions/) and
[embedding guide](https://github.com/pgsty/silo-console/blob/v2.4.1/docs/Embedding.md).

The release-gating target is the coordinated SILO, Console, mcli and pkg stack.
Upstream MinIO/MC probes remain non-blocking compatibility signals and do not
require pkg downgrades or duplicate APIs.

## Migration {#migration}

The official image is [`docker.io/pgsty/silo-console`](https://hub.docker.com/r/pgsty/silo-console). Pin `:v2.4.1` for a specific release; `latest` advances after publication and image verification.

An existing MinIO Console deployment upgrades in place. The service unit, service account, and configuration file keep their names, and every `CONSOLE_*` variable is read unchanged, so the usual path is to install the `silo-console` package over the old one and restart.

Two behaviors change on first start and are worth expecting:

- `silo-console` will not update itself. Roll out new versions through packages, images, or your orchestrator.
- Any workflow that relied on the console reaching MinIO-operated services — the update feed, licensing, or telemetry — no longer has anything to reach.

For v2.4.1, also review the [password-policy migration](/compatibility/password-permissions/).
Linux packages use `/etc/silo-console/certs`; migrate existing certificates or
retain their old path in `CONSOLE_OPTS` in `/etc/default/console` before restarting.
The service and configuration names are retained. Shared downloads require no new
setting. See the [v2.4.1 release notes](/blog/release/console-2.4.1/).

## See also {#see-also}

- [Silo server compatibility](/compatibility/server/) — the server this console administers
- [MCLI client compatibility](/compatibility/mcli/) — the command-line client
- [Console release notes](/tags/console/) and [`CHANGELOG.md`](https://github.com/pgsty/silo-console/blob/main/CHANGELOG.md)

[v2.1.1]: https://github.com/pgsty/silo-console/releases/tag/v2.1.1
[v2.2.1]: https://github.com/pgsty/silo-console/releases/tag/v2.2.1
[v2.3.0]: https://github.com/pgsty/silo-console/releases/tag/v2.3.0
