134 lines
3.5 KiB
Markdown
134 lines
3.5 KiB
Markdown
# Soleprint
|
|
|
|
> Cada paso deja huella / Each step leaves a mark
|
|
|
|
Development workflow and documentation platform. Run, test, and document everything in one place.
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Build dev environment
|
|
python build.py dev
|
|
|
|
# Run
|
|
cd gen
|
|
python3 -m venv .venv
|
|
.venv/bin/pip install -r requirements.txt
|
|
.venv/bin/python run.py # Single-port bare-metal dev
|
|
# Visit http://localhost:12000
|
|
```
|
|
|
|
## Systems
|
|
|
|
| | System | What it does |
|
|
|---|--------|--------------|
|
|
| 👣 | **Soleprint** | Core coordinator, routing, landing page |
|
|
| 💉 | **Artery** | Connectors to external services (Jira, Slack, APIs) |
|
|
| 🗺️ | **Atlas** | Actionable documentation (BDD, Gherkin, specs) |
|
|
| 🎛️ | **Station** | Tools, environments, test runners |
|
|
|
|
## Structure
|
|
|
|
```
|
|
spr/
|
|
├── schema.json # Model definitions (source of truth)
|
|
├── cfg/ # Framework configuration
|
|
│ ├── soleprint.config.json
|
|
│ └── amar/ # Room-specific configs
|
|
│
|
|
├── soleprint/ # Core coordinator (versioned)
|
|
│ ├── main.py # Multi-port entry point
|
|
│ ├── run.py # Single-port bare-metal dev
|
|
│ └── dataloader/
|
|
│
|
|
├── artery/ # Connectors (versioned)
|
|
├── atlas/ # Documentation (versioned)
|
|
├── station/ # Tools (versioned)
|
|
│ └── tools/
|
|
│ ├── modelgen/ # Generates models from config
|
|
│ ├── datagen/ # Test data generation
|
|
│ └── tester/ # BDD/contract test runner
|
|
│
|
|
├── data/ # JSON content
|
|
├── gen/ # Runnable instance (symlinks + generated)
|
|
│
|
|
└── mainroom/ # Orchestration: soleprint ↔ managed room
|
|
├── ctrl/ # Orchestration commands
|
|
├── sbwrapper/ # Sidebar wrapper UI
|
|
└── soleprint/ # Docker configs
|
|
```
|
|
|
|
## Components
|
|
|
|
**Shared:**
|
|
- **Room** - Environment configuration
|
|
- **Depot** - Data storage
|
|
|
|
**System-specific:**
|
|
- **Vein** (Artery) - Single connector
|
|
- **Template** (Atlas) - Doc pattern
|
|
- **Tool** (Station) - Utility
|
|
|
|
**Composed:**
|
|
- **Pulse** = Vein + Room + Depot
|
|
- **Book** = Template + Depot
|
|
- **Desk** = Cabinet + Room + Depots
|
|
|
|
## Development
|
|
|
|
### Build and run
|
|
```bash
|
|
python build.py dev # Soleprint only
|
|
python build.py dev --cfg amar # With amar room config
|
|
|
|
cd gen
|
|
.venv/bin/python run.py # Bare-metal single-port
|
|
.venv/bin/python main.py # Multi-port (production-like)
|
|
```
|
|
|
|
### Run with Docker (via mainroom)
|
|
```bash
|
|
cd mainroom/soleprint
|
|
docker compose up -d
|
|
```
|
|
|
|
## Ports
|
|
|
|
| Service | Port |
|
|
|---------|------|
|
|
| Soleprint | 12000 |
|
|
| Artery | 12001 |
|
|
| Atlas | 12002 |
|
|
| Station | 12003 |
|
|
|
|
## Architecture
|
|
|
|
```
|
|
soleprint/ → Versioned core files (main.py, run.py, dataloader)
|
|
gen/ → Runnable instance (symlinks to soleprint/ + systems)
|
|
gen/models/ → Generated once per client (like install)
|
|
cfg/ → Configuration (copied to gen/cfg/)
|
|
|
|
mainroom/ → Orchestration layer
|
|
├── sbwrapper → UI overlay for managed apps
|
|
└── soleprint → Docker for soleprint services
|
|
```
|
|
|
|
## Background
|
|
|
|
Born from the friction of:
|
|
- Testing requiring PRs on small teams
|
|
- Documentation scattered across tools
|
|
- Quick API connectors taking too long to set up
|
|
- No self-contained environment to experiment freely
|
|
|
|
Soleprint lets you run everything in isolation while building reusable pieces.
|
|
|
|
## License
|
|
|
|
TBD
|
|
|
|
---
|
|
|
|
*Built for small teams who need to move fast without breaking things.*
|