silo

module
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 30, 2026 License: MIT

README

Silo CLI

CLI tool to deploy and manage Silo Box on customer hardware.

Silo Box is a self-hosted AI chat application. This CLI installs and orchestrates Docker containers: PostgreSQL, backend, frontend, llama.cpp inference engine, and proxy agent.

Requirements

  • Docker 20.10+ with Compose v2
  • Debian/Ubuntu Linux
  • User in docker group
  • 5GB+ free disk space

Installation

Quick Install
curl -fsSL https://raw.githubusercontent.com/EternisAI/silo/main/scripts/install.sh | bash
Build from Source
git clone https://github.com/EternisAI/silo.git
cd silo
make build
cp bin/silo ~/.local/bin/

Add to PATH if needed (~/.bashrc):

export PATH="$HOME/.local/bin:$PATH"

Commands

Start Services
silo up                    # first run installs, subsequent runs start
silo up --port 8080        # custom port (first install only)
silo up --image-tag 0.1.3  # specific version

Services auto-restart on system reboot (uses restart: unless-stopped).

Stop Services
silo down                  # stops containers, preserves data
Status
silo status                # show deployment and service status
Logs
silo logs                  # view all logs
silo logs -f               # follow logs in real-time
silo logs --tail 50        # show last 50 lines
silo logs backend          # logs for specific service
Upgrade
silo upgrade               # pull latest images and recreate containers
silo upgrade --json        # JSON output for automation

Important: Upgrade only updates Docker images (backend, frontend). It preserves:

  • Configuration files
  • Database volumes
  • Model files
  • Application data

To change the LLM model after upgrade:

  1. Place new .gguf file in ~/.local/share/silo/data/models/
  2. Edit inference_model_file in ~/.config/silo/config.yml
  3. Run silo down && silo up
Check Configuration
silo check                 # validate config and installation state
Version
silo version               # show CLI and application versions
silo version --json        # JSON output

Daemon (Remote Control)

Run a background service with HTTP API for remote management over LAN:

# Build and start daemon
make build-daemon
./bin/silod                                    # localhost only (default)
SILO_DAEMON_BIND_ADDRESS=0.0.0.0 ./bin/silod  # enable LAN access
API Endpoints
# Check version
curl http://localhost:9999/api/v1/version | jq

# Start/install Silo
curl -X POST http://localhost:9999/api/v1/up

# Stop Silo
curl -X POST http://localhost:9999/api/v1/down

# Restart service
curl -X POST http://localhost:9999/api/v1/restart -d '{"service":"backend"}'

# Upgrade to latest
curl -X POST http://localhost:9999/api/v1/upgrade

# Get logs
curl "http://localhost:9999/api/v1/logs?service=backend&lines=50"

# Validate config
curl http://localhost:9999/api/v1/check | jq

Configuration

Edit ~/.config/silo/config.yml then restart:

silo down && silo up
Key Settings
Setting Default Description
port 80 Frontend port
image_tag 0.1.2 Docker image version
inference_model_file GLM-4.7-Q4_K_M.gguf LLM model file
inference_gpu_layers 999 GPU layers (999 = all)
inference_context_size 8192 Token context window
inference_gpu_devices "0", "1", "2" GPU device IDs

Directory Structure

~/.local/bin/silo                      # CLI binary
~/.config/silo/config.yml              # Configuration file
~/.local/share/silo/
├── docker-compose.yml                 # Generated compose file
├── state.json                         # Installation state
└── data/
    ├── models/                        # LLM model files
    └── postgres/                      # Database data

Global Flags

-v, --verbose              # Enable debug logging
--config-dir PATH          # Custom config directory

Uninstall

silo down
rm -rf ~/.config/silo ~/.local/share/silo ~/.local/bin/silo
docker volume prune

Development

make build                 # Build CLI binary to bin/silo
make build-daemon          # Build daemon binary to bin/silod
make test                  # Run tests
make fmt                   # Format code
make lint                  # Run golangci-lint
make dev ARGS="up"         # Run CLI without building
  • silo_box/ — The application this CLI deploys (Go backend + Next.js frontend)

Directories

Path Synopsis
cmd
silo command
silod command
internal
cli
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL