Room - Runtime Environment Configuration
A Room defines connection details for a managed environment (hosts, ports, domains, credentials).
Usage
Rooms are used in composed types:
Pulse = Vein + Room + Depot(artery)Desk = Cabinet + Room + Depots(station)
Structure
artery/room/
├── __init__.py # Room model (Pydantic)
├── ctrl/ # Base ctrl script templates
│ ├── start.sh # Start services
│ ├── stop.sh # Stop services
│ ├── status.sh # Show status
│ ├── logs.sh # View logs
│ └── build.sh # Build images
└── README.md
Room Data
Room instances are stored in data/rooms.json:
{
"items": [
{
"name": "soleprint-local",
"slug": "soleprint-local",
"title": "Soleprint Local",
"status": "dev",
"config_path": "mainroom/soleprint"
}
]
}
ctrl/ Templates
The scripts in ctrl/ are templates for room management. Copy them to your room's ctrl/ folder and customize.
All scripts:
- Auto-detect services (directories with
docker-compose.yml) - Support targeting specific services:
./start.sh myservice - Load
.envfrom the room root
Usage
# Start
./ctrl/start.sh # All services (foreground)
./ctrl/start.sh -d # Detached
./ctrl/start.sh --build # With rebuild
# Stop
./ctrl/stop.sh # All services
./ctrl/stop.sh myservice # Specific service
# Status
./ctrl/status.sh
# Logs
./ctrl/logs.sh # All
./ctrl/logs.sh -f # Follow
./ctrl/logs.sh myservice # Specific service
# Build
./ctrl/build.sh # All
./ctrl/build.sh --no-cache # Force rebuild
CI/CD
For production deployments, use Woodpecker CI/CD instead of manual ctrl scripts.