// Manages Bestays infrastructure including Docker Compose, Dockerfile creation, Makefile workflows, service orchestration, production migrations, and backups. Use when managing containers, adding services, deploying to VPS, running migrations, or setting up infrastructure. Acts as a self-updating knowledge index that points to authoritative sources.
| name | devops-bestays-infra |
| description | Manages Bestays infrastructure including Docker Compose, Dockerfile creation, Makefile workflows, service orchestration, production migrations, and backups. Use when managing containers, adding services, deploying to VPS, running migrations, or setting up infrastructure. Acts as a self-updating knowledge index that points to authoritative sources. |
Orchestrate and manage the Bestays Real Estate Platform development environment. This skill provides workflows for starting services, debugging issues, checking system health, and locating component information across the codebase.
Core Principle: This skill is a pointer system, not a knowledge base. It knows WHERE information lives (specs, configs, code), not WHAT the information is. This keeps it lightweight, accurate, and self-maintaining.
Primary Triggers:
User Patterns:
Start Development Environment:
make dev
What Happens:
.sdlc-workflow/scripts/preflight.sh)Preflight Validates:
Spec Reference: .pattern-book/specifications/tech/preflight-validation.md
Stop Environment:
make dev-stop
# or
make down
Full Rebuild (after Dockerfile changes):
make rebuild
Performs: down → build → up → migrate
Check All Services:
make check
What It Checks:
curl http://localhost:8011/api/healthpg_isreadycurl http://localhost:5183View Logs:
make logs # All services
make logs-server # Backend only
make logs-frontend # Frontend only
make logs-db # Database only
Service Status:
make status
# or
docker ps --filter "name=bestays"
When You Need Information:
Step 1: Identify component category
Step 2: Consult component map
Read: references/component-map.md
Component Map Provides:
Example Lookup:
docker-compose.dev.yml → Read ports sectionsPattern: Always read definitive source, never rely on cached knowledge
When Something Breaks:
Step 1: Identify issue category
Step 2: Consult troubleshooting index
Read: references/troubleshooting-index.md
Index Provides:
Example Troubleshooting:
bash .sdlc-workflow/scripts/preflight.sh to see specific failureDebugging Workflow:
make logs-[service])make check)make shell-[service])Infrastructure Discussion: .pattern-book/discussions/20251027-2321-infrastructure-setup-deployment-testing-/
To Add a New Service to Docker Compose:
Step 1: Update docker-compose.dev.yml
services:
new-service:
image: ...
ports:
- "XXXX:YYYY"
environment:
- VAR=value
depends_on:
- existing-service
networks:
- bestays-network
Step 2: Update preflight validation (if ports added)
.sdlc-workflow/scripts/preflight.shcheck_ports_available()Step 3: Update Makefile (if special commands needed)
logs-newservice:
$(COMPOSE) logs -f new-service
shell-newservice:
$(COMPOSE) exec new-service /bin/sh
Step 4: Update this skill
references/component-map.mdStep 5: Create/update specs
When This Skill Is Missing Information:
Detect: Encounter question skill can't answer with current pointers
Analyze: Determine what information is missing and where it should be documented
Update:
Pattern to Follow:
In references/component-map.md:
### [Component Name]
**Definitive Source**: [file path]
**What's There**: [list of available information]
**Spec** (if applicable): [path to spec]
**Key Details**: [critical locating information]
In references/troubleshooting-index.md:
### "[Issue Title]"
**Symptoms**: [observable problems]
**Troubleshooting Path**: [step-by-step diagnosis]
**Common Causes**: [typical root causes]
**Definitive Source**: [where solution documented]
Commit Updates: After updating, commit changes to skill so future sessions benefit
# Start development (smart restart)
make dev
# View logs (all services)
make logs
# Check health
make check
# Stop everything
make dev-stop
# Service-specific logs
make logs-server
make logs-frontend
make logs-db
# Access service shells
make shell-server # Backend Python shell
make shell-frontend # Frontend Node shell
make shell-db # PostgreSQL psql
# Full rebuild (after Dockerfile changes)
make rebuild
# Run preflight checks
bash .sdlc-workflow/scripts/preflight.sh
# Validate environment
make dev-validate
# Container status
make status
# Comprehensive status
make dev-status
# Health checks
make health
Local Development URLs:
Container-to-Container URLs (within Docker network):
Note: Always check docker-compose.dev.yml for current configuration
Works With:
Provides Context For:
Complete index of all system components and where their information lives.
When to Read: Looking for information about a specific component
Provides:
Covers:
Index of common issues and where to find solutions.
When to Read: Debugging a problem
Provides:
Covers:
Good ✅:
"Port configuration is in docker-compose.dev.yml → services → [service] → ports"
Bad ❌:
"Backend uses port 8011, frontend uses 5183..."
When user asks "What ports does the system use?":
Never answer from memory - config may have changed.
When you solve a problem not documented:
User: "Start the development environment"
Actions:
make devmake checkUser: "Backend isn't starting"
Actions:
references/troubleshooting-index.md → "Backend Not Starting"make logs-serverdocker ps -a | grep bestays-servermake migrateUser: "Where is the chat API documented?"
Actions:
references/component-map.md → Backend sectionUser: "How do I add a new environment variable?"
Actions:
references/component-map.md → Configuration Files → Environment Variables.env filedocker-compose.dev.yml → service → environmentmake devSkill Health Indicators:
Regular Maintenance:
Last Updated: 2025-10-28 Maintainer: Self-updating skill (updates itself when gaps discovered) Version: 1.0.0