Skip to content

app/silo

Standalone Silo Docker APP template providing single-node S3 object storage and a console.

The app/silo template deploys a Silo Docker Compose application on one node, replacing the former app/minio. See the Silo application guide for usage.

The matching app/silo/ and conf/app/silo.yml are available in the main repository. Use both from the same checkout.

Overview

  • Config Name: app/silo
  • Node Count: Single node
  • Application Image: docker.io/pgsty/silo:latest
  • Persistent Directory: /data/silo
  • S3 API: Host port 9000, portal sss.pigsty
  • Console: Host port 9001, portal silo.pigsty
./configure -c app/silo
vi pigsty.yml              # update passwords, domains, and data directories
./deploy.yml
./docker.yml -l silo
./app.yml -l silo

Content

Development source: conf/app/silo.yml.

---
#==============================================================#
# File      :   silo.yml
# Desc      :   Pigsty config for running the standalone Silo APP
# Ctime     :   2026-08-29
# Mtime     :   2026-08-29
# Docs      :   https://silo.pgsty.com
# License   :   Apache-2.0 @ https://pigsty.io/docs/about/license/
# Copyright :   2018-2026  Ruohang Feng / Vonng ([email protected])
#==============================================================#

# Silo: S3-Interface Libre Object Storage
# https://silo.pgsty.com
# https://github.com/pgsty/silo
#
# This is an application-scoped Docker Compose deployment. Pigsty's native
# MINIO module also deploys Silo and is preferred for shared backup storage,
# provisioning, monitoring, TLS, and multi-node clusters.
#
# Usage:
#   curl -fsSL https://repo.pigsty.io/get | bash; cd ~/pigsty
#   ./configure -c app/silo
#   vi pigsty.yml                 # change credentials, domains, and data path
#   ./deploy.yml
#   ./docker.yml
#   ./app.yml

all:
  children:

    silo:
      hosts: { 10.10.10.10: {} }
      vars:
        app: silo
        apps:
          silo:
            file:
              - { path: /data/silo ,state: directory ,mode: 0755 }
            conf:
              SILO_IMAGE: docker.io/pgsty/silo:latest
              SILO_ROOT_USER: siloadmin
              SILO_ROOT_PASSWORD: S3User.Silo       # CHANGE ME
              SILO_DATA: /data/silo
              SILO_PORT: 9000
              SILO_CONSOLE_PORT: 9001
              SILO_BROWSER_REDIRECT_URL: ''         # e.g. https://silo.pigsty

    infra: { hosts: { 10.10.10.10: { infra_seq: 1 } } }
    etcd:  { hosts: { 10.10.10.10: { etcd_seq: 1 } }, vars: { etcd_cluster: etcd } }

  vars:
    version: v4.5.0
    admin_ip: 10.10.10.10
    region: default
    node_tune: oltp
    docker_enabled: true

    infra_portal:
      home: { domain: i.pigsty }
      silo: { domain: sss.pigsty ,endpoint: "10.10.10.10:9000" }
      silo-console: { domain: silo.pigsty ,endpoint: "10.10.10.10:9001" ,websocket: true }

    repo_enabled: false
    node_repo_modules: node,infra

    grafana_admin_password: pigsty
    grafana_view_password: DBUser.Viewer
    pg_admin_password: DBUser.DBA
    pg_monitor_password: DBUser.Monitor
    pg_replication_password: DBUser.Replicator
    patroni_password: Patroni.API
    haproxy_admin_password: pigsty
    minio_secret_key: S3User.MinIO
    etcd_root_password: Etcd.Root

...

Explanation

The template defines the silo application group and deploys INFRA and ETCD on the same host. It does not configure a PostgreSQL cluster or create an object-storage cluster managed by the native MINIO module.

apps.silo.file creates the data directory, and apps.silo.conf writes image, credential, and port settings. The default root user is siloadmin with password S3User.Silo; change both before deployment. When using the console portal, set SILO_BROWSER_REDIRECT_URL to the full external URL.

This template suits single-node object storage dedicated to an application. For shared backup storage, TLS, automatic user and bucket provisioning, monitoring, or multi-node HA, use the MINIO module with demo/minio or ha/trio.

Was this page helpful?