Silo: S3 Object Storage
Silo is S3-compatible object storage maintained by Pigsty. Since August 2026, app/silo replaces the former app/minio for single-node, application-specific storage. Use the MINIO module for shared backup repositories, bucket and user initialization, monitoring, TLS, or multi-node clusters.
The matching app/silo/ and conf/app/silo.yml are available in the main repository. Use both from the same checkout.
Configuration Template
The app/silo configuration template provides a single-node deployment:
The default S3 API is http://<IP>:9000, and the web console is http://<IP>:9001. With DNS configured, the sss.pigsty and silo.pigsty portals are also available.
Run Compose Directly
On a host with Docker Compose installed:
| Parameter | Default | Purpose |
|---|---|---|
SILO_IMAGE | docker.io/pgsty/silo:latest | Application image; pin a tag or digest as needed |
SILO_ROOT_USER | siloadmin | Root user; change before deployment |
SILO_ROOT_PASSWORD | S3User.Silo | Root password; change before deployment |
SILO_DATA | /data/silo | Persistent object directory on the host |
SILO_PORT | 9000 | S3 API host port |
SILO_CONSOLE_PORT | 9001 | Console host port |
SILO_BROWSER_REDIRECT_URL | Empty string | Full external console URL |
When accessing the console through a non-default port or reverse proxy, set SILO_BROWSER_REDIRECT_URL, for example https://silo.example.com or http://silo.example.com:19001. The container cannot infer the external hostname and published port.
The APP exposes SILO_* settings; Compose maps credentials to compatible MINIO_ROOT_* container variables. When sharing a host with the native MINIO module, use separate data directories and ports.
Operations and Data
Objects reside in SILO_DATA and need separate backups; recreating a container is not a data backup. Before migrating from app/minio, preserve the original data and configuration, prepare the new deployment, and verify object reads and writes. Never run two services against the same data directory.