标签搜索

目 录CONTENT

文章目录

在VPS或者飞牛云NAS上用Docker搭建一个知识问答平台answer

yyzq
2025-08-28 / 0 评论 / 1 点赞 / 34 阅读 / 1,958 字

前言

在日常工作和学习中,我们经常需要一个地方来集中管理知识、解答问题、沉淀经验。无论是团队内部的知识库、社区论坛,还是客户支持的帮助中心,一个高效的问答平台都能大大提升协作效率。

今天,我就带大家在 VPS 或者飞牛云 NAS 上,通过 Docker 一键搭建 一个开源的知识问答平台 —— Apache Answer。它不仅支持团队协作,还适用于社区运营和知识管理,功能灵活强大,部署也非常简单。

接下来,我们一起把服务器变身为一个 专属的知识问答平台,为个人、团队甚至整个社区打造一套高效的知识管理系统。 🚀
hp

项目图片

以下是与该项目相关的一些图片:
主页面
screenshot
初始化部署
image-1756363674395
后台统计
image-1756365692326

🔹 使用场景

1.团队内部知识库

  • 公司/项目组日常遇到的问题,可以通过问答的形式沉淀下来。
  • 新员工入职时,可以快速查阅已有问题和解决方案。
  • 避免重复沟通,提高效率。

2.社区论坛 / 技术问答社区

  • 类似 Stack Overflow 的社区模式,用户可以提问、回答、投票。
  • 适合开源项目、技术社区,帮助用户互相解答问题。

3.帮助中心 / 客户支持平台

  • 企业可以把 Answer 部署为 FAQ/客服问答平台。
  • 客户遇到问题,可以先搜索答案,减少重复工单。
  • 支持用户自助解决问题,提高客户满意度。

4.教育/培训平台

  • 学校或培训机构可用作课程问答平台。
  • 学生提出问题,老师或助教集中解答。
  • 知识沉淀,后续学生可直接查阅已有答案。

5.知识管理平台

  • 企业内部文档系统补充。
  • 更加轻量化、互动性强,便于知识共享。

部署方法

使用Docker安装

本教程使用docker的方式安装部署,简单便捷
164b6ac419e23bc5390dc46601a202bf

准备条件

1)一台服务器或者NAS

我们使用飞牛云NAS和VPS来演示
需要vps的可以看以下信息
莱卡云官网

2)本项目使用到的github

https://github.com/apache/answer
image-1756363797050
目前有14.8k个 stars
更多功能或者二次修改可以访问GitHub

3)域名(可选)

域名可以根据自己的需求绑定

①《飞牛NAS上搭建》

新建项目:

answer

compose配置如下:

services:
  answer:   # Answer 应用服务
    image: answerdev/answer   # 使用 Answer 官方镜像
    ports:
      - '9980:80'            # 映射端口:外部访问 9980 -> 容器内部 80(左边的 9980 可以修改为未占用端口)
    restart: always          # 容器无论如何退出都会自动重启
    environment:
      - TZ=Asia/Shanghai     # 设置时区为上海
    volumes:
      - ./answer-data:/data  # 数据持久化,宿主机当前目录下的 answer-data 文件夹挂载到容器内 /data

  db:   # 数据库服务(MariaDB)
    image: mariadb:10   # 使用 MariaDB 10 版本镜像
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci   # 设置数据库默认字符集为 utf8mb4,排序规则为 utf8mb4_unicode_ci
    environment:
      MYSQL_ROOT_PASSWORD: answer   # 数据库 root 用户密码(建议修改为更安全的密码)
      MYSQL_USER: answer            # 新建的数据库用户(应用连接数据库时使用)
      MYSQL_PASSWORD: answer        # 新建用户的密码(建议修改为更安全的密码)
      MYSQL_DATABASE: answer        # 默认创建的数据库名称
      TZ: Asia/Shanghai             # 设置时区为上海
    volumes:
      - ./mariadb:/var/lib/mysql    # 数据持久化,宿主机当前目录下的 mariadb 文件夹挂载到容器内 /var/lib/mysql
    restart: always                 # 容器无论如何退出都会自动重启

启动即可
image-1756364778298
正常启动
image-1756364789299
飞牛云的
ip:9980
端口即可打开
image-1756364806329
初始化步骤见后面

补充docker可用的镜像仓库

国内如果无法拉取镜像的可以使用
仓库1

https://proxy.1panel.live/

仓库2

https://docker.1panel.top/

仓库3

https://mirror.azure.cn/

仓库4

https://hub.rat.dev/

仓库5

https://docker.1ms.run

仓库6

https://docker.itelyou.cf/

仓库7

https://abc.itelyou.cf/

仓库8

https://docker.ywsj.tk/

②《vps上搭建》

一、Docker环境部署

在vps安装docker和docker-compose
Docker官方安装文档(英文)
https://duan.yyzq.eu.org/docker-001
Docker-Compose官方安装文档(英文)
https://duan.yyzq.eu.org/docker-002
Centos安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//03
Ubuntu安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//04

推荐直接用一键脚本

docker安装脚本

bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)

docker-compose安装脚本

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

二、创建docker-compose.yml文件

mkdir answer;cd answer  #创建一个目录,并进入此目录

然后再新建docker-compose.yml

vim docker-compose.yml
services:
  answer:   # Answer 应用服务
    image: answerdev/answer   # 使用 Answer 官方镜像
    ports:
      - '9980:80'            # 映射端口:外部访问 9980 -> 容器内部 80(左边的 9980 可以修改为未占用端口)
    restart: always          # 容器无论如何退出都会自动重启
    environment:
      - TZ=Asia/Shanghai     # 设置时区为上海
    volumes:
      - ./answer-data:/data  # 数据持久化,宿主机当前目录下的 answer-data 文件夹挂载到容器内 /data

  db:   # 数据库服务(MariaDB)
    image: mariadb:10   # 使用 MariaDB 10 版本镜像
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci   # 设置数据库默认字符集为 utf8mb4,排序规则为 utf8mb4_unicode_ci
    environment:
      MYSQL_ROOT_PASSWORD: answer   # 数据库 root 用户密码(建议修改为更安全的密码)
      MYSQL_USER: answer            # 新建的数据库用户(应用连接数据库时使用)
      MYSQL_PASSWORD: answer        # 新建用户的密码(建议修改为更安全的密码)
      MYSQL_DATABASE: answer        # 默认创建的数据库名称
      TZ: Asia/Shanghai             # 设置时区为上海
    volumes:
      - ./mariadb:/var/lib/mysql    # 数据持久化,宿主机当前目录下的 mariadb 文件夹挂载到容器内 /var/lib/mysql
    restart: always                 # 容器无论如何退出都会自动重启

三、执行容器运行命令

docker-compose up -d #运行容器
docker-compose ps  #查看是否开启成功

正常启动如下所示

docker-compose ps
NAME              IMAGE              COMMAND                  SERVICE   CREATED          STATUS          PORTS
answer-answer-1   answerdev/answer   "/entrypoint.sh"         answer    32 minutes ago   Up 32 minutes   0.0.0.0:9980->80/tcp, [::]:9980->80/tcp
answer-db-1       mariadb:10         "docker-entrypoint.s…"   db        32 minutes ago   Up 32 minutes   3306/tcp

四、打开web页面使用

成功以后需要打开自己相应的端口(9980)防火墙就可以web端访问了

http://ip:9980

4.1配置合适自己的语言
image-1756364945649
4.2配置数据库信息
image-1756364989212
image-1756365006209
4.3网站主要信息配置
image-1756365094346
4.4 初始化成功
image-1756365196316
4.5 其他配置
可以配置SMTP信息之后别人注册就可以收到验证码登录了
image-1756365283599
其他设置自行摸索

③《dockge上搭建》

直接复制docker-compose内容然后启动即可
image-1756365390802

绑定域名

如需绑定域名的自行绑定
绑定域名可以参考
NginxProxyManager
https://duan.yyzq.eu.org//npm-ch
绑定完域名配置好证书就可以用域名来访问了

有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我

欢迎关注我们的微信公众号!
微信公众号

1

评论区