前言
在日常工作和学习中,我们经常需要一个地方来集中管理知识、解答问题、沉淀经验。无论是团队内部的知识库、社区论坛,还是客户支持的帮助中心,一个高效的问答平台都能大大提升协作效率。
今天,我就带大家在 VPS 或者飞牛云 NAS 上,通过 Docker 一键搭建 一个开源的知识问答平台 —— Apache Answer。它不仅支持团队协作,还适用于社区运营和知识管理,功能灵活强大,部署也非常简单。
接下来,我们一起把服务器变身为一个 专属的知识问答平台,为个人、团队甚至整个社区打造一套高效的知识管理系统。 🚀
项目图片
以下是与该项目相关的一些图片:
主页面
初始化部署
后台统计
🔹 使用场景
1.团队内部知识库
- 公司/项目组日常遇到的问题,可以通过问答的形式沉淀下来。
- 新员工入职时,可以快速查阅已有问题和解决方案。
- 避免重复沟通,提高效率。
2.社区论坛 / 技术问答社区
- 类似 Stack Overflow 的社区模式,用户可以提问、回答、投票。
- 适合开源项目、技术社区,帮助用户互相解答问题。
3.帮助中心 / 客户支持平台
- 企业可以把 Answer 部署为 FAQ/客服问答平台。
- 客户遇到问题,可以先搜索答案,减少重复工单。
- 支持用户自助解决问题,提高客户满意度。
4.教育/培训平台
- 学校或培训机构可用作课程问答平台。
- 学生提出问题,老师或助教集中解答。
- 知识沉淀,后续学生可直接查阅已有答案。
5.知识管理平台
- 企业内部文档系统补充。
- 更加轻量化、互动性强,便于知识共享。
部署方法
使用Docker安装
本教程使用docker的方式安装部署,简单便捷
准备条件
1)一台服务器或者NAS
我们使用飞牛云NAS和VPS来演示
需要vps的可以看以下信息
莱卡云官网
2)本项目使用到的github
https://github.com/apache/answer
目前有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 # 容器无论如何退出都会自动重启
启动即可
正常启动
飞牛云的
ip:9980
端口即可打开
初始化步骤见后面
补充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配置合适自己的语言
4.2配置数据库信息
4.3网站主要信息配置
4.4 初始化成功
4.5 其他配置
可以配置SMTP信息之后别人注册就可以收到验证码登录了
其他设置自行摸索
③《dockge上搭建》
直接复制docker-compose内容然后启动即可
绑定域名
如需绑定域名的自行绑定
绑定域名可以参考
NginxProxyManager
https://duan.yyzq.eu.org//npm-ch
绑定完域名配置好证书就可以用域名来访问了
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
欢迎关注我们的微信公众号!
评论区