feat: Add Temporal and Windmill services with configuration files

- Implemented Temporal service with Docker Compose, including PostgreSQL setup and environment variables for configuration.
- Added Temporal README and Chinese translation for documentation.
- Introduced Windmill service with Docker Compose, including PostgreSQL setup and environment variables for configuration.
- Added Windmill README and Chinese translation for documentation.
- Updated MongoDB configurations to use host.docker.internal for better compatibility.
This commit is contained in:
Sun-ZhenXing
2025-11-01 19:40:54 +08:00
parent 843ebc24a1
commit 0f54723be1
22 changed files with 2805 additions and 6 deletions

52
src/budibase/.env.example Normal file
View File

@@ -0,0 +1,52 @@
# Budibase Configuration
# Version
BUDIBASE_VERSION=3.23.0
REDIS_VERSION=7-alpine
# Port Configuration
BUDIBASE_PORT_OVERRIDE=10000
# Internal Service Ports (usually no need to change)
BUDIBASE_APP_PORT=4002
BUDIBASE_WORKER_PORT=4003
BUDIBASE_MINIO_PORT=4004
BUDIBASE_COUCH_DB_PORT=4005
BUDIBASE_REDIS_PORT=6379
# Environment
BUDIBASE_ENVIRONMENT=PRODUCTION
BUDIBASE_DEPLOYMENT_ENVIRONMENT=docker
# Security Settings - IMPORTANT: Change these in production!
BUDIBASE_INTERNAL_API_KEY=changeme_internal_api_key_minimum_32_chars
BUDIBASE_JWT_SECRET=changeme_jwt_secret_minimum_32_chars
BUDIBASE_MINIO_ACCESS_KEY=budibase
BUDIBASE_MINIO_SECRET_KEY=budibase
BUDIBASE_COUCHDB_USER=admin
BUDIBASE_COUCHDB_PASSWORD=admin
# Admin User - IMPORTANT: Change these!
BUDIBASE_ADMIN_EMAIL=admin@budibase.com
BUDIBASE_ADMIN_PASSWORD=changeme
# Optional: Account Portal URL
BUDIBASE_ACCOUNT_PORTAL_URL=https://account.budibase.app
# Optional: PostHog Analytics Token (leave empty to disable)
BUDIBASE_POSTHOG_TOKEN=
# Timezone
TZ=UTC
# Resource Limits - Budibase
BUDIBASE_CPU_LIMIT=2.0
BUDIBASE_CPU_RESERVATION=0.5
BUDIBASE_MEMORY_LIMIT=2G
BUDIBASE_MEMORY_RESERVATION=512M
# Resource Limits - Redis
REDIS_CPU_LIMIT=0.5
REDIS_CPU_RESERVATION=0.1
REDIS_MEMORY_LIMIT=512M
REDIS_MEMORY_RESERVATION=128M

142
src/budibase/README.md Normal file
View File

@@ -0,0 +1,142 @@
# Budibase
Budibase is an all-in-one low-code platform for building modern internal tools and dashboards. Build CRUD apps, admin panels, approval workflows, and more in minutes.
## Features
- **Visual App Builder**: Drag-and-drop interface for building apps quickly
- **Built-in Database**: Spreadsheet-like database or connect to external data sources
- **Multi-tenant Support**: User management and role-based access control
- **Automation**: Build workflows and automations without code
- **Custom Plugins**: Extend functionality with custom components
- **API & Webhooks**: REST API, GraphQL, and webhook support
- **Self-hosted**: Full control over your data
## Quick Start
1. Copy `.env.example` to `.env`:
```bash
cp .env.example .env
```
2. **IMPORTANT**: Edit `.env` and change the following security settings:
- `BUDIBASE_INTERNAL_API_KEY` - Generate a random 32+ character string
- `BUDIBASE_JWT_SECRET` - Generate a random 32+ character string
- `BUDIBASE_ADMIN_EMAIL` - Your admin email
- `BUDIBASE_ADMIN_PASSWORD` - A strong password
- `BUDIBASE_MINIO_ACCESS_KEY` and `BUDIBASE_MINIO_SECRET_KEY` - MinIO credentials
3. Start Budibase:
```bash
docker compose up -d
```
4. Access Budibase at `http://localhost:10000`
5. Log in with your configured admin credentials
## Default Configuration
| Service | Port | Description |
| -------- | ----- | -------------- |
| Budibase | 10000 | Web UI and API |
**Default Admin Credentials** (Change these!):
- Email: `admin@budibase.com`
- Password: `changeme`
## Environment Variables
Key environment variables (see `.env.example` for full list):
| Variable | Description | Default |
| --------------------------- | ---------------------------- | -------------------- |
| `BUDIBASE_VERSION` | Budibase image version | `3.23.0` |
| `BUDIBASE_PORT_OVERRIDE` | Host port for UI | `10000` |
| `BUDIBASE_INTERNAL_API_KEY` | Internal API key (32+ chars) | **Must change!** |
| `BUDIBASE_JWT_SECRET` | JWT secret (32+ chars) | **Must change!** |
| `BUDIBASE_ADMIN_EMAIL` | Admin user email | `admin@budibase.com` |
| `BUDIBASE_ADMIN_PASSWORD` | Admin user password | `changeme` |
| `BUDIBASE_ENVIRONMENT` | Environment mode | `PRODUCTION` |
| `TZ` | Timezone | `UTC` |
## Resource Requirements
**Minimum**:
- CPU: 0.5 cores
- RAM: 512MB
- Disk: 2GB
**Recommended**:
- CPU: 2 cores
- RAM: 2GB
- Disk: 10GB
## Volumes
- `budibase_data`: Budibase application data (database, files, configs)
- `redis_data`: Redis cache data
## Security Considerations
1. **Change Default Credentials**: Always change the default admin credentials
2. **Strong Secrets**: Use strong random strings for API keys and JWT secrets
3. **Environment Variables**: Store sensitive values in `.env` file, never commit to version control
4. **SSL/TLS**: Use reverse proxy (nginx, Traefik) with SSL in production
5. **Firewall**: Restrict access to port 10000 in production environments
6. **Backups**: Regularly backup the `budibase_data` volume
## Upgrading
1. Pull the latest image:
```bash
docker compose pull
```
2. Restart the services:
```bash
docker compose up -d
```
3. Check logs:
```bash
docker compose logs -f
```
## Troubleshooting
**Service won't start:**
- Check logs: `docker compose logs budibase`
- Ensure ports are not in use: `netstat -an | findstr 10000`
- Verify environment variables are set correctly
**Cannot login:**
- Verify admin credentials in `.env` file
- Reset admin password by recreating the container with new credentials
**Performance issues:**
- Increase resource limits in `.env` file
- Check Redis memory usage: `docker compose exec redis redis-cli INFO memory`
## References
- Official Website: <https://budibase.com>
- Documentation: <https://docs.budibase.com>
- GitHub: <https://github.com/Budibase/budibase>
- Community: <https://github.com/Budibase/budibase/discussions>
- Docker Hub: <https://hub.docker.com/r/budibase/budibase>
## License
Budibase is licensed under GPL-3.0. See [LICENSE](https://github.com/Budibase/budibase/blob/master/LICENSE) for more information.

142
src/budibase/README.zh.md Normal file
View File

@@ -0,0 +1,142 @@
# Budibase
Budibase 是一个一体化的低代码平台,用于快速构建现代内部工具和仪表板。可以在几分钟内构建 CRUD 应用、管理面板、审批工作流等。
## 功能特点
- **可视化应用构建器**:通过拖放界面快速构建应用
- **内置数据库**:类似电子表格的数据库或连接到外部数据源
- **多租户支持**:用户管理和基于角色的访问控制
- **自动化**:无需编码即可构建工作流和自动化流程
- **自定义插件**:使用自定义组件扩展功能
- **API 和 Webhook**REST API、GraphQL 和 webhook 支持
- **自托管**:完全控制您的数据
## 快速开始
1. 复制 `.env.example``.env`
```bash
copy .env.example .env
```
2. **重要**:编辑 `.env` 并更改以下安全设置:
- `BUDIBASE_INTERNAL_API_KEY` - 生成一个 32 位以上的随机字符串
- `BUDIBASE_JWT_SECRET` - 生成一个 32 位以上的随机字符串
- `BUDIBASE_ADMIN_EMAIL` - 您的管理员邮箱
- `BUDIBASE_ADMIN_PASSWORD` - 一个强密码
- `BUDIBASE_MINIO_ACCESS_KEY` 和 `BUDIBASE_MINIO_SECRET_KEY` - MinIO 凭证
3. 启动 Budibase
```bash
docker compose up -d
```
4. 访问 `http://localhost:10000`
5. 使用配置的管理员凭证登录
## 默认配置
| 服务 | 端口 | 说明 |
| -------- | ----- | ------------- |
| Budibase | 10000 | Web UI 和 API |
**默认管理员凭证**(请更改!):
- 邮箱:`admin@budibase.com`
- 密码:`changeme`
## 环境变量
主要环境变量(完整列表请参阅 `.env.example`
| 变量 | 说明 | 默认值 |
| --------------------------- | ------------------------- | -------------------- |
| `BUDIBASE_VERSION` | Budibase 镜像版本 | `3.23.0` |
| `BUDIBASE_PORT_OVERRIDE` | UI 的主机端口 | `10000` |
| `BUDIBASE_INTERNAL_API_KEY` | 内部 API 密钥32+ 字符) | **必须更改!** |
| `BUDIBASE_JWT_SECRET` | JWT 密钥32+ 字符) | **必须更改!** |
| `BUDIBASE_ADMIN_EMAIL` | 管理员用户邮箱 | `admin@budibase.com` |
| `BUDIBASE_ADMIN_PASSWORD` | 管理员用户密码 | `changeme` |
| `BUDIBASE_ENVIRONMENT` | 环境模式 | `PRODUCTION` |
| `TZ` | 时区 | `UTC` |
## 资源需求
**最低要求**
- CPU0.5 核心
- 内存512MB
- 磁盘2GB
**推荐配置**
- CPU2 核心
- 内存2GB
- 磁盘10GB
## 数据卷
- `budibase_data`Budibase 应用数据(数据库、文件、配置)
- `redis_data`Redis 缓存数据
## 安全注意事项
1. **更改默认凭证**:始终更改默认管理员凭证
2. **强密钥**:为 API 密钥和 JWT 密钥使用强随机字符串
3. **环境变量**:将敏感值存储在 `.env` 文件中,切勿提交到版本控制
4. **SSL/TLS**:在生产环境中使用带 SSL 的反向代理nginx、Traefik
5. **防火墙**:在生产环境中限制对 10000 端口的访问
6. **备份**:定期备份 `budibase_data` 数据卷
## 升级
1. 拉取最新镜像:
```bash
docker compose pull
```
2. 重启服务:
```bash
docker compose up -d
```
3. 检查日志:
```bash
docker compose logs -f
```
## 故障排除
**服务无法启动:**
- 检查日志:`docker compose logs budibase`
- 确保端口未被占用:`netstat -an | findstr 10000`
- 验证环境变量设置正确
**无法登录:**
- 验证 `.env` 文件中的管理员凭证
- 通过使用新凭证重新创建容器来重置管理员密码
**性能问题:**
- 在 `.env` 文件中增加资源限制
- 检查 Redis 内存使用:`docker compose exec redis redis-cli INFO memory`
## 参考资料
- 官方网站:<https://budibase.com>
- 文档:<https://docs.budibase.com>
- GitHub<https://github.com/Budibase/budibase>
- 社区:<https://github.com/Budibase/budibase/discussions>
- Docker Hub<https://hub.docker.com/r/budibase/budibase>
## 许可证
Budibase 使用 GPL-3.0 许可证。详情请参阅 [LICENSE](https://github.com/Budibase/budibase/blob/master/LICENSE)。

View File

@@ -0,0 +1,116 @@
# Budibase - Low-code platform for building internal tools
# https://github.com/Budibase/budibase
#
# Budibase is an all-in-one low-code platform for building modern internal tools and
# dashboards. It allows you to build apps quickly with a spreadsheet-like database,
# drag-and-drop UI, and pre-built components.
#
# Key Features:
# - Visual app builder with drag-and-drop interface
# - Built-in database or connect to external data sources
# - Multi-tenant support with user management
# - REST API, GraphQL, and webhooks support
# - Custom plugins and automation support
#
# Default Credentials:
# - Access UI at http://localhost:10000
# - Default admin email: admin@budibase.com
# - Default password: changeme
#
# Security Notes:
# - Change default admin credentials immediately
# - Use strong INTERNAL_API_KEY and JWT_SECRET in production
# - Store sensitive data in .env file
# - Enable SSL/TLS in production environments
#
# License: GPL-3.0 (https://github.com/Budibase/budibase/blob/master/LICENSE)
x-default: &default
restart: unless-stopped
logging:
driver: json-file
options:
max-size: 100m
max-file: "3"
services:
budibase:
<<: *default
image: budibase/budibase:${BUDIBASE_VERSION:-3.23.0}
container_name: budibase
ports:
- "${BUDIBASE_PORT_OVERRIDE:-10000}:80"
environment:
# Core settings
- APP_PORT=${BUDIBASE_APP_PORT:-4002}
- WORKER_PORT=${BUDIBASE_WORKER_PORT:-4003}
- MINIO_PORT=${BUDIBASE_MINIO_PORT:-4004}
- COUCH_DB_PORT=${BUDIBASE_COUCH_DB_PORT:-4005}
- REDIS_PORT=${BUDIBASE_REDIS_PORT:-6379}
- BUDIBASE_ENVIRONMENT=${BUDIBASE_ENVIRONMENT:-PRODUCTION}
# Security - REQUIRED: Override these in .env file
- INTERNAL_API_KEY=${BUDIBASE_INTERNAL_API_KEY:-changeme_internal_api_key_minimum_32_chars}
- JWT_SECRET=${BUDIBASE_JWT_SECRET:-changeme_jwt_secret_minimum_32_chars}
- MINIO_ACCESS_KEY=${BUDIBASE_MINIO_ACCESS_KEY:-budibase}
- MINIO_SECRET_KEY=${BUDIBASE_MINIO_SECRET_KEY:-budibase}
- COUCHDB_USER=${BUDIBASE_COUCHDB_USER:-admin}
- COUCHDB_PASSWORD=${BUDIBASE_COUCHDB_PASSWORD:-admin}
# Admin user - REQUIRED: Override these in .env file
- BB_ADMIN_USER_EMAIL=${BUDIBASE_ADMIN_EMAIL:-admin@budibase.com}
- BB_ADMIN_USER_PASSWORD=${BUDIBASE_ADMIN_PASSWORD:-changeme}
# Optional settings
- DEPLOYMENT_ENVIRONMENT=${BUDIBASE_DEPLOYMENT_ENVIRONMENT:-docker}
- POSTHOG_TOKEN=${BUDIBASE_POSTHOG_TOKEN:-}
- ACCOUNT_PORTAL_URL=${BUDIBASE_ACCOUNT_PORTAL_URL:-https://account.budibase.app}
- REDIS_URL=redis://redis:6379
- TZ=${TZ:-UTC}
volumes:
- budibase_data:/data
depends_on:
redis:
condition: service_healthy
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
deploy:
resources:
limits:
cpus: "${BUDIBASE_CPU_LIMIT:-2.0}"
memory: "${BUDIBASE_MEMORY_LIMIT:-2G}"
reservations:
cpus: "${BUDIBASE_CPU_RESERVATION:-0.5}"
memory: "${BUDIBASE_MEMORY_RESERVATION:-512M}"
redis:
<<: *default
image: redis:${REDIS_VERSION:-7-alpine}
container_name: budibase-redis
command: redis-server --appendonly yes --maxmemory 256mb --maxmemory-policy allkeys-lru
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
deploy:
resources:
limits:
cpus: "${REDIS_CPU_LIMIT:-0.5}"
memory: "${REDIS_MEMORY_LIMIT:-512M}"
reservations:
cpus: "${REDIS_CPU_RESERVATION:-0.1}"
memory: "${REDIS_MEMORY_RESERVATION:-128M}"
volumes:
budibase_data:
driver: local
redis_data:
driver: local