一个基于flask、sqlite、redis、jquery、bootstrap4的提问箱。
-
删除功能 -
退出登录 -
简单的用户设置添加了一个可供用户不再接受提问的功能 - 单页应用(单页和三页没有质的区别)
-
管理页面简单的管理页面完成,可以删除或者修改问答 -
邮件通知邮件通知功能不搞了,没意思,容易被滥用、封号,改成misskey内部的message通知 -
支持Markdown通过marked进行markdown转换 -
XSS防止通过DOMPurify - 回答页面markdown预览功能
-
添加一个回答后可以直接分享到DMI的功能完成,并添加了一个分享按钮
- 下载
git clone https://github.com/ybw2016v/nyabox.git
- 安装必要的依赖
pip install -r requirements.txt
如果没有redis,可以先安装一个redis。
- 升级数据库结构到最新版本
alembic upgrade head
- 配置文件
cp config_example.py config.py
- 启动服务
python3 api.py
- uwsgi 配置文件
[uwsgi]
module = api:app
master = true
processes = 1
plugins = python3
pythonpath = ~/nyabox/
chdir = ~/nyabox/
socket = ~/nyabox/nyabox.sock
chmod-socket = 777
vacuum = true
touch-reload=/home/yu/nyabox/reload.txt
pidfie=/home/yu/nyabox/nyabox.pid
enable-threads=True
- nginx 配置文件
server {
listen 443 ssl http2;
listen 12443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /root/key/dog.pem;
ssl_certificate_key /root/key/dog.key;
server_name nya.neko.red;
location / {
include uwsgi_params;
uwsgi_send_timeout 600;
uwsgi_connect_timeout 600;
uwsgi_read_timeout 600;
uwsgi_pass unix:/home/nya/nyabox/nyabox.sock;
}
location /static/ {
root /home/nya/nyabox/;
}
}
- systemctl安排上
[Unit]
Description=Nyabox
[Service]
Type=simple
User=yu
ExecStart=/usr/bin/uwsgi -i /home/nya/nyabox/nyabox.ini
WorkingDirectory=/home/nya/nyabox/
TimeoutSec=60
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nyabox
Restart=always
[Install]
WantedBy=multi-user.target