feat: add Coolify deployment support (docker-compose.yml + guide) - #1558
feat: add Coolify deployment support (docker-compose.yml + guide)#1558pourmirzai wants to merge 4 commits into
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughAdds a Coolify deployment guide, a Docker Compose stack with PostgreSQL and Kaneo services, persistent storage, health checks, environment configuration, and documentation navigation. ChangesCoolify deployment
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to This PR adds Coolify deployment configuration and documentation without any supplied concrete merge-blocking risk; it is merge-ready after normal checks and review. Sequence Diagram(s)sequenceDiagram
participant Coolify
participant PostgreSQL
participant Kaneo
Coolify->>PostgreSQL: Start database service
PostgreSQL-->>Coolify: Report healthy
Coolify->>Kaneo: Start application service
Kaneo->>PostgreSQL: Connect using configured database variables
Kaneo-->>Coolify: Report HTTP health
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
PR Summary by QodoAdd Coolify deployment support (root docker-compose + docs guide)
AI Description
Diagram
High-Level Assessment
Files changed (4)
|
There was a problem hiding this comment.
🧹 Nitpick comments (1)
docker-compose.yml (1)
31-31: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick winPin the Kaneo image to a tested build.
ghcr.io/usekaneo/kaneo:latestis mutable, and redeploys retainpostgres_data. Use a tested digest or publish and use an immutable release tag. Define upgrades as intentional version changes.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docker-compose.yml` at line 31, Update the Kaneo service image reference from the mutable latest tag to a tested immutable release tag or image digest. Keep future upgrades limited to intentional changes of that pinned version.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@docker-compose.yml`:
- Line 31: Update the Kaneo service image reference from the mutable latest tag
to a tested immutable release tag or image digest. Keep future upgrades limited
to intentional changes of that pinned version.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 6460d7dd-47be-4c4b-b91b-cbcd170b74ae
⛔ Files ignored due to path filters (1)
README.mdis excluded by!**/*.md
📒 Files selected for processing (3)
apps/docs/core/deployments/coolify.mdxapps/docs/docs.jsondocker-compose.yml
Code Review by Qodo
1.
|
0d4f328 to
d82cf3d
Compare
|
@pourmirzai thank you for the contribution! We love seeing new ways to deploy kaneo! I agree with qodo's review on pinning the version of kaneo. |
Address review feedback: replace the mutable :latest tag with a pinned release (v2.18.0) so redeploys are deterministic and database migrations cannot run unintentionally. KANEO_IMAGE_TAG allows intentional upgrades.
|
@randoneering Thanks! Done. I've pinned the image to v2.18.0 (with an optional KANEO_IMAGE_TAG override). |
Description
Adds first-class Coolify deployment support so the bundled Kaneo image can be deployed from the repository with minimal configuration:
docker-compose.yml(repo root): a Coolify-optimized compose stack (PostgreSQL 16 + the bundledghcr.io/usekaneo/kaneoimage) using Coolify's Docker Compose build pack. It uses Coolify magic environment variables to auto-generateAUTH_SECRETand the database password, marksKANEO_CLIENT_URLas required, and avoids host port mappings / custom networks so Coolify's proxy handles all traffic. The compose location, env-var detection, and required-var syntax follow the official Coolify docs.apps/docs/core/deployments/coolify.mdx: step-by-step Coolify deployment guide (registered indocs.jsonunder "Deployment & Operations").README.md: short "Deploy on Coolify" section linking to the guide.Notes learned from a real Coolify deployment attempt:
docker compose up -d; the previouscompose.ymlusesenv_file: .envanddepends_on: condition: service_healthy, which fails on first boot because PostgreSQL is still initializing. The new file passes env vars through theenvironment:list (detected by Coolify's UI) and relies on Kaneo's built-in database retry instead of a hard healthcheck dependency.KANEO_API_URLmust not be set tolocalhost/internal addresses in the Coolify UI — the container derives it fromKANEO_CLIENT_URLat startup. The guide documents this to avoid broken browser API calls.Related Issue(s)
No related issue.
Type of Change
How Has This Been Tested?
/api/healthpasses, login page loads); verified YAML validity with PyYAML anddocs.jsonwith a JSON parserScreenshots (if applicable)
N/A
Checklist
Additional Notes
The deployment flow verified on a real Coolify instance:
https://github.com/usekaneo/kaneo/| Compose Location:docker-compose.ymlkaneoservice ashttps://<domain>:5173(port routes to the container; visitors use the normal HTTPS URL)KANEO_CLIENT_URL; leaveKANEO_API_URLunsetAUTH_SECRETand the PostgreSQL password are auto-generated via Coolify magic variables and editable in the Coolify UI.Summary by CodeRabbit