80 lines
1.8 KiB
Markdown
80 lines
1.8 KiB
Markdown
# 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`:
|
|
|
|
```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
|
|
|
|
```bash
|
|
# 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.
|