
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!https://raw.githubusercontent.com/Erudika/scoold/master/assets/header.png
Scoold 是一个用Java编写的Q&A/知识库平台。该项目始于2008年,2012年作为受Stack Overflow启发的学校社交网络发布,2017年经过重构、重新打包并开源。
Scoold可在任何环境运行——Heroku、DigitalOcean、AWS、Azure或任何VPS hosting提供商。它轻量级(约7000行代码),后端由名为https://github.com/Erudika/para%E7%9A%84%E7%8B%AC%E7%AB%8B%E6%9C%8D%E5%8A%A1%E5%A4%84%E7%90%86%E3%80%82Scoold%E4%B8%8D%E9%9C%80%E8%A6%81%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%8C%E6%8E%A7%E5%88%B6%E5%99%A8%E9%80%BB%E8%BE%91%E7%AE%80%E5%8D%95%EF%BC%8C%E5%9B%A0%E4%B8%BA%E6%89%80%E6%9C%89%E5%A4%8D%E6%9D%82%E5%B7%A5%E4%BD%9C%E9%83%BD%E5%A7%94%E6%89%98%E7%BB%99Para%EF%BC%8C%E8%BF%99%E4%BD%BF%E5%BE%97%E4%BB%A3%E7%A0%81%E6%98%93%E4%BA%8E%E9%98%85%E8%AF%BB%EF%BC%8C%E5%88%9D%E7%BA%A7%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98%E5%8F%AF%E5%BF%AB%E9%80%9F%E5%AD%A6%E4%B9%A0%E3%80%82
Scoold Pro 是Scoold的付费版本,具备高级特性,是企业或团队理想的知识共享平台。
本项目由Erudika完全资助和支持——一家独立的自举公司。
...以及更多!
管理员访问:打开Scoold Pro演示,使用“Demo login”登录。
演示有时可能需要一分钟加载。
Scoold是Para后端服务器的客户端应用。几乎每个Scoold请求都会生成至少一个Para请求。例如,在Scoold上提问时,会向Para发送POST /v1/questions请求。该架构的关键点:
架构概览:
┌────────────┐
┌───► Database │
┌──────────┐ ┌────────┐ │ ┌────────────┤
│ Scoold 1 ├──► │ │ └────────────┤
├──────────┤ │ Para ◄──┼───► Search │
│ Scoold 2 ├──► │ │ ┌────────────┤
└──────────┘ └────────┘ │ └────────────┤
└───► Cache │
└────────────┘
需要https://openjdk.java.net/%E6%9D%A5%E6%9E%84%E5%BB%BA%E5%92%8C%E8%BF%90%E8%A1%8C%E9%A1%B9%E7%9B%AE%EF%BC%8C%E6%94%AF%E6%8C%81%E6%89%80%E6%9C%89%E4%B8%BB%E6%B5%81%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E3%80%82
application.conf的Scoold配置文件,添加以下属性:inipara.env = "development" para.app_name = "Scoold" para.access_key = "app:your_para_app" para.secret_key = "your_app_secret_key" para.endpoint = "https://paraio.com" para.admins = "my@email.com"
java -jar -Dconfig.file=./application.conf scoold-*.jar启动Scooldhttp://localhost:8000/signin/register如果要使用社交账号登录,需先在***、[***]
重要: Google和***的授权重定向URL应格式化为:
https://{your_scoold_host}、https://{your_scoold_host}/signin。其他身份提供商需将Para主机及其相应认证端点加入白名单。例如,GitHub的重定向URL为:https://paraio.com/github_auth,OAuth 2为https://paraio.com/oauth2_auth,依此类推。
注意:Para后端服务器需单独部署,是Scoold运行的必要条件。
GET localhost:8080/v1/_setup初始化application.conf文件,粘贴示例配置sh# 需先安装Node.js和NPM $ npm install -g para-cli # 运行setup,输入根应用密钥和端点'http://localhost:8080' $ para-cli setup $ para-cli ping $ para-cli new-app "scoold" --name "Scoold"
application.conf中,文件内容如下:inipara.env = "development" para.app_name = "Scoold" para.access_key = "app:scoold" para.secret_key = "scoold_secret_key" para.endpoint = "http://localhost:8080" para.admins = "my@email.com"
java -jar -Dconfig.file=./application.conf scoold-*.jar启动Scoold,关注日志中的错误信息http://localhost:8000,使用配置中的***注册账号重要:不要将同一个
application.conf文件用于Para和Scoold! 保持两个应用在不同目录,各有自己的配置文件。若要使用***密码登录,生产环境部署前必须配置SMTP设置。
阅读Para文档了解如何运行和配置Scoold后端。
Scoold和Para可托管在同一台机器,至少需要3GB RAM。Scoold要求:
Para要求:
JVM参数示例:java -jar -Xms600m -Xmx600m scoold-*.jar
最重要的设置是para.endpoint(Para服务器URL)、para.access_key和para.secret_key。Scoold运行必须连接到Para服务器。
复制以下Scoold示例配置到**application.conf**并根据需要编辑:
ini### 基本配置 ### # 应用名称 para.app_name = "Scoold" # Scoold端口 para.port = "8000" # 后续改为"production" para.env = "development" # Scoold的公开URL para.host_url = "http://localhost:8000" # Para的URL,也可使用"https://paraio.com" para.endpoint = "http://localhost:8080" # Para应用的访问密钥 para.access_key = "app:scoold" # Para应用的密钥 para.secret_key = "" # 管理员用户的邮箱或标识符 - 查看Para用户对象 para.admins = "admin@domain.com" ############################## ####### 认证 ####### # 启用/禁用邮箱密码认证 para.password_auth_enabled = true # 会话cookie名称 para.auth_cookie = "scoold-auth" # Facebook - 需先创建自己的Facebook应用! para.fb_app_id = "123456789" # Google - 需先创建自己的Google应用! para.google_client_id = "123-abcd.apps.googleusercontent.com" ############################### ### 其他 ### # 若为false,需100+声望才能评论 para.new_users_can_comment = true # 若为true,新用户的帖子需管理员审核 para.posts_need_approval = false # 帖子自动审核所需声望 para.posts_rep_threshold = 100 # 帖子地理定位筛选所需 para.gmaps_api_key = "" # 启用/禁用“附近”功能(地理定位) para.nearme_feature_enabled = false # 启用帖子代码语法高亮 para.code_highlighting_enabled = true # 若为true,默认空间对所有人可见 para.is_default_space_public = true # 若为true,用户可更改头像 para.avatar_edits_enabled = true # 若为true,用户可更改名称 para.name_edits_enabled = true # 启用/禁用Webhooks支持 para.webhooks_enabled = true # 启用/禁用Wiki风格回答 para.wiki_answers_enabled = true # 评论限制 para.max_comments_per_id = 1000 para.max_comment_length = 255 # 帖子内容限制(字符) para.max_post_length = 20000 # 每个帖子的标签限制,必须<100 para.max_tags_per_post = 5 # 新问题的默认标签 para.default_question_tag = "question" # 启用/禁用数字分页(< 1 2 3...N >) para.numeric_pagination_enabled = false # 启动时加载的默认语言,默认为'en' para.default_language_code = "" # 启用/禁用文本编辑器中的基本HTML标签 para.html_in_markdown_enabled = false
启动时,Scoold会尝试连接Para 10次,每次间隔10秒。之后若失败,设置不会持久化。若将最大重试次数设为-1,则会无限尝试连接Para。这些参数由以下配置控制:
para.connection_retries_max = 10 para.connection_retry_interval_sec = 10
Scoold的标记Docker镜像位于Docker Hub的erudikaltd/scoold。强烈建议拉取发布版本镜像,如:1.42.0或:latest_stable,因为:latest标签可能不稳定。 :latest_stable标签始终指向最新发布版本。
在当前目录准备好application.conf配置文件,运行以下命令:
bashdocker run -ti -p 8000:8000 --rm -v $(pwd)/application.conf:/scoold/application.conf \ -e JAVA_OPTS="-Dconfig.file=/scoold/application.conf" erudikaltd/scoold:latest_stable
Scoold Pro镜像位于私有仓库,购买Pro许可证后可获取访问权限。运行命令需添加上传卷:
bashdocker run -ti -p 8000:8000 --rm -v $(pwd)/application.conf:/scoold-pro/application.conf \ -v scoold-uploads:/scoold-pro/uploads -e JAVA_OPTS="-Dconfig.file=/scoold-pro/application.conf" \ 374874639893.dkr.ecr.eu-west-1.amazonaws.com/scoold-pro:latest_stable
JAVA_OPTS: Java系统属性,如-Dpara.port=8000BOOT_SLEEP: 启动延迟(秒数)使用docker-compose可一键启动Para + Scoold堆栈。创建新目录,复制docker-compose.yml(Scoold Pro的https://raw.githubusercontent.com/Erudika/scoold-pro/master/docker-compose.yml%EF%BC%89%EF%BC%8C%E5%B9%B6%E5%88%9B%E5%BB%BA%E4%BB%A5%E4%B8%8B%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%EF%BC%9A
para-application.conf(Para配置示例):inipara.env = "production" para.dao = "H2DAO"
scoold-application.conf(Scoold配置示例):inipara.env = "production" para.app_name = "Scoold" para.endpoint = "http://para:8080" para.access_key = "app:scoold" para.secret_key = "..."
启动命令:
bashdocker-compose up
初始化Para并创建Scoold应用后,更新scoold-application.conf,使用Ctrl+C停止容器,重新运行docker-compose up即可。
helm/文件夹中包含Helm chart。编辑helm/scoold/values.yaml后,使用以下命令部署:
bashcd helm; helm install ./scoold
更多信息请参考helm/README.md。
通过Scoold的备份和恢复功能可迁移数据:在源安装的管理页面下载备份ZIP文件,在目标安装的管理页面导入该文件。重要:所有数据将被覆盖。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务