Skip to content

Add Docker Hub image compose path and badges#21

Merged
fakechris merged 1 commit intomainfrom
feature/dockerhub-images-and-badges
Apr 18, 2026
Merged

Add Docker Hub image compose path and badges#21
fakechris merged 1 commit intomainfrom
feature/dockerhub-images-and-badges

Conversation

@fakechris
Copy link
Copy Markdown
Owner

@fakechris fakechris commented Apr 18, 2026

Summary

  • add npm, CI, and Docker publish badges to README
  • add pull-only Docker Compose files for Docker Hub images
  • document Docker Hub image pulls and compose usage
  • enhance Docker publish workflow with namespace, sha, latest, and version tags

Validation

  • docker compose -f docker-compose.images.yml config
  • docker compose --env-file .env.production.example -f docker-compose.prod.images.yml config
  • package.json parse check

Notes

  • Docker Hub publishing requires repository secrets: DOCKERHUB_USERNAME and DOCKERHUB_TOKEN. Optional DOCKERHUB_NAMESPACE can be set to turnkeyai for turnkeyai/* images.

Open in Devin Review

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 18, 2026

Warning

Rate limit exceeded

@fakechris has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 33 minutes and 46 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 33 minutes and 46 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5ccd2d60-b540-48a9-b48d-275b2513d99b

📥 Commits

Reviewing files that changed from the base of the PR and between 55175e2 and f96b807.

📒 Files selected for processing (5)
  • .github/workflows/docker-publish.yml
  • README.md
  • docker-compose.images.yml
  • docker-compose.prod.images.yml
  • package.json
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/dockerhub-images-and-badges

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 3 additional findings.

Open in Devin Review

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces support for running the Involute stack using published Docker images. It adds new Docker Compose configurations for both standard and production environments, updates the README with usage instructions and badges, and adds helper scripts to package.json. The reviewer feedback suggests several improvements to the Docker orchestration, including adding a 'tools' profile to the CLI service to prevent unnecessary container starts, ensuring consistent healthchecks for the web service in production, and simplifying the npm scripts by removing explicit service names.

Comment thread docker-compose.images.yml
Comment on lines +94 to +100
cli:
image: ${INVOLUTE_IMAGE_REGISTRY:-docker.io}/${INVOLUTE_IMAGE_NAMESPACE:-turnkeyai}/involute-cli:${INVOLUTE_IMAGE_TAG:-latest}
depends_on:
db:
condition: service_healthy
server:
condition: service_healthy
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The cli service is a one-off tool rather than a core part of the long-running stack. Adding a tools profile prevents it from starting and immediately exiting when running a general docker compose up -d command, keeping the stack status cleaner.

  cli:
    image: ${INVOLUTE_IMAGE_REGISTRY:-docker.io}/${INVOLUTE_IMAGE_NAMESPACE:-turnkeyai}/involute-cli:${INVOLUTE_IMAGE_TAG:-latest}
    profiles: ["tools"]
    depends_on:
      db:
        condition: service_healthy
      server:
        condition: service_healthy

Comment on lines +77 to +85
web:
image: ${INVOLUTE_IMAGE_REGISTRY:-docker.io}/${INVOLUTE_IMAGE_NAMESPACE:-turnkeyai}/involute-web:${INVOLUTE_IMAGE_TAG:-latest}
environment:
INTERNAL_SERVER_ORIGIN: http://server:4200
WEB_PROXY_AUTHORIZATION: ""
restart: unless-stopped
depends_on:
server:
condition: service_healthy
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The web service is missing a healthcheck in the production compose file, which is inconsistent with the local docker-compose.images.yml. Adding one ensures that dependent services like Caddy only start routing traffic once Nginx is actually ready.

  web:
    image: ${INVOLUTE_IMAGE_REGISTRY:-docker.io}/${INVOLUTE_IMAGE_NAMESPACE:-turnkeyai}/involute-web:${INVOLUTE_IMAGE_TAG:-latest}
    environment:
      INTERNAL_SERVER_ORIGIN: http://server:4200
      WEB_PROXY_AUTHORIZATION: ""
    healthcheck:
      test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:4201 >/dev/null || exit 1"]
      interval: 10s
      timeout: 5s
      retries: 20
      start_period: 10s
    restart: unless-stopped
    depends_on:
      server:
        condition: service_healthy

Comment on lines +93 to +94
web:
condition: service_started
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

With the addition of a healthcheck to the web service, Caddy should wait for the service to be healthy rather than just started.

      web:
        condition: service_healthy

Comment thread package.json
Comment on lines +16 to +19
"compose:pull": "docker compose -f docker-compose.images.yml pull server web cli",
"compose:pull:up": "docker compose -f docker-compose.images.yml up -d db server web",
"compose:prod:pull": "docker compose --env-file .env.production -f docker-compose.prod.images.yml pull server web cli",
"compose:prod:pull:up": "docker compose --env-file .env.production -f docker-compose.prod.images.yml up -d",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The pull and up scripts can be simplified by removing explicit service names. docker compose pull will automatically pull all images defined in the file (including infrastructure like Postgres and Caddy), and docker compose up -d will start the core stack while respecting service profiles (e.g., skipping the cli tool if it has the tools profile).

Suggested change
"compose:pull": "docker compose -f docker-compose.images.yml pull server web cli",
"compose:pull:up": "docker compose -f docker-compose.images.yml up -d db server web",
"compose:prod:pull": "docker compose --env-file .env.production -f docker-compose.prod.images.yml pull server web cli",
"compose:prod:pull:up": "docker compose --env-file .env.production -f docker-compose.prod.images.yml up -d",
"compose:pull": "docker compose -f docker-compose.images.yml pull",
"compose:pull:up": "docker compose -f docker-compose.images.yml up -d",
"compose:prod:pull": "docker compose --env-file .env.production -f docker-compose.prod.images.yml pull",
"compose:prod:pull:up": "docker compose --env-file .env.production -f docker-compose.prod.images.yml up -d",

@fakechris fakechris merged commit 2dec5a9 into main Apr 18, 2026
3 checks passed
@fakechris fakechris deleted the feature/dockerhub-images-and-badges branch April 18, 2026 23:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant