Some checks failed
Build and Test / build (pull_request) Has been cancelled
- 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.
1.9 KiB
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
.FCStdfile 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.