77 lines
1.9 KiB
Markdown
77 lines
1.9 KiB
Markdown
# Silo
|
|
|
|
Item database and part management system for FreeCAD.
|
|
|
|
## Overview
|
|
|
|
Silo is an R&D-oriented item database with:
|
|
|
|
- **Configurable part number generation** via YAML schemas
|
|
- **FreeCAD integration** with git-like commands (checkout, commit, status)
|
|
- **Revision tracking** with append-only history
|
|
- **BOM management** with reference designators and alternates
|
|
- **Physical inventory** tracking with hierarchical locations
|
|
|
|
## Components
|
|
|
|
```
|
|
silo/
|
|
├── cmd/
|
|
│ ├── silo/ # CLI tool
|
|
│ └── silod/ # API server
|
|
├── internal/
|
|
│ ├── config/ # Configuration loading
|
|
│ ├── db/ # PostgreSQL access
|
|
│ ├── schema/ # YAML schema parsing
|
|
│ ├── storage/ # MinIO file storage
|
|
│ ├── partnum/ # Part number generation
|
|
│ ├── inventory/ # Location and stock management
|
|
│ └── api/ # HTTP handlers
|
|
├── pkg/
|
|
│ └── freecad/ # FreeCAD workbench (Python)
|
|
├── web/
|
|
│ ├── templates/ # HTML templates
|
|
│ └── static/ # CSS, JS assets
|
|
├── migrations/ # Database migrations
|
|
├── schemas/ # Example YAML schemas
|
|
└── docs/ # Documentation
|
|
```
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Database setup
|
|
psql -h psql.kindred.internal -U silo -d silo -f migrations/001_initial.sql
|
|
|
|
# Configure
|
|
cp config.example.yaml config.yaml
|
|
# Edit config.yaml with your settings
|
|
|
|
# Run server
|
|
go run ./cmd/silod
|
|
|
|
# CLI usage
|
|
go run ./cmd/silo register --schema kindred-rd --project PROTO --type AS
|
|
```
|
|
|
|
## Configuration
|
|
|
|
See `config.example.yaml` for all options.
|
|
|
|
## FreeCAD Integration
|
|
|
|
Install the workbench:
|
|
|
|
```bash
|
|
ln -s $(pwd)/pkg/freecad ~/.local/share/FreeCAD/Mod/Silo
|
|
```
|
|
|
|
Then in FreeCAD:
|
|
- `silo checkout PROTO-AS-0001`
|
|
- `silo commit -m "Updated dimensions"`
|
|
- `silo status`
|
|
|
|
## License
|
|
|
|
Proprietary - Kindred Systems LLC
|