.agents/skills/madoc-docker-ops/SKILL.md
Build, run, and debug the Madoc Docker/compose stack with the Docker daemon already running, including rebuilding images, starting/stopping services, inspecting containers/images, and using pm2 inside the madoc-ts container (server/queue/scheduler/auth) plus frontend rebuilds for volume-mounted assets.
npx skillsauth add digirati-co-uk/madoc-platform madoc-docker-opsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Operate the local Madoc Docker Compose stack, rebuild images when code changes, inspect running containers/images, and use pm2 inside madoc-ts to debug processes and logs.
Services you will interact with most often:
gatewaymadoc-tsmadoc-ts-viteshared-postgresgateway-redistasks-apimodel-apiconfig-servicestorage-apisearchokraAlso check docker-compose.test.yml when dealing with test-only services or overrides.
docker compose up -d.docker compose ps and docker compose logs -f madoc-ts.docker compose up -d madoc-ts madoc-ts-vite shared-postgres gateway.pnpm build:vite-server run outside of docker since its a volumedocker compose build madoc-ts madoc-ts-vite.docker compose build --no-cache madoc-ts.docker compose up -d --build madoc-ts.The frontend assets are bind-mounted, so rebuilds must be triggered even when containers are already running. However there is a vite server so during development frontend ONLY fixes should be fine.
madoc-ts-vite keeps its image-baked package.json, pnpm-lock.yaml, and node_modules aligned on purpose. After dependency changes, rebuild the madoc-ts-vite image instead of relying on bind-mounted manifest files.
docker compose exec madoc-ts pnpm run build:frontend.docker compose exec madoc-ts pnpm run build:vite.madoc-ts-vite (ports 3088/3089); restart it if needed: docker compose restart madoc-ts-vite.docker ps.docker compose ps.docker images or docker compose images.docker inspect <container>.docker inspect <container> | rg -n "Mounts".docker compose logs -f madoc-ts.docker compose logs --tail=200 madoc-ts.docker logs -f <container>.madoc-tsmadoc-ts runs pnpm dev, which launches pm2 with ecosystem.config.cjs.
Processes: server, queue, scheduler, auth.
Common commands:
docker compose exec madoc-ts pm2 status.docker compose exec madoc-ts pm2 logs.docker compose exec madoc-ts pm2 logs server.docker compose exec madoc-ts pm2 restart server.docker compose exec madoc-ts pm2 reload all.docker compose down.docker compose down -v.docker image prune.docker info.docker-compose.yml.docker compose restart madoc-ts.pnpm run build:frontend inside the container.curl -sk https://madoc.local/ | grep "Something went wrong."tools
Work on Madoc TS shared utility helpers (JWT, metadata, errors, IIIF helpers, auth helpers). Use when changing core utility functions or shared helpers in services/madoc-ts.
development
Work on Madoc TS shared type definitions and schema contracts. Use when updating TypeScript types, JSON schema shapes, or cross-layer data contracts in services/madoc-ts.
tools
Understand and extend Madoc TS task automation, including bots and task-related extensions. Use when adding task automation, bot behavior, or task metadata resolution in services/madoc-ts.
development
Work on Madoc TS site SSR pipeline, HTML template injection, and site render data wiring. Use when changing site SSR behavior, template tokens, or site SSR data wiring in services/madoc-ts.