Files
create/docs/src/architecture/silo-server.md
forbes-0023 64bde8d97a
Some checks failed
Build and Test / build (pull_request) Has been cancelled
docs: initialize mdBook structure with stub pages and deployment workflow
- Add docs/book.toml with coal theme, repo link, and custom CSS
- Add docs/src/SUMMARY.md with navigation structure
- Create 16 content pages across guide/, architecture/, development/, reference/
- Add docs/theme/kindred.css with minimal sidebar overrides
- Add .gitea/workflows/docs.yml for auto-deploy on push to main
- Add docs/book/ to .gitignore

Pages are populated with real content from the codebase where possible.
Remaining pages have TODO markers for future content.
2026-02-09 07:59:01 -06:00

1.9 KiB

Silo Server

The Silo server is a Go REST API that provides the backend for the Silo workbench. It manages part numbers, revisions, bills of materials, and file storage for engineering teams.

Components

silo/
├── cmd/
│   ├── silo/              # CLI tool
│   └── silod/             # API server
├── internal/
│   ├── api/               # HTTP handlers, routes, templates
│   ├── config/            # Configuration loading
│   ├── db/                # PostgreSQL access
│   ├── migration/         # Property migration utilities
│   ├── partnum/           # Part number generation
│   ├── schema/            # YAML schema parsing
│   └── storage/           # MinIO file storage
├── migrations/            # Database migration SQL scripts
├── schemas/               # Part numbering schema definitions (YAML)
└── deployments/           # Docker Compose and systemd configs

Stack

  • Go REST API with 38+ routes
  • PostgreSQL for metadata, revisions, BOM relationships
  • MinIO (S3-compatible) for binary .FCStd file storage
  • LDAP / OIDC for authentication
  • SSE (Server-Sent Events) for real-time activity feed

Key features

  • Configurable part number generation via YAML schemas
  • Revision tracking with append-only history
  • BOM management with reference designators and alternates
  • Physical inventory tracking with hierarchical locations

Database migrations

Migrations live in migrations/ as numbered SQL scripts (e.g., 001_initial.sql). Apply them sequentially against the database:

psql -h psql.kindred.internal -U silo -d silo -f migrations/001_initial.sql

Deployment

See mods/silo/deployments/ for Docker Compose and systemd configurations. A typical deployment runs the Go server alongside PostgreSQL and MinIO containers.