Files
pi_mcps/.roo/skills-homelab/homelab-docker-deploy/SKILL.md
T
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

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