Files
pplate 87e0b9359e feat(roo): add Patrick-persona custom modes, skills, and mode-specific rules
Add 4 new custom modes with BigMind guidance:
- rules-bigmind/: Introspective Patrick mode (BigMind development)
- rules-homelab/: Tinkerer Patrick mode (TrueNAS, Docker, infra)
- rules-mcp-builder/: Craftsman Patrick mode (pi_mcps MCP servers)
- rules-paisy/: Professional Patrick mode (ADP Germany payroll)

Add reusable skills:
- skills/assessment-first/: structured assessment.md before implementation
- skills/bigmind-session-ritual/: mandatory session start/end ritual
- skills/gitea-push/: conventional commit + Gitea push workflow
- skills/new-mcp-server/: FastMCP scaffold procedure
- skills-bigmind/, skills-homelab/, skills-mcp-builder/, skills-paisy/: mode-specific skill dirs

Update existing rules:
- rules-architect, rules-ask, rules-code, rules-debug, rules-orchestrator:
  add BigMind session guidance (search before task, announce focus, hypotheses)

Add plans/MODES_AND_SKILLS_PLAN.md: full architecture document
2026-04-04 09:52:08 +02:00

73 lines
2.2 KiB
Markdown

---
name: homelab-docker-deploy
description: Scaffolds and deploys a new Docker service on TrueNAS.local homelab server. Use this skill when adding a new containerized service to the homelab — produces a docker-compose.yml, documents the service in BigMind, and verifies it is running.
---
# Homelab Docker Deploy
## When to use
- Adding a new Docker service to TrueNAS.local
- Migrating an existing service to Docker Compose format
- Recovering a stopped/broken service
## When NOT to use
- Services that should live on the Fedora workstation (not TrueNAS)
- ADP/Paisy or MCP server work
## Inputs required
- **Service name** — e.g., `gitea`, `ollama`, `homelab-monitor`
- **Image** — Docker Hub image and tag
- **Port mapping** — host:container
- **Volume paths** — TrueNAS dataset paths (e.g., `/mnt/tank/docker/gitea`)
- **Environment variables** — any required config
## Workflow
### Step 1 — Check for existing service
```bash
ssh root@192.168.188.119 "docker ps -a | grep {service-name}"
```
### Step 2 — Create dataset (if new persistent storage needed)
TrueNAS datasets live under `/mnt/tank/docker/{service-name}/`
### Step 3 — Write `docker-compose.yml`
```yaml
version: "3.8"
services:
{service-name}:
image: {image}:{tag}
container_name: {service-name}
restart: unless-stopped
ports:
- "{host-port}:{container-port}"
volumes:
- /mnt/tank/docker/{service-name}/data:/data
environment:
- KEY=value
```
### Step 4 — Deploy
```bash
ssh root@192.168.188.119 "cd /opt/docker/{service-name} && docker compose up -d"
```
### Step 5 — Verify
```bash
ssh root@192.168.188.119 "docker ps | grep {service-name}"
ssh root@192.168.188.119 "docker logs {service-name} --tail 20"
```
### Step 6 — Store in BigMind
```
memory_store_fact("environment-config", "Service {service-name} running on TrueNAS at port {port}. Image: {image}. Data: /mnt/tank/docker/{service-name}/")
```
### Step 7 — Commit compose file to Gitea
Use the `gitea-push` skill with type `chore` and scope `homelab`.
## Troubleshooting
- **Port conflict:** `ssh root@192.168.188.119 "ss -tlnp | grep {port}"`
- **Permission denied on /mnt:** Check ZFS dataset ownership
- **Image pull fails:** TrueNAS needs outbound internet — check DNS and routing