feat: add Doris and Overleaf services with configuration files
This commit is contained in:
@@ -38,6 +38,7 @@ These services require building custom Docker images from source.
|
|||||||
| [DNSMasq](./src/dnsmasq) | 2.91 |
|
| [DNSMasq](./src/dnsmasq) | 2.91 |
|
||||||
| [Dockge](./src/dockge) | 1 |
|
| [Dockge](./src/dockge) | 1 |
|
||||||
| [Docker Registry](./src/docker-registry) | 3.0.0 |
|
| [Docker Registry](./src/docker-registry) | 3.0.0 |
|
||||||
|
| [Doris](./src/doris) | 3.0.0 |
|
||||||
| [DuckDB](./src/duckdb) | v1.1.3 |
|
| [DuckDB](./src/duckdb) | v1.1.3 |
|
||||||
| [Easy Dataset](./apps/easy-dataset) | 1.5.1 |
|
| [Easy Dataset](./apps/easy-dataset) | 1.5.1 |
|
||||||
| [Elasticsearch](./src/elasticsearch) | 8.16.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 |
|
| [OpenObserve](./apps/openobserve) | v0.50.0 |
|
||||||
| [OpenSearch](./src/opensearch) | 2.19.0 |
|
| [OpenSearch](./src/opensearch) | 2.19.0 |
|
||||||
| [OpenTelemetry Collector](./src/otel-collector) | 0.115.1 |
|
| [OpenTelemetry Collector](./src/otel-collector) | 0.115.1 |
|
||||||
|
| [Overleaf](./src/overleaf) | 5.2.1 |
|
||||||
| [PocketBase](./src/pocketbase) | 0.30.0 |
|
| [PocketBase](./src/pocketbase) | 0.30.0 |
|
||||||
| [Podman](./src/podman) | v5.7.1 |
|
| [Podman](./src/podman) | v5.7.1 |
|
||||||
| [Portainer](./src/portainer) | 2.27.3-alpine |
|
| [Portainer](./src/portainer) | 2.27.3-alpine |
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ Compose Anything 通过提供一组高质量的 Docker Compose 配置文件,
|
|||||||
| [DNSMasq](./src/dnsmasq) | 2.91 |
|
| [DNSMasq](./src/dnsmasq) | 2.91 |
|
||||||
| [Dockge](./src/dockge) | 1 |
|
| [Dockge](./src/dockge) | 1 |
|
||||||
| [Docker Registry](./src/docker-registry) | 3.0.0 |
|
| [Docker Registry](./src/docker-registry) | 3.0.0 |
|
||||||
|
| [Doris](./src/doris) | 3.0.0 |
|
||||||
| [DuckDB](./src/duckdb) | v1.1.3 |
|
| [DuckDB](./src/duckdb) | v1.1.3 |
|
||||||
| [Easy Dataset](./apps/easy-dataset) | 1.5.1 |
|
| [Easy Dataset](./apps/easy-dataset) | 1.5.1 |
|
||||||
| [Elasticsearch](./src/elasticsearch) | 8.16.1 |
|
| [Elasticsearch](./src/elasticsearch) | 8.16.1 |
|
||||||
@@ -101,6 +102,7 @@ Compose Anything 通过提供一组高质量的 Docker Compose 配置文件,
|
|||||||
| [OpenObserve](./apps/openobserve) | v0.50.0 |
|
| [OpenObserve](./apps/openobserve) | v0.50.0 |
|
||||||
| [OpenSearch](./src/opensearch) | 2.19.0 |
|
| [OpenSearch](./src/opensearch) | 2.19.0 |
|
||||||
| [OpenTelemetry Collector](./src/otel-collector) | 0.115.1 |
|
| [OpenTelemetry Collector](./src/otel-collector) | 0.115.1 |
|
||||||
|
| [Overleaf](./src/overleaf) | 5.2.1 |
|
||||||
| [PocketBase](./src/pocketbase) | 0.30.0 |
|
| [PocketBase](./src/pocketbase) | 0.30.0 |
|
||||||
| [Podman](./src/podman) | v5.7.1 |
|
| [Podman](./src/podman) | v5.7.1 |
|
||||||
| [Portainer](./src/portainer) | 2.27.3-alpine |
|
| [Portainer](./src/portainer) | 2.27.3-alpine |
|
||||||
|
|||||||
53
src/doris/.env.example
Normal file
53
src/doris/.env.example
Normal file
@@ -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
|
||||||
52
src/doris/README.md
Normal file
52
src/doris/README.md
Normal file
@@ -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: <http://localhost:8030>
|
||||||
|
- 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
|
||||||
52
src/doris/README.zh.md
Normal file
52
src/doris/README.zh.md
Normal file
@@ -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:<http://localhost:8030>
|
||||||
|
- 用户名:`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
|
||||||
79
src/doris/docker-compose.yaml
Normal file
79
src/doris/docker-compose.yaml
Normal file
@@ -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:
|
||||||
72
src/overleaf/.env.example
Normal file
72
src/overleaf/.env.example
Normal file
@@ -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
|
||||||
56
src/overleaf/README.md
Normal file
56
src/overleaf/README.md
Normal file
@@ -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: <http://localhost:8080>
|
||||||
|
- 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)
|
||||||
56
src/overleaf/README.zh.md
Normal file
56
src/overleaf/README.zh.md
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
# Overleaf
|
||||||
|
|
||||||
|
Overleaf 是一个基于网络的协作式 LaTeX 编辑器,使技术文档的编写如同小菜一碟。在线编写、编译和下载 LaTeX 文档,具有自动云备份功能。
|
||||||
|
|
||||||
|
## 快速开始
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## 端口
|
||||||
|
|
||||||
|
| 服务 | 端口 | 用途 |
|
||||||
|
| -------- | ---- | -------- |
|
||||||
|
| Overleaf | 8080 | Web 界面 |
|
||||||
|
|
||||||
|
## 默认访问
|
||||||
|
|
||||||
|
- Web UI:<http://localhost:8080>
|
||||||
|
- 创建新账户或登录
|
||||||
|
|
||||||
|
## 环境变量
|
||||||
|
|
||||||
|
关键环境变量:
|
||||||
|
|
||||||
|
- `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 许可证(社区版)
|
||||||
106
src/overleaf/docker-compose.yaml
Normal file
106
src/overleaf/docker-compose.yaml
Normal file
@@ -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:
|
||||||
@@ -15,7 +15,7 @@ services:
|
|||||||
<<: *defaults
|
<<: *defaults
|
||||||
image: ${GLOBAL_REGISTRY:-}apachepulsar/pulsar:${PULSAR_VERSION:-4.0.7}
|
image: ${GLOBAL_REGISTRY:-}apachepulsar/pulsar:${PULSAR_VERSION:-4.0.7}
|
||||||
profiles:
|
profiles:
|
||||||
- ${COMPOSE_PROFILES:-}
|
- ""
|
||||||
hostname: pulsar-standalone
|
hostname: pulsar-standalone
|
||||||
ports:
|
ports:
|
||||||
- "${PULSAR_BROKER_PORT_OVERRIDE:-6650}:6650"
|
- "${PULSAR_BROKER_PORT_OVERRIDE:-6650}:6650"
|
||||||
|
|||||||
Reference in New Issue
Block a user