Files
soleprint/artery/room
2025-12-31 08:21:07 -03:00
..
2025-12-31 08:21:07 -03:00
2025-12-31 08:21:07 -03:00

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 .env from 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.