From 10313b35e964fecee0bf0d9393443467fd74a04f Mon Sep 17 00:00:00 2001 From: Sun-ZhenXing <1006925066@qq.com> Date: Thu, 15 Jan 2026 15:13:05 +0800 Subject: [PATCH] feat: add Doris and Overleaf services with configuration files --- README.md | 2 + README.zh.md | 2 + src/doris/.env.example | 53 ++++++++++++++++ src/doris/README.md | 52 +++++++++++++++ src/doris/README.zh.md | 52 +++++++++++++++ src/doris/docker-compose.yaml | 79 +++++++++++++++++++++++ src/overleaf/.env.example | 72 +++++++++++++++++++++ src/overleaf/README.md | 56 ++++++++++++++++ src/overleaf/README.zh.md | 56 ++++++++++++++++ src/overleaf/docker-compose.yaml | 106 +++++++++++++++++++++++++++++++ src/pulsar/docker-compose.yaml | 2 +- 11 files changed, 531 insertions(+), 1 deletion(-) create mode 100644 src/doris/.env.example create mode 100644 src/doris/README.md create mode 100644 src/doris/README.zh.md create mode 100644 src/doris/docker-compose.yaml create mode 100644 src/overleaf/.env.example create mode 100644 src/overleaf/README.md create mode 100644 src/overleaf/README.zh.md create mode 100644 src/overleaf/docker-compose.yaml diff --git a/README.md b/README.md index ccbfa27..8380e20 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ These services require building custom Docker images from source. | [DNSMasq](./src/dnsmasq) | 2.91 | | [Dockge](./src/dockge) | 1 | | [Docker Registry](./src/docker-registry) | 3.0.0 | +| [Doris](./src/doris) | 3.0.0 | | [DuckDB](./src/duckdb) | v1.1.3 | | [Easy Dataset](./apps/easy-dataset) | 1.5.1 | | [Elasticsearch](./src/elasticsearch) | 8.16.1 | @@ -101,6 +102,7 @@ These services require building custom Docker images from source. | [OpenObserve](./apps/openobserve) | v0.50.0 | | [OpenSearch](./src/opensearch) | 2.19.0 | | [OpenTelemetry Collector](./src/otel-collector) | 0.115.1 | +| [Overleaf](./src/overleaf) | 5.2.1 | | [PocketBase](./src/pocketbase) | 0.30.0 | | [Podman](./src/podman) | v5.7.1 | | [Portainer](./src/portainer) | 2.27.3-alpine | diff --git a/README.zh.md b/README.zh.md index cbce273..96e7bc4 100644 --- a/README.zh.md +++ b/README.zh.md @@ -38,6 +38,7 @@ Compose Anything 通过提供一组高质量的 Docker Compose 配置文件, | [DNSMasq](./src/dnsmasq) | 2.91 | | [Dockge](./src/dockge) | 1 | | [Docker Registry](./src/docker-registry) | 3.0.0 | +| [Doris](./src/doris) | 3.0.0 | | [DuckDB](./src/duckdb) | v1.1.3 | | [Easy Dataset](./apps/easy-dataset) | 1.5.1 | | [Elasticsearch](./src/elasticsearch) | 8.16.1 | @@ -101,6 +102,7 @@ Compose Anything 通过提供一组高质量的 Docker Compose 配置文件, | [OpenObserve](./apps/openobserve) | v0.50.0 | | [OpenSearch](./src/opensearch) | 2.19.0 | | [OpenTelemetry Collector](./src/otel-collector) | 0.115.1 | +| [Overleaf](./src/overleaf) | 5.2.1 | | [PocketBase](./src/pocketbase) | 0.30.0 | | [Podman](./src/podman) | v5.7.1 | | [Portainer](./src/portainer) | 2.27.3-alpine | diff --git a/src/doris/.env.example b/src/doris/.env.example new file mode 100644 index 0000000..52ab37b --- /dev/null +++ b/src/doris/.env.example @@ -0,0 +1,53 @@ +# Apache Doris version +DORIS_VERSION=3.0.0 + +# Timezone +TZ=UTC + +# Global registry prefix (optional) +# GLOBAL_REGISTRY=your-registry.example.com/ + +# ==================== Frontend (FE) Port Overrides ==================== + +# FE query port (default: 9030) +# DORIS_FE_QUERY_PORT_OVERRIDE=9030 + +# FE HTTP port for web UI (default: 8030) +# DORIS_FE_HTTP_PORT_OVERRIDE=8030 + +# FE RPC port (default: 9020) +# DORIS_FE_RPC_PORT_OVERRIDE=9020 + +# FE edit log port (default: 9010) +# DORIS_FE_EDIT_LOG_PORT_OVERRIDE=9010 + +# ==================== Backend (BE) Port Overrides ==================== + +# BE heartbeat port (default: 9050) +# DORIS_BE_HEARTBEAT_PORT_OVERRIDE=9050 + +# BE Thrift RPC port (default: 9060) +# DORIS_BE_THRIFT_RPC_PORT_OVERRIDE=9060 + +# BE HTTP port (default: 8040) +# DORIS_BE_HTTP_PORT_OVERRIDE=8040 + +# ==================== Resource Limits (FE) ==================== + +# FE CPU limits +# DORIS_FE_CPU_LIMIT=1.00 +# DORIS_FE_CPU_RESERVATION=0.50 + +# FE Memory limits +# DORIS_FE_MEMORY_LIMIT=2G +# DORIS_FE_MEMORY_RESERVATION=1G + +# ==================== Resource Limits (BE) ==================== + +# BE CPU limits +# DORIS_BE_CPU_LIMIT=2.00 +# DORIS_BE_CPU_RESERVATION=1.00 + +# BE Memory limits +# DORIS_BE_MEMORY_LIMIT=4G +# DORIS_BE_MEMORY_RESERVATION=2G diff --git a/src/doris/README.md b/src/doris/README.md new file mode 100644 index 0000000..9cde76d --- /dev/null +++ b/src/doris/README.md @@ -0,0 +1,52 @@ +# Doris + +Apache Doris is a modern OLAP database designed for fast analytics and real-time business intelligence. It provides SQL interface compatible with standard SQL semantics and supports both batch and real-time data processing. + +## Quick Start + +```bash +docker compose up -d +``` + +## Ports + +| Service | Port | Purpose | +| ------- | ---- | ----------------- | +| FE | 9030 | Query Port | +| FE | 8030 | Web UI & HTTP API | +| BE | 8040 | Backend HTTP Port | + +## Default Credentials + +- Web UI: +- Username: `admin` +- Password: `admin` (default, should be changed) + +## Environment Variables + +Key environment variables: + +- `DORIS_VERSION`: Docker image version (default: 3.0.0) +- `DORIS_FE_CPU_LIMIT`: FE CPU limit (default: 1.00) +- `DORIS_FE_MEMORY_LIMIT`: FE memory limit (default: 2G) +- `DORIS_BE_CPU_LIMIT`: BE CPU limit (default: 2.00) +- `DORIS_BE_MEMORY_LIMIT`: BE memory limit (default: 4G) + +See `.env.example` for all available options. + +## Architecture + +The deployment includes: + +- **Frontend (FE)**: Handles query planning, metadata management, and user connections +- **Backend (BE)**: Executes queries and manages data storage + +## Documentation + +- [Apache Doris Official Docs](https://doris.apache.org/) +- [Quick Start Guide](https://doris.apache.org/docs/get-starting/) +- [SQL Reference](https://doris.apache.org/docs/sql-manual/) + +## License + +Apache License 2.0 diff --git a/src/doris/README.zh.md b/src/doris/README.zh.md new file mode 100644 index 0000000..1f0a937 --- /dev/null +++ b/src/doris/README.zh.md @@ -0,0 +1,52 @@ +# Doris + +Apache Doris 是一个现代化的 OLAP 数据库,为快速分析和实时商业智能而设计。它提供兼容标准 SQL 语义的 SQL 接口,并支持批量和实时数据处理。 + +## 快速开始 + +```bash +docker compose up -d +``` + +## 端口 + +| 服务 | 端口 | 用途 | +| ---- | ---- | ------------------ | +| FE | 9030 | 查询端口 | +| FE | 8030 | Web UI 和 HTTP API | +| BE | 8040 | 后端 HTTP 端口 | + +## 默认凭证 + +- Web UI: +- 用户名:`admin` +- 密码:`admin`(默认值,应该更改) + +## 环境变量 + +关键环境变量: + +- `DORIS_VERSION`:Docker 镜像版本(默认值:3.0.0) +- `DORIS_FE_CPU_LIMIT`:FE CPU 限制(默认值:1.00) +- `DORIS_FE_MEMORY_LIMIT`:FE 内存限制(默认值:2G) +- `DORIS_BE_CPU_LIMIT`:BE CPU 限制(默认值:2.00) +- `DORIS_BE_MEMORY_LIMIT`:BE 内存限制(默认值:4G) + +请查看 `.env.example` 获取所有可用选项。 + +## 架构 + +该部署包括: + +- **Frontend(FE)**:处理查询规划、元数据管理和用户连接 +- **Backend(BE)**:执行查询并管理数据存储 + +## 文档 + +- [Apache Doris 官方文档](https://doris.apache.org/) +- [快速入门指南](https://doris.apache.org/docs/get-starting/) +- [SQL 参考](https://doris.apache.org/docs/sql-manual/) + +## 许可证 + +Apache License 2.0 diff --git a/src/doris/docker-compose.yaml b/src/doris/docker-compose.yaml new file mode 100644 index 0000000..64fc3fb --- /dev/null +++ b/src/doris/docker-compose.yaml @@ -0,0 +1,79 @@ +# Apache Doris Docker Compose +# Doris is an OLAP database for modern analytics +# Provides standalone mode with FE and BE nodes for development/testing + +x-defaults: &defaults + restart: unless-stopped + logging: + driver: json-file + options: + max-size: 100m + max-file: "3" + +services: + # Doris Frontend (FE) node + doris-fe: + <<: *defaults + image: ${GLOBAL_REGISTRY:-}apache/doris:${DORIS_VERSION:-3.0.0}-fe-x86_64 + hostname: doris-fe + ports: + - "${DORIS_FE_QUERY_PORT_OVERRIDE:-9030}:9030" + - "${DORIS_FE_HTTP_PORT_OVERRIDE:-8030}:8030" + - "${DORIS_FE_RPC_PORT_OVERRIDE:-9020}:9020" + - "${DORIS_FE_EDIT_LOG_PORT_OVERRIDE:-9010}:9010" + volumes: + - doris_fe_data:/opt/apache-doris/fe/doris-meta + environment: + - TZ=${TZ:-UTC} + - FE_SERVERS=doris-fe:9010 + - FRONTEND_REPLICAS=1 + healthcheck: + test: ["CMD-SHELL", "curl -sf http://localhost:8030/api/v2/system/info || exit 1"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 60s + deploy: + resources: + limits: + cpus: ${DORIS_FE_CPU_LIMIT:-1.00} + memory: ${DORIS_FE_MEMORY_LIMIT:-2G} + reservations: + cpus: ${DORIS_FE_CPU_RESERVATION:-0.50} + memory: ${DORIS_FE_MEMORY_RESERVATION:-1G} + + # Doris Backend (BE) node + doris-be: + <<: *defaults + image: ${GLOBAL_REGISTRY:-}apache/doris:${DORIS_VERSION:-3.0.0}-be-x86_64 + hostname: doris-be + ports: + - "${DORIS_BE_HEARTBEAT_PORT_OVERRIDE:-9050}:9050" + - "${DORIS_BE_THRIFT_RPC_PORT_OVERRIDE:-9060}:9060" + - "${DORIS_BE_HTTP_PORT_OVERRIDE:-8040}:8040" + volumes: + - doris_be_data:/opt/apache-doris/be/storage + environment: + - TZ=${TZ:-UTC} + - FE_SERVERS=doris-fe:9010 + depends_on: + doris-fe: + condition: service_healthy + healthcheck: + test: ["CMD-SHELL", "curl -sf http://localhost:8040/api/health || exit 1"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 60s + deploy: + resources: + limits: + cpus: ${DORIS_BE_CPU_LIMIT:-2.00} + memory: ${DORIS_BE_MEMORY_LIMIT:-4G} + reservations: + cpus: ${DORIS_BE_CPU_RESERVATION:-1.00} + memory: ${DORIS_BE_MEMORY_RESERVATION:-2G} + +volumes: + doris_fe_data: + doris_be_data: diff --git a/src/overleaf/.env.example b/src/overleaf/.env.example new file mode 100644 index 0000000..26941f0 --- /dev/null +++ b/src/overleaf/.env.example @@ -0,0 +1,72 @@ +# Overleaf version (ShareLaTeX image) +OVERLEAF_VERSION=5.2.1 + +# MongoDB version +MONGO_VERSION=6.0 + +# Redis version +REDIS_VERSION=7-alpine + +# Timezone +TZ=UTC + +# Global registry prefix (optional) +# GLOBAL_REGISTRY=your-registry.example.com/ + +# ==================== Port Overrides ==================== + +# Overleaf HTTP port (default: 8080) +# OVERLEAF_PORT_OVERRIDE=8080 + +# ==================== Overleaf Configuration ==================== + +# Enable subscriptions (true/false) +# ENABLE_SUBSCRIPTIONS=false + +# Application name displayed in web UI +# SHARELATEX_APP_NAME=Overleaf + +# Use secure cookies (set to true if using HTTPS) +# SHARELATEX_SECURE_COOKIE=false + +# Administrator email addresses (comma-separated) +# SHARELATEX_ADMIN_EMAILS=admin@example.com + +# Run behind proxy (set to true if using reverse proxy) +# SHARELATEX_BEHIND_PROXY=true + +# Navigation bar title +# SHARELATEX_NAV_TITLE=Community Edition + +# Enable LaTeX typesetting with latexmk +# LATEX_AVAILABLE_LATEXMK=true + +# ==================== Resource Limits (Overleaf) ==================== + +# Overleaf CPU limits +# OVERLEAF_CPU_LIMIT=2.00 +# OVERLEAF_CPU_RESERVATION=0.50 + +# Overleaf Memory limits +# OVERLEAF_MEMORY_LIMIT=2G +# OVERLEAF_MEMORY_RESERVATION=1G + +# ==================== Resource Limits (MongoDB) ==================== + +# MongoDB CPU limits +# MONGO_CPU_LIMIT=1.00 +# MONGO_CPU_RESERVATION=0.25 + +# MongoDB Memory limits +# MONGO_MEMORY_LIMIT=1G +# MONGO_MEMORY_RESERVATION=512M + +# ==================== Resource Limits (Redis) ==================== + +# Redis CPU limits +# REDIS_CPU_LIMIT=0.50 +# REDIS_CPU_RESERVATION=0.25 + +# Redis Memory limits +# REDIS_MEMORY_LIMIT=512M +# REDIS_MEMORY_RESERVATION=256M diff --git a/src/overleaf/README.md b/src/overleaf/README.md new file mode 100644 index 0000000..3dfd14c --- /dev/null +++ b/src/overleaf/README.md @@ -0,0 +1,56 @@ +# Overleaf + +Overleaf is a web-based collaborative LaTeX editor that makes the writing of technical documents as easy as pie. Write, compile, and download LaTeX documents online with automatic cloud backup. + +## Quick Start + +```bash +docker compose up -d +``` + +## Ports + +| Service | Port | Purpose | +| -------- | ---- | ------------- | +| Overleaf | 8080 | Web Interface | + +## Default Access + +- Web UI: +- Create a new account or log in + +## Environment Variables + +Key environment variables: + +- `OVERLEAF_VERSION`: Docker image version (default: 5.2.1) +- `OVERLEAF_PORT_OVERRIDE`: Override default HTTP port (default: 8080) +- `SHARELATEX_APP_NAME`: Application name (default: Overleaf) +- `SHARELATEX_ADMIN_EMAILS`: Admin email addresses +- `ENABLE_SUBSCRIPTIONS`: Enable subscription features (default: false) + +See `.env.example` for all available options. + +## Services Included + +- **Overleaf**: Main application +- **MongoDB**: Project and user data storage +- **Redis**: Session and cache management + +## Features + +- Real-time collaborative editing +- Rich text and code editors +- Instant preview of compiled documents +- Version control and history +- Templates library +- Git integration (Pro) + +## Documentation + +- [Overleaf Official Docs](https://www.overleaf.com/learn) +- [Community Server Setup](https://www.overleaf.com/help/207-how-does-overleaf-help-with-group-collaboration) + +## License + +AGPL License (Community Edition) diff --git a/src/overleaf/README.zh.md b/src/overleaf/README.zh.md new file mode 100644 index 0000000..47a9586 --- /dev/null +++ b/src/overleaf/README.zh.md @@ -0,0 +1,56 @@ +# Overleaf + +Overleaf 是一个基于网络的协作式 LaTeX 编辑器,使技术文档的编写如同小菜一碟。在线编写、编译和下载 LaTeX 文档,具有自动云备份功能。 + +## 快速开始 + +```bash +docker compose up -d +``` + +## 端口 + +| 服务 | 端口 | 用途 | +| -------- | ---- | -------- | +| Overleaf | 8080 | Web 界面 | + +## 默认访问 + +- Web UI: +- 创建新账户或登录 + +## 环境变量 + +关键环境变量: + +- `OVERLEAF_VERSION`:Docker 镜像版本(默认值:5.2.1) +- `OVERLEAF_PORT_OVERRIDE`:覆盖默认 HTTP 端口(默认值:8080) +- `SHARELATEX_APP_NAME`:应用程序名称(默认值:Overleaf) +- `SHARELATEX_ADMIN_EMAILS`:管理员电子邮件地址 +- `ENABLE_SUBSCRIPTIONS`:启用订阅功能(默认值:false) + +请查看 `.env.example` 获取所有可用选项。 + +## 包含的服务 + +- **Overleaf**:主应用程序 +- **MongoDB**:项目和用户数据存储 +- **Redis**:会话和缓存管理 + +## 功能特性 + +- 实时协作编辑 +- 富文本和代码编辑器 +- 编译文档的即时预览 +- 版本控制和历史记录 +- 模板库 +- Git 集成(Pro 版) + +## 文档 + +- [Overleaf 官方文档](https://www.overleaf.com/learn) +- [社区服务器设置](https://www.overleaf.com/help/207-how-does-overleaf-help-with-group-collaboration) + +## 许可证 + +AGPL 许可证(社区版) diff --git a/src/overleaf/docker-compose.yaml b/src/overleaf/docker-compose.yaml new file mode 100644 index 0000000..5807959 --- /dev/null +++ b/src/overleaf/docker-compose.yaml @@ -0,0 +1,106 @@ +# Overleaf Docker Compose +# Overleaf is a web-based collaborative LaTeX editor +# Provides standalone deployment with MongoDB for development/testing + +x-defaults: &defaults + restart: unless-stopped + logging: + driver: json-file + options: + max-size: 100m + max-file: "3" + +services: + # MongoDB for Overleaf data storage + mongo: + <<: *defaults + image: ${GLOBAL_REGISTRY:-}mongo:${MONGO_VERSION:-6.0} + hostname: overleaf-mongo + volumes: + - mongo_data:/data/db + environment: + - TZ=${TZ:-UTC} + healthcheck: + test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 10s + deploy: + resources: + limits: + cpus: ${MONGO_CPU_LIMIT:-1.00} + memory: ${MONGO_MEMORY_LIMIT:-1G} + reservations: + cpus: ${MONGO_CPU_RESERVATION:-0.25} + memory: ${MONGO_MEMORY_RESERVATION:-512M} + + # Redis for session and cache storage + redis: + <<: *defaults + image: ${GLOBAL_REGISTRY:-}redis:${REDIS_VERSION:-7-alpine} + hostname: overleaf-redis + command: redis-server --appendonly yes + volumes: + - redis_data:/data + environment: + - TZ=${TZ:-UTC} + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 10s + deploy: + resources: + limits: + cpus: ${REDIS_CPU_LIMIT:-0.50} + memory: ${REDIS_MEMORY_LIMIT:-512M} + reservations: + cpus: ${REDIS_CPU_RESERVATION:-0.25} + memory: ${REDIS_MEMORY_RESERVATION:-256M} + + # Overleaf main application + overleaf: + <<: *defaults + image: ${GLOBAL_REGISTRY:-}sharelatex/sharelatex:${OVERLEAF_VERSION:-5.2.1} + hostname: overleaf + ports: + - "${OVERLEAF_PORT_OVERRIDE:-8080}:80" + volumes: + - overleaf_data:/var/lib/overleaf + environment: + - TZ=${TZ:-UTC} + - MONGO_URL=mongodb://mongo:27017/overleaf + - REDIS_URL=redis://redis:6379 + - ENABLE_SUBSCRIPTIONS=${ENABLE_SUBSCRIPTIONS:-false} + - SHARELATEX_APP_NAME=${SHARELATEX_APP_NAME:-Overleaf} + - SHARELATEX_SECURE_COOKIE=${SHARELATEX_SECURE_COOKIE:-false} + - SHARELATEX_ADMIN_EMAILS=${SHARELATEX_ADMIN_EMAILS:-admin@example.com} + - SHARELATEX_BEHIND_PROXY=${SHARELATEX_BEHIND_PROXY:-true} + - SHARELATEX_NAV_TITLE=${SHARELATEX_NAV_TITLE:-Community Edition} + - LATEX_AVAILABLE_LATEXMK=${LATEX_AVAILABLE_LATEXMK:-true} + depends_on: + mongo: + condition: service_healthy + redis: + condition: service_healthy + healthcheck: + test: ["CMD-SHELL", "curl -sf http://localhost/health || exit 1"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 60s + deploy: + resources: + limits: + cpus: ${OVERLEAF_CPU_LIMIT:-2.00} + memory: ${OVERLEAF_MEMORY_LIMIT:-2G} + reservations: + cpus: ${OVERLEAF_CPU_RESERVATION:-0.50} + memory: ${OVERLEAF_MEMORY_RESERVATION:-1G} + +volumes: + mongo_data: + redis_data: + overleaf_data: diff --git a/src/pulsar/docker-compose.yaml b/src/pulsar/docker-compose.yaml index d65ec18..54c3a4d 100644 --- a/src/pulsar/docker-compose.yaml +++ b/src/pulsar/docker-compose.yaml @@ -15,7 +15,7 @@ services: <<: *defaults image: ${GLOBAL_REGISTRY:-}apachepulsar/pulsar:${PULSAR_VERSION:-4.0.7} profiles: - - ${COMPOSE_PROFILES:-} + - "" hostname: pulsar-standalone ports: - "${PULSAR_BROKER_PORT_OVERRIDE:-6650}:6650"