87e0b9359e
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
2.2 KiB
2.2 KiB
name, description
| name | description |
|---|---|
| homelab-docker-deploy | 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
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
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
ssh root@192.168.188.119 "cd /opt/docker/{service-name} && docker compose up -d"
Step 5 — Verify
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