b310-digital/mindwendel

GitHub: b310-digital/mindwendel

mindwendel 是一个基于 Elixir 的协作头脑风暴工具,帮助团队实时组织、投票和优先排序想法。

Stars: 134 | Forks: 20

# don't know, I'll assume it's a proper noun based on the instruction to keep such terms in English. Therefore, in the translation, I should output "mindwendel" as is, but since the output is in Simplified Chinese, perhaps I need to write it in Chinese characters if it has a translation. ![工作流状态徽章](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/2936679089100603.svg) 发起一个挑战。准备好了吗?头脑风暴。mindwendel 帮助您在团队中轻松进行头脑风暴并对想法和思考进行投票。从零开始构建,基于 [Phoenix](https://www.phoenixframework.org)。 - [mindwendel](#mindwendel) - [功能](#features) - [使用场景](#use-cases) - [入门指南](#getting-started) - [参与贡献](#contributing) - [工作流](#workflow) - [开发](#development) - [测试](#testing) - [生产环境](#production) - [注意事项](#note) - [构建发布版和生产环境 Docker 镜像](#build-release-and-production-docker-image) - [格式化](#formatting) - [环境变量](#environment-variables) - [本地化](#localization) - [用户评价](#testimonials) - [致谢](#acknowledgements) ## 功能 - 5 分钟完成设置(不是玩笑) - 匿名邀请人员参与头脑风暴 - 无需注册。用户名可选! - 轻松创建想法并进行投票,实时接收来自 mindwendel 成员的更新 - 使用自定义标签对想法进行分组或筛选 - 链接预览功能,方便 URL 分享 - 自动加密文件附件,上传至兼容 S3 的存储后端 - 添加泳道,使用拖放功能排序想法 - 为想法添加评论 - 使用兼容 OpenAI 的 LLM API 进行 AI 驱动的想法生成 - 将生成的想法导出为 HTML 或 CSV(目前为逗号分隔) - 德语和英语翻译文件 - 默认情况下,头脑风暴内容将在 30 天后删除,以确保符合 GDPR 合规性 ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/b4ceb847cc100623.png) ![](https://raw.githubusercontent.com/b310-digital/mindwendel/master/docs/screenshot2.png) ## 使用场景 头脑风暴 ... - ... 新的商业想法 - ... 问题的解决方案 - ... 今晚吃什么 - ... ## 入门指南 mindwendel 几乎可以在任何地方运行。请查阅我们的[安装指南](./docs/installing_mindwendel.md),了解不同部署方式的详细说明。部署和运行 mindwendel 最简单的方法是使用我们自己的 `docker-compose-prod.yml` 文件。有关说明,请参阅[生产环境设置](#setup-for-production)。 如果您想参与贡献,请直接跳转到[开发](#development)! ## 参与贡献 要开始 mindwendel 的开发安装,请遵循以下说明。 mindwendel 基于以下技术构建: - [Elixir](https://elixir-lang.org/install.html) - [Phoenix Framework](https://hexdocs.pm/phoenix/installation.html#phoenix) - [Phoenix LiveView](https://github.com/phoenixframework/phoenix_live_view) - [PostgreSQL](https://www.postgresql.org) ### 工作流 1. Fork 它 () 2. 创建您的功能分支 (`git checkout -b fooBar`) 3. 提交您的更改 (`git commit -am 'Add some fooBar'`) 4. 推送到分支 (`git push origin fooBar`) 5. 创建一个新的 Pull Request ### 开发 - 启动 Docker Compose 设置 `docker compose up --build -d` - 设置数据库 `docker compose exec app mix ecto.setup` - 启动服务器 ``` docker compose exec app mix phx.server ``` - 访问 http://localhost:4000/ - 打开您喜欢的编辑器开始开发 - 在 Docker 容器中打开一个 shell 以执行测试等 `docker compose exec app bash` - 访问 http://localhost:4000/ #### 本地化 您可以通过运行以下命令提取需要翻译的新字符串: ``` mix gettext.extract --merge ``` ### 测试 - 启动 Docker Compose 设置 `docker compose up --build -d` - 运行测试 `docker compose exec app mix test` ### 生产环境设置 - 在主机上为 PostgreSQL 服务器生成自签名 SSL 证书;生成的文件将挂载到 Docker 容器中 `mkdir -p ./ca` `openssl req -new -text -passout pass:abcd -subj /CN=localhost -out ./ca/server.req -keyout ./ca/privkey.pem` `openssl rsa -in ./ca/privkey.pem -passin pass:abcd -out ./ca/server.key` `openssl req -x509 -in ./ca/server.req -text -key ./ca/server.key -out ./ca/server.crt` `chmod 600 ./ca/server.key` `test $(uname -s) = Linux && chown 70 ./ca/server.key` - 复制并重命名 `.env.prod.default` `cp .env.prod.default .env.prod` - 调整 `.env.prod` 中的所有配置,例如数据库设置、端口,必要时禁用 SSL 环境变量 - 一次性启动所有内容(包括强制构建): `docker compose --file docker-compose-prod.yml --env-file .env.prod up -d --build --force-recreate` - 打开浏览器并访问 `http://${URL_HOST}` #### 注意事项 - URL 必须与环境变量 `URL_HOST` 匹配;因此当您的 `URL_HOST=0.0.0.0` 时,http://localhost 将无法工作 - mindwendel 生产环境配置设置了强制 SSL,请参阅 `config/prod.exs` 中的 Mindwendel.Endpoint 配置 - mindwendel 生产环境配置支持在反向代理(负载均衡器)后面部署,通过解析传入请求的 x-forwarded-* 头来确定正确的协议,请参阅 `config/prod.exs` - 如果您在设置过程中遇到问题,请提交一个 issue。 ### 构建发布版和生产环境 Docker 镜像 - 基于我们的 Dockerfile 构建 Docker 镜像 `docker build -t mindwendel_prod .` ### 格式化 我们使用 Elixir 内置的格式化器。 - 检查代码是否格式正确 `mix format --check-formatted` - 自动格式化代码 `mix format` ## 功能标志 ### 隐私和自动数据删除 Mindwendel 包含一个作业运行器,用于在指定天数后删除旧的头脑风暴内容。可以通过设置 `MW_FEATURE_BRAINSTORMING_REMOVAL_AFTER_DAYS` 来控制,例如可以设置为 `30`。 ### 文件存储 文件存储可通过兼容 S3 的对象存储后端实现。需要事先生成加密密钥 (`VAULT_ENCRYPTION_KEY_BASE64`),例如: ``` iex 32 |> :crypto.strong_rand_bytes() |> Base.encode64() ``` 或 ``` openssl rand -base64 32 ``` 然后,需要设置对象存储和保险库密钥: ``` OBJECT_STORAGE_BUCKET: mindwendel OBJECT_STORAGE_SCHEME: "http://" OBJECT_STORAGE_HOST: minio OBJECT_STORAGE_PORT: 9000 OBJECT_STORAGE_REGION: local OBJECT_STORAGE_USER: ... OBJECT_STORAGE_PASSWORD: ... VAULT_ENCRYPTION_KEY_BASE64: ... ``` `docker-compose.yml` 中提供了一个使用 Docker Compose MinIO 设置的示例。 要停用文件存储,请使用 `MW_FEATURE_IDEA_FILE_UPLOAD`(默认为 `true`)并将其设置为 `false`。 ### AI 集成 Mindwendel 支持使用 OpenAI 和兼容 OpenAI 的 API 进行 AI 驱动的想法生成。要启用 AI 功能: **对于 OpenAI(默认):** ``` MW_AI_ENABLED=true MW_AI_API_KEY=your-openai-api-key MW_AI_API_MODEL=gpt-4o-mini # Optional, defaults to gpt-4o-mini ``` **对于兼容 OpenAI 的端点(例如本地 LLM、Mistral 等):** ``` MW_AI_ENABLED=true MW_AI_API_KEY=your-api-key MW_AI_API_MODEL=mistral-large-latest # Or your model name MW_AI_API_BASE_URL=https://api.mistral.ai/v1 # Required for non-OpenAI endpoints ``` **可选的令牌限制以控制使用量:** ``` MW_AI_TOKEN_LIMIT_DAILY=1000000 # Daily token limit (default: 1M) MW_AI_TOKEN_LIMIT_HOURLY=100000 # Hourly token limit (default: 100K) MW_AI_TOKEN_RESET_HOUR=0 # Hour of day to reset daily limit (default: 0/midnight UTC) MW_AI_REQUEST_TIMEOUT=60000 # Request timeout in milliseconds (default: 60000) ``` 默认情况下 AI 功能是禁用的。启用后,用户可以根据他们的头脑风暴上下文使用 AI 生成想法。 ### 本地化 目前有三种语言文件可用:德语 (`de`)、英语 (`en`) 和意大利语 (`it`)。要设置默认语言环境,可以设置 `MW_DEFAULT_LOCALE`。默认为英语。 ## 用户评价 kits 是一个由公共机构托管的项目平台,专注于学校(德国下萨克森州)质量发展,专注于语言教学中的数字工具和媒体。mindwendel 在研讨会中用于激活先前知识,并收集和整理想法。此外,可以在 https://kits.blog/tools 上找到 mindwendel,并可供学校免费使用。关于如何使用的更多信息可以在这篇文章中找到:https://kits.blog/digitale-lesestrategien-brainstorming/ 徽标和文本由 kits 提供。 ## 致谢 - https://github.com/JannikStreek - https://github.com/gerardo-navarro - https://github.com/nwittstruck - 灯泡库存图片来自 LED Supermarket at Pexels: https://www.pexels.com/de-de/foto/die-gluhbirne-577514/ ## 图片许可 - 灯泡, Pexels / CC0: https://www.pexels.com/license/, https://www.pexels.com/terms-of-service/ - GitHub 徽标: https://github.com/logos
标签:AI集成, DFIR, Elixir语言, GDPR合规, Linux 内核安全, Phoenix框架, S3存储, 优先级排序, 创意管理, 加密存储, 协作工具, 团队协作, 在线白板, 多语言支持, 头脑风暴, 安全测试框架, 实时协作, 想法收集, 投票系统, 拖放排序, 数据导出, 文件上传, 标签聚类, 测试用例, 评论功能, 请求拦截, 项目管理