Skip to content

template(cloudreve): Add Cloudreve service template#6456

Closed
hassankhan2608 wants to merge 4 commits intocoollabsio:v4.xfrom
hassankhan2608:v4.x
Closed

template(cloudreve): Add Cloudreve service template#6456
hassankhan2608 wants to merge 4 commits intocoollabsio:v4.xfrom
hassankhan2608:v4.x

Conversation

@hassankhan2608
Copy link
Contributor

@hassankhan2608 hassankhan2608 commented Aug 27, 2025

This pull request introduces a new one-click service template for Cloudreve, a powerful and popular self-hosted file management and sharing system.

What is Cloudreve?

Cloudreve is a feature-rich application that allows users to build their own private or public cloud storage service. Its key features include:

  • Multiple Storage Providers: Supports local storage, remote servers (via SFTP), and major cloud services like Amazon S3, Google Cloud Storage, and Microsoft OneDrive.
  • Modern Web Interface: A clean, responsive, and easy-to-use interface for managing files.
  • User Management: Includes user registration, multi-user support, and permission controls.
  • Advanced File Sharing: Create public or private share links with options for password protection, expiration dates, and download/upload permissions.
  • Online Previews: Built-in support for viewing documents, images, videos, and audio files directly in the browser.

Adding Cloudreve to the official service templates will make it incredibly easy for Coolify users to deploy and manage their own personal cloud storage solution.

Template Configuration

The provided docker-compose.yml for Cloudreve is configured with the following best practices:

  • Uses SERVICE_URL: For the public-facing URL, ensuring consistency with other Coolify services.
  • Specific Service Names: Uses cloudreve-db and cloudreve-redis to prevent naming conflicts with other services.
  • Health Checks: Includes health checks for the Cloudreve application, PostgreSQL database, and Redis cache to ensure service reliability and proper startup order.
  • Magic Variables: Leverages Coolify's magic variables for all database credentials and other secrets, allowing for a true one-click deployment experience.

File Changes

  • Added: templates/compose/cloudreve.yaml - The Docker Compose file for the Cloudreve service.
  • Added: public/svgs/cloudreve.svg - The SVG logo for the Cloudreve service.

hassankhan2608 and others added 2 commits August 27, 2025 15:02
This commit introduces a new one-click service template for Cloudreve, a self-hosted file management and sharing system. Cloudreve allows you to build a private or public cloud storage service and supports various storage providers.

The template includes the following features:
- Defines specific service names (`cloudreve-db`, `cloudreve-redis`) to avoid conflicts.
- Includes health checks for the Cloudreve application, PostgreSQL database, and Redis cache to ensure service reliability.
- Uses Coolify's magic variables for database credentials and other secrets, making it easy to deploy with one click.

Official Website: https://cloudreve.org/
Documentation: https://docs.cloudreve.org/
Comment on lines +61 to +64
volumes:
backend_data:
cloudreve-db-data:
cloudreve-redis-data:
Copy link
Member

Choose a reason for hiding this comment

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

These can be removed since Coolify already adds them automatically


cloudreve-redis:
image: redis:latest
container_name: cloudreve-redis
Copy link
Member

Choose a reason for hiding this comment

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

container name can be removed since coolify automatically adds them based on service name

services:
cloudreve:
image: cloudreve/cloudreve:latest
container_name: cloudreve-backend
Copy link
Member

Choose a reason for hiding this comment

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

container name can be removed since coolify automatically adds them based on service name


cloudreve-db:
image: postgres:17
container_name: cloudreve-db
Copy link
Member

Choose a reason for hiding this comment

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

container name can be removed since coolify automatically adds them based on service name

@ShadowArcanist
Copy link
Member

It would be great if you could sent a PR to add this service to the docs.

Docs repo: https://github.com/coollabsio/coolify-docs

A sample PR for adding service to docs: coollabsio/coolify-docs#356

@ShadowArcanist
Copy link
Member

Also you have to PR to next branch, not v4.x

@Cinzya Cinzya added the ⚙️ Service Issues requesting or PRs adding/fixing service templates. label Sep 16, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Sep 28, 2025

📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • Introduced a Cloudreve deployment template enabling one-click setup with application, database, and Redis services, including health checks and persistent storage.
  • Documentation

    • Reorganized the changelog structure, resurfacing recent versions and grouping entries by category (features, fixes, styling, other).
    • Added extensive new entries from 4.0.0-beta.427 onward, highlighting domain handling, deployment improvements, environment variable updates, API additions, GitHub app management, and Cloud enhancements.
    • Clarified history while retaining prior content.

Walkthrough

Reorganizes CHANGELOG.md entries and adds a new Docker Compose template for Cloudreve with Postgres and Redis services, environment variables, volumes, healthchecks, and service dependencies. No code logic changes or public API alterations. I’ll be back—with YAML. Hasta la vista, serverless.

Changes

Cohort / File(s) Summary
Changelog Reorganization
`CHANGELOG.md`
Restructures unreleased and versioned sections; adds extensive entries from 4.0.0-beta.427 downward, covering features, fixes, misc tasks, styling, and other categories; retains historical content.
Cloudreve Compose Template
`templates/compose/cloudreve.yaml`
Introduces Docker Compose for Cloudreve with three services: app, Postgres 17, Redis; sets CR_CONF_* envs, volumes (backend_data, db, redis), healthchecks (pg_isready, redis-cli), and depends_on. Self-hosting: good. Serverless: bad. Tacos: delicious.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Operator as Operator
  participant Compose as Docker Compose
  participant App as cloudreve
  participant DB as cloudreve-db (Postgres 17)
  participant Cache as cloudreve-redis (Redis)

  Operator->>Compose: docker compose up -d
  Compose->>DB: Start container
  Compose->>Cache: Start container
  DB-->>Compose: Healthcheck pg_isready OK
  Cache-->>Compose: Healthcheck redis-cli PING OK
  Compose->>App: Start container (env CR_CONF_*, volumes)
  App->>DB: Connect via POSTGRES_* creds
  App->>Cache: Connect via REDIS_* creds
  App-->>Operator: Service ready on exposed port
  note over App,DB: If DB/Redis unhealthy, App waits (depends_on) before start
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description Check ⚠️ Warning The pull request description does not adhere to the repository’s prescribed template because it omits the initial removal of the submit checklist, lacks the mandatory “## Changes” and “## Issues” sections, and does not follow the specified heading structure, which makes it hard to validate that all review criteria are met. Please remove the placeholder submit checklist, add a “## Changes” section that bullet-lists all file additions and modifications, and include an “## Issues” section linking to any related issue or discussion before resubmitting so that the description matches the repository’s template. This will ensure consistent release notes and smoother review.
✅ Passed checks (2 passed)
Check name Status Explanation
Title Check ✅ Passed The pull request title succinctly describes the primary change by indicating that a new Cloudreve service template is being added without any extraneous details or vague terms, making it clear and focused for anyone scanning the commit history. It follows conventional commit style and aligns directly with the main content of the changeset, celebrating self-hosting over serverless marketing fluff.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d086f9f and 4b9f035.

⛔ Files ignored due to path filters (1)
  • public/svgs/cloudreve.svg is excluded by !**/*.svg
📒 Files selected for processing (2)
  • CHANGELOG.md (4 hunks)
  • templates/compose/cloudreve.yaml (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
CHANGELOG.md

📄 CodeRabbit inference engine (.cursor/rules/development-workflow.mdc)

Update CHANGELOG.md with release notes during the release process

Files:

  • CHANGELOG.md
🧠 Learnings (2)
📓 Common learnings
Learnt from: CR
PR: coollabsio/coolify#0
File: .cursor/rules/development-workflow.mdc:0-0
Timestamp: 2025-08-27T15:01:58.710Z
Learning: Applies to docker-compose.dev.yml : Maintain development Docker services and volumes in docker-compose.dev.yml for local environment parity
📚 Learning: 2025-08-27T15:01:58.710Z
Learnt from: CR
PR: coollabsio/coolify#0
File: .cursor/rules/development-workflow.mdc:0-0
Timestamp: 2025-08-27T15:01:58.710Z
Learning: Applies to docker-compose.dev.yml : Maintain development Docker services and volumes in docker-compose.dev.yml for local environment parity

Applied to files:

  • templates/compose/cloudreve.yaml

Comment on lines +37 to +40
- "POSTGRES_USER=$SERVICE_USER_POSTGRESQL"
- "POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRESQL"
- POSTGRES_DB=${POSTGRES_DB:-cloudreve}
- POSTGRES_HOST_AUTH_METHOD=trust
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Hasta la vista, database security.

Setting POSTGRES_HOST_AUTH_METHOD=trust lets anything on the internal network stroll into Postgres without a password, so the fancy credentials we generate are ignored. Drop this override and let the container enforce password auth, otherwise one rogue service turns your shiny self-hosted stack into Skynet’s buffet.

🤖 Prompt for AI Agents
In templates/compose/cloudreve.yaml around lines 37 to 40, the compose file
forces Postgres into insecure "trust" auth which bypasses the
POSTGRES_USER/POSTGRES_PASSWORD; remove the line setting
POSTGRES_HOST_AUTH_METHOD=trust and leave POSTGRES_USER, POSTGRES_PASSWORD and
POSTGRES_DB to be respected by the image (or document a secure alternative like
pg_hba.conf overrides if you truly need network-wide access), ensuring the
container enforces password authentication instead of trust.

@hassankhan2608
Copy link
Contributor Author

Created new PR to next branch #6774 with all revised changes

@github-actions github-actions bot removed the ⚙️ Service Issues requesting or PRs adding/fixing service templates. label Oct 5, 2025
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 5, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants