From 99ac4c91aa5f84f38e4e3abe67bec76b80bd2e8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A3=8E=E8=B5=B7?= <326lisan@gmail.com> Date: Wed, 8 Apr 2026 12:48:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=E3=80=8C/=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 6 ++++++ .gitignore | 1 + docker-compose.fts.yml | 41 +++++++++++++++++++++++++++++++++++++ docker-compose.pro.yml | 15 ++++++++++++++ docker-compose.yml | 46 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 109 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 docker-compose.fts.yml create mode 100644 docker-compose.pro.yml create mode 100644 docker-compose.yml diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..822fc82 --- /dev/null +++ b/.env.example @@ -0,0 +1,6 @@ +# Pro edition only: license key from https://cloudreve.org/login +#CR_LICENSE_KEY= + +# Full-text search only: Meilisearch master key +# Generate with: openssl rand -hex 32 +#MEILI_MASTER_KEY= diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c49bd7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.env diff --git a/docker-compose.fts.yml b/docker-compose.fts.yml new file mode 100644 index 0000000..8f9a486 --- /dev/null +++ b/docker-compose.fts.yml @@ -0,0 +1,41 @@ +# Full-text search addon: Apache Tika + Meilisearch +# +# Usage: +# Community: +# docker compose -f docker-compose.yml -f docker-compose.fts.yml up -d +# Pro: +# docker compose -f docker-compose.yml -f docker-compose.pro.yml -f docker-compose.fts.yml up -d +# +# Set MEILI_MASTER_KEY in .env or export it as an environment variable. +# Generate one with: openssl rand -hex 32 + +services: + cloudreve: + environment: + - CR_SETTING_DEFAULT_fts_meilisearch_api_key=${MEILI_MASTER_KEY} + - CR_SETTING_DEFAULT_fts_meilisearch_endpoint=http://meilisearch:7700 + - CR_SETTING_DEFAULT_fts_enabled=1 + - CR_SETTING_DEFAULT_fts_tika_endpoint=http://tika:9998 + + depends_on: + tika: + condition: service_started + meilisearch: + condition: service_started + + tika: + image: apache/tika:latest + container_name: tika + restart: unless-stopped + + meilisearch: + image: getmeili/meilisearch:v1.37 + container_name: meilisearch + restart: unless-stopped + environment: + - MEILI_MASTER_KEY=${MEILI_MASTER_KEY} + volumes: + - meili_data:/meili_data + +volumes: + meili_data: diff --git a/docker-compose.pro.yml b/docker-compose.pro.yml new file mode 100644 index 0000000..d94e62f --- /dev/null +++ b/docker-compose.pro.yml @@ -0,0 +1,15 @@ +# Pro edition override: apply on top of docker-compose.yml +# +# Usage: +# docker compose -f docker-compose.yml -f docker-compose.pro.yml up -d +# +# Prerequisites: +# 1. Log in to the Pro image registry: +# docker login -u -p cloudreve.azurecr.io +# 2. Set CR_LICENSE_KEY in .env or export it as an environment variable. + +services: + cloudreve: + image: cloudreve.azurecr.io/cloudreve/pro:v4 + environment: + - CR_LICENSE_KEY=${CR_LICENSE_KEY} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..461a3c0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,46 @@ +services: + cloudreve: + image: cloudreve/cloudreve:v4 + container_name: cloudreve + depends_on: + postgresql: + condition: service_started + redis: + condition: service_started + restart: unless-stopped + ports: + - 5212:5212 + - 6888:6888 + - 6888:6888/udp + environment: + - CR_CONF_Database.Type=postgres + - CR_CONF_Database.Host=postgresql + - CR_CONF_Database.User=cloudreve + - CR_CONF_Database.Name=cloudreve + - CR_CONF_Database.Port=5432 + - CR_CONF_Redis.Server=redis:6379 + volumes: + - backend_data:/cloudreve/data + + postgresql: + image: postgres:17 + container_name: postgresql + restart: unless-stopped + environment: + - POSTGRES_USER=cloudreve + - POSTGRES_DB=cloudreve + - POSTGRES_HOST_AUTH_METHOD=trust + volumes: + - database_postgres:/var/lib/postgresql/data + + redis: + image: redis:latest + container_name: redis + restart: unless-stopped + volumes: + - redis_data:/data + +volumes: + backend_data: + database_postgres: + redis_data: