Answer:快速建立你的问答社区
answer可以帮助你快速建立一个类似知乎的问答社区。搭建试了一下功能方面挺全面的,就是在搭建的时候遇到个bug:当mariadb容器重建后answer就连不上数据库。
具体点说就是先配置好一个mariadb10.5的容器,然后是可以正常安装的,安装完也能正常用,但是当你docker compose down掉容器再up -d启动一个新的容器后,answer就连不上数据库了,数据库的连接信息肯定不会错,因为压根就没改过。持久化的数据也肯定没有问题,我用的volume,并且看volume目录下面数据库文件就安静的躺在那儿,网络也没有特别的设置,就是compose创建的默认网络,所以应该是answer的bug。个人建议安装当前版本(1.0.1)数据库那块别选用mysql,就用默认的sqlite。。
安装docker、nginx、certbot:
apt -y update apt -y install curl nginx python3-certbot-nginx curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh
注:
新版本的docker自带compose子命令,无需额外安装docker-compose。
使用方面仅有一个-字符只差,新版使用docker compose命令,而旧版本使用docker-compose命令。
新建docker-compose.yml:
mkdir -p /opt/answer && cd /opt/answer && nano docker-compose.yml
写入如下配置:
version: '3.5' services: answer: image: answerdev/answer restart: unless-stopped ports: - "127.0.0.1:9080:80" volumes: - answer-data:/data volumes: answer-data:
启动:
docker compose up -d
配置nginx反向代理,新建nginx配置文件:
nano /etc/nginx/sites-available/answer
写入如下配置:
server { listen 80; server_name answer.example.com; client_max_body_size 0; location / { proxy_pass http://127.0.0.1:9080; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
启用新的nginx配置:
ln -s /etc/nginx/sites-available/answer /etc/nginx/sites-enabled/answer
签发ssl证书:
certbot --nginx
首页预览:
问答页预览: