Self-hosted console for managing and browsing MinIO and S3-compatible object storage.
1.9K
S3nio Console is a self-hosted web console for managing and browsing S3-compatible object storage. It supports multiple storage connections, object browsing, uploads, downloads, previews, bucket settings, and provider-specific identity management.
Alibaba Cloud OSS connections use the Alibaba Cloud CLI for RAM users, groups, custom policies, and AccessKeys. The CLI is included in the image on amd64 and arm64; RAM API credentials and the region come from the selected connection. The first RAM operation may download the Alibaba RAM CLI plugin, so the container needs outbound access to Alibaba's plugin repository.
docker pull garfieldwtf/s3nio:latest
docker run -d \
--name s3nio \
--restart unless-stopped \
-p 4173:4173 \
-e MINIO_UI_USERNAME=admin \
-e MINIO_UI_PASSWORD='replace-with-a-password-of-at-least-8-characters' \
-e MINIO_UI_SESSION_SECRET='replace-with-a-separate-random-session-secret' \
-v s3nio-data:/data \
garfieldwtf/s3nio:latest
Open http://localhost:4173 and sign in with the UI username and password you set. Add your S3 connection under Settings → S3 connections. The UI credentials are separate from your storage access keys.
Use HTTPS through a reverse proxy when exposing the console beyond a trusted network. Keep the password, session secret, and /data volume private.
| Variable | Required | Description |
|---|---|---|
MINIO_UI_USERNAME | No | Console sign-in name. Defaults to admin. |
MINIO_UI_PASSWORD | Yes | Console sign-in password; must be at least 8 characters. |
MINIO_UI_SESSION_SECRET | Recommended | Random secret used to sign login cookies. Set a stable value so sessions remain valid across restarts. |
MINIO_ENDPOINT | No | Optional default S3 endpoint, including http:// or https://. |
MINIO_ACCESS_KEY | No | Access key for the optional default connection. |
MINIO_SECRET_KEY | No | Secret key for the optional default connection. |
MINIO_REGION | No | Default connection region; defaults to us-east-1. |
MINIO_CONNECTION_NAME | No | Display name for the optional default connection. |
PORT | No | Web port; defaults to 4173. |
HOST | No | Bind address; the image uses 0.0.0.0. |
MAX_UPLOAD_BYTES | No | Maximum upload size in bytes; defaults to 5 GiB. |
The named volume mounted at /data stores configured S3 connections and provider-specific metadata. Back up this volume securely. Do not put storage credentials in the image or publish them in a container command that is visible to other users on the host.
To configure a default connection from environment variables, supply all three of MINIO_ENDPOINT, MINIO_ACCESS_KEY, and MINIO_SECRET_KEY. Additional connections can be added and edited in the console.
S3 object operations use the provider's S3-compatible API. Select a provider profile when adding a connection so endpoint addressing is configured appropriately.
rc client and is not exposed in this UI yet.-s3.iam.readOnly=false) and the filer must persist IAM metadata.users=write and listing needs users=read. Ceph supports bucket replication between zones; site replication uses Ceph multisite administration.S3 does not define a universal API for creating users or policies across all compatible providers. Garage and Ceph do not provide IAM policy documents per key; use their bucket permissions, user capabilities, or bucket policies. Availability and behavior depend on the selected provider and the permissions of the configured credentials.
The image includes MinIO Client (mc) on amd64, arm64, and ppc64le, plus AWS CLI (aws) on amd64. Backblaze B2 application-key management uses the built-in B2 API client and needs no extra command-line tool. On architectures without a bundled CLI, S3 object operations still use the app's S3 client; provider features requiring the missing CLI are unavailable.
The latest image is published for linux/386, linux/amd64, linux/arm/v6, linux/arm/v7, linux/arm64, linux/ppc64le, linux/riscv64, and linux/s390x.
docker build -t s3nio-console .
The frontend and production dependencies are prepared with node:lts-alpine. The final image uses the latest Alpine base and Alpine's Node.js package so the runtime supports the full architecture list above. The app runs as an unprivileged user.
Content type
Image
Digest
sha256:0019bc158…
Size
39.2 MB
Last updated
2 days ago
docker pull garfieldwtf/s3nio