Files
soleprint/mainroom/CLAUDE.md
2025-12-31 09:07:27 -03:00

146 lines
3.5 KiB
Markdown

# Mainroom - Orchestration Layer
## Purpose
Mainroom orchestrates **soleprint + managed rooms** together (e.g., amar).
Key principle: Connect soleprint to managed apps **without modifying either side**.
## Structure
```
mainroom/
├── amar -> ../cfg/amar # Symlink to room config
├── soleprint/ # Soleprint Docker config
│ ├── docker-compose.yml
│ ├── docker-compose.nginx.yml
│ └── .env
├── sbwrapper/ # Sidebar wrapper UI
│ ├── config.json # Room-specific (users, Jira)
│ ├── sidebar.js
│ └── sidebar.css
└── ctrl/ # Orchestration scripts
├── start.sh # Start all services
├── stop.sh
├── deploy.sh # Deploy to AWS
└── server/ # AWS setup scripts
```
## Usage
### Local Development
```bash
# First, build soleprint
cd spr/
python build.py dev --cfg amar
# Create shared network
docker network create soleprint_network
# Start everything
cd mainroom/ctrl
./start.sh -d # Detached
./start.sh # Foreground (logs)
./start.sh amar # Only amar
./start.sh soleprint # Only soleprint
./stop.sh # Stop all
```
### Deploy to AWS
```bash
cd mainroom/ctrl
./deploy.sh --dry-run # Preview
./deploy.sh # Deploy
```
## Components
### ctrl/ - Orchestration
| Script | Purpose |
|--------|---------|
| start.sh | Start amar + soleprint |
| stop.sh | Stop all |
| deploy.sh | rsync to AWS |
| server/ | AWS setup scripts |
### soleprint/ - Docker Config
Uses `SOLEPRINT_BARE_PATH` to mount gen/ into container.
**Env vars:**
- `SOLEPRINT_BARE_PATH` - Path to gen/
- `DEPLOYMENT_NAME` - Container prefix
- `NETWORK_NAME` - Docker network (soleprint_network)
- `SOLEPRINT_PORT` - Default 12000
### sbwrapper/ - Sidebar Wrapper
Collapsible sidebar overlay for managed apps.
**Features:**
- Quick login (switch test users)
- Jira ticket info
- Environment info
- Keyboard: `Ctrl+Shift+P`
**config.json:**
```json
{
"room_name": "amar",
"wrapper": {
"users": [
{"id": "admin", "label": "Admin", "username": "admin@test.com", ...}
],
"jira": {"ticket_id": "VET-535"}
}
}
```
### amar/ - Room Symlink
Points to `../cfg/amar` which contains:
- docker-compose.yml
- .env
- Dockerfile.backend, Dockerfile.frontend
- databrowse/depot/, tester/tests/, monitors/, models/
## How It Works
1. `build.py dev --cfg amar` creates gen/ with room config
2. `mainroom/amar` symlinks to `cfg/amar`
3. `ctrl/start.sh` finds docker-compose.yml in amar/ and soleprint/
4. Both share `soleprint_network` for inter-container communication
5. sbwrapper overlays UI on managed app
## Ports
| Service | Port |
|---------|------|
| Soleprint | 12000 |
| Amar Backend | 8000 |
| Amar Frontend | 3000 |
## Integration with ppl/
Deploy via ppl/ctrl for centralized infrastructure management:
```bash
cd /home/mariano/wdir/ppl/ctrl
./deploy-gen.sh # Build spr + deploy
./dns.sh add soleprint # Add DNS record
```
## Server Structure (mcrn.ar)
```
~/mainroom/
├── amar/ # Amar Docker services
├── soleprint/ # Soleprint Docker services
└── ctrl/ # Server-side scripts
```
## External Paths
| What | Path |
|------|------|
| Amar Backend | /home/mariano/wdir/ama/amar_django_back |
| Amar Frontend | /home/mariano/wdir/ama/amar_frontend |
| Soleprint gen | /home/mariano/wdir/spr/gen |
| Pipelines | /home/mariano/wdir/ppl |