docker-compose-first-install
Skill438 starsChanged 53 days agoApache-2.0View on GitHub
Validate and repair the OSS first-install Docker Compose path. Use when editing docker-compose.yaml, docker-compose.dev.yaml, .env.example, release image tags, Compose profiles, Keycloak/OpenFGA/RAG defaults, or first-launch UI behavior for local all-in-one installs.
- Reads credentials
1 other project uses a version of this.
Adopted by
Most recently taken up by
- cnoe-io/ai-platform-engineeringword for word, first seen Oct 8, 2026
Other versions1 project uses a version of this.
Word for word · 1
- cnoe-io/ai-platform-engineering★ 438100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository21 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .cursor/rules/docker-compose-first-install.mdcCursor rule
- .cursor/rules/safe-git-worktree.mdcCursor rule
- .cursor/rules/specify-rules.mdcCursor rule
- local-integration-testingSkill
- release-docsSkill
- run-caipe-integration-testsSkill
- skillsSkill
- speckit.analyzeSkill
- speckit.checklistSkill
- speckit.clarifySkill
- speckit.constitutionSkill
- speckit.implementSkill
- speckit.planSkill
- speckit.specifySkill
- speckit.sync-templateSkill
- speckit.tasksSkill
- speckit.taskstoissuesSkill
- streaming-testingSkill
- ui-performance-benchmarkSkill
- update-docsSkill
The file
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 9 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈9
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 25
Use this skill when a task touches:
- Very specific: line 43
Do not add slack-bot or webex-bot to the default all-in-one path.
- Distinctive: line 65
Run these before committing Compose/env changes:
- Distinctive: line 126
Use non-destructive recovery first:
- Distinctive: line 133
If Keycloak or OpenFGA state was seeded with bad env, reset only the local auth data volumes:
- Distinctive: line 143
Only reset MongoDB when the user explicitly accepts losing local CAIPE data:
- Distinctive: line 151
Do not add AI attribution comments or examples.
- Distinctive: line 152
Use conventional commit titles.
- Distinctive: line 153
Use only an explicitly provided human DCO trailer.
- Very specific: line 154
Keep .env.example runnable for a first-time local OSS user.
- Distinctive: line 155
Keep Docker Compose first install independent of proprietary providers.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Docker Compose First Install
Protect the plain OSS setup path:
cp .env.example .env
COMPOSE_PROFILES="mcp-servers,caipe-ui-prod,rbac,caipe-supervisor,dynamic-agents,rag,caipe-mongodb,web_ingestor" \
docker compose --env-file .env -f docker-compose.yaml up -dThis flow must work without Cisco-only systems, Slack/Webex bots, local image suffix overrides, or hidden operator knowledge.
When This Skill Applies
Use this skill when a task touches:
docker-compose.yamldocker-compose.dev.yaml.env.example- release image tags or image suffixes
- first-install docs or launch commands
- Keycloak, OpenFGA, RBAC, RAG, MongoDB, supervisor, dynamic agents, web ingestor
- first-launch UI alerts, release prompts, migrations, or Keycloak health
Required Defaults
The minimal first-install profile set is:
mcp-servers,caipe-ui-prod,rbac,caipe-supervisor,dynamic-agents,rag,caipe-mongodb,web_ingestorDo not add slack-bot or webex-bot to the default all-in-one path.
Required local Docker defaults:
IMAGE_TAGpoints at the latest supported stable release.caipe-uiindocker-compose.yamluses the published release tag, without a local-only-prodsuffix.caipe-uihasOPENFGA_HTTP=http://openfga:8080.caipe-uihasOPENFGA_STORE_NAME=caipe-openfga.dynamic-agentshasAUTHZ_SERVICE_URL=http://caipe-ui:3000so agent-use decisions can reach the UI BFF/CAS.caipe-uihas Keycloak admin-client values that match the local realm seed:KEYCLOAK_URL=http://keycloak:7080KEYCLOAK_REALM=caipeKEYCLOAK_RESOURCE_SERVER_ID=caipe-platformKEYCLOAK_CLIENT_SECRET=caipe-platform-dev-secretKEYCLOAK_ADMIN_CLIENT_ID=caipe-platformKEYCLOAK_ADMIN_CLIENT_SECRET=caipe-platform-dev-secret
keycloak-initreceives matchingKEYCLOAK_UI_CLIENT_SECRETandKEYCLOAK_PLATFORM_CLIENT_SECRET.- UI healthchecks inside containers use
127.0.0.1, notlocalhost, when probing the local Next.js listener.
Validation Commands
Run these before committing Compose/env changes:
COMPOSE_PROFILES="mcp-servers,caipe-ui-prod,rbac,caipe-supervisor,dynamic-agents,rag,caipe-mongodb,web_ingestor" \
NEXTAUTH_SECRET=test \
docker compose --env-file .env.example -f docker-compose.yaml config --quietInspect the rendered UI env:
COMPOSE_PROFILES="mcp-servers,caipe-ui-prod,rbac,caipe-supervisor,dynamic-agents,rag,caipe-mongodb,web_ingestor" \
NEXTAUTH_SECRET=test \
docker compose --env-file .env.example -f docker-compose.yaml config --format json \
| jq '.services["caipe-ui"].environment
| {
OPENFGA_HTTP,
OPENFGA_STORE_NAME,
KEYCLOAK_URL,
KEYCLOAK_REALM,
KEYCLOAK_RESOURCE_SERVER_ID,
KEYCLOAK_CLIENT_SECRET,
KEYCLOAK_ADMIN_CLIENT_ID,
KEYCLOAK_ADMIN_CLIENT_SECRET
}'Inspect the rendered Dynamic Agents env:
COMPOSE_PROFILES="mcp-servers,caipe-ui-prod,rbac,caipe-supervisor,dynamic-agents,rag,caipe-mongodb,web_ingestor" \
NEXTAUTH_SECRET=test \
docker compose --env-file .env.example -f docker-compose.yaml config --format json \
| jq '.services["dynamic-agents"].environment | {AUTHZ_SERVICE_URL}'Inspect Keycloak init secrets:
COMPOSE_PROFILES="mcp-servers,caipe-ui-prod,rbac,caipe-supervisor,dynamic-agents,rag,caipe-mongodb,web_ingestor" \
NEXTAUTH_SECRET=test \
docker compose --env-file .env.example -f docker-compose.yaml config --format json \
| jq '.services["keycloak-init"].environment
| {KEYCLOAK_UI_CLIENT_SECRET, KEYCLOAK_PLATFORM_CLIENT_SECRET}'Check rendered images:
COMPOSE_PROFILES="mcp-servers,caipe-ui-prod,rbac,caipe-supervisor,dynamic-agents,rag,caipe-mongodb,web_ingestor" \
NEXTAUTH_SECRET=test \
docker compose --env-file .env.example -f docker-compose.yaml config --images \
| sortThe UI image should be ghcr.io/cnoe-io/caipe-ui:<version>, not
ghcr.io/cnoe-io/caipe-ui:<version>-prod, unless that suffixed image is known
to be published for the release.
Recovery Commands For Local Testing
Use non-destructive recovery first:
COMPOSE_PROFILES="mcp-servers,caipe-ui-prod,rbac,caipe-supervisor,dynamic-agents,rag,caipe-mongodb,web_ingestor" \
docker compose --env-file .env -f docker-compose.yaml up -d --force-recreate caipe-ui dynamic-agents web_ingestor keycloak-initIf Keycloak or OpenFGA state was seeded with bad env, reset only the local auth data volumes:
docker compose --env-file .env -f docker-compose.yaml down
docker volume rm docker-compose-fixes_keycloak_postgres_data docker-compose-fixes_openfga_postgres_data
COMPOSE_PROFILES="mcp-servers,caipe-ui-prod,rbac,caipe-supervisor,dynamic-agents,rag,caipe-mongodb,web_ingestor" \
docker compose --env-file .env -f docker-compose.yaml up -dOnly reset MongoDB when the user explicitly accepts losing local CAIPE data:
docker volume rm docker-compose-fixes_mongodb_data docker-compose-fixes_mongodb_configGuardrails
- Do not add AI attribution comments or examples.
- Use conventional commit titles.
- Use only an explicitly provided human DCO trailer.
- Keep
.env.examplerunnable for a first-time local OSS user. - Keep Docker Compose first install independent of proprietary providers.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

