3.5 KiB
3.5 KiB
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
# 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
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 prefixNETWORK_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:
{
"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
build.py dev --cfg amarcreates gen/ with room configmainroom/amarsymlinks tocfg/amarctrl/start.shfinds docker-compose.yml in amar/ and soleprint/- Both share
soleprint_networkfor inter-container communication - 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:
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 |