BookWyrm 使用 nginx 反代安装
参考官方文档。
安装
因为 BookWyrm 用的是 Python 做后端,Nodejs 做前端,两大依赖地狱,所以只提供了 Docker 的安装方式……
如果是打算机子只安装 BookWyrm 服务的话,那么直接按照文档走就好,否则,就需要结合宿主机的 nginx 做好反代设置(为了喝水倒两次杯子……)。
- 为域名提前申请好
HTTPS证书待用 - 克隆仓库,
git clone [email protected]:bookwyrm-social/bookwyrm.git - 进入文件夹,切换生产分支,
git checkout production - 生成
.env配置文件,cp .env.example .env,并且编辑之,详细设定请参阅官方文档
这里有个坑,不知道最新版解决没有,就是.env的语言设置会导致报错,需要提前注释掉:
# Instance defualt language (see options at bookwyrm/settings.py "LANGUAGES" #LANGUAGE_CODE="zh-hans" # Used for deciding which editions to prefer #DEFAULT_LANGUAGE="Simplified Chinese"
- 生成
nginx配置文件,cp nginx/production nginx/default.conf
编辑文件切换到反代模式:
upstream web {
server web:8000;
}
# Reverse-Proxy server
server {
listen [::]:8001;
listen 8001;
server_name 实例地址;
location /images/ {
alias /app/images/;
}
location /static/ {
alias /app/static/;
}
}
- 再编辑
docker-compose.yml文件,注释掉相应模块:
nginx:
image: nginx:latest
ports:
- "127.0.0.1:8001:8001"
# - 443:443
depends_on:
- web
networks:
- main
volumes:
- ./nginx:/etc/nginx/conf.d
# - ./certbot/conf:/etc/nginx/ssl
# - ./certbot/data:/var/www/certbot
- static_volume:/app/static
- media_volume:/app/images
#certbot:
# image: certbot/certbot:latest
# command: certonly --webroot --webroot-path=/var/www/certbot --email ${EMAIL} --agree-tos --no-eff-email -d ${DOMAIN} -d www.${DOMAIN}
#command: renew --webroot --webroot-path /var/www/certbot
# volumes:
# - ./certbot/conf:/etc/letsencrypt
# - ./certbot/logs:/var/log/letsencrypt
# - ./certbot/data:/var/www/certbot
并且在宿主机上新建一个 nginx 站点配置:
upstream web {
server 127.0.0.1:8000;
}
server {
listen [::]:80;
listen 80;
server_name 实例地址;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
server_name 实例地址;
client_max_body_size 10M;
# SSL code
ssl_certificate /etc/letsencrypt/live/实例地址/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/实例地址/privkey.pem;
location / {
proxy_pass http://web;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location /images/ {
proxy_pass http://localhost:8001;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
location /static/ {
proxy_pass http://localhost:8001;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}
参考 官方文档
0
评论
-
- 之后构建镜像并去泡杯茶或者咖啡吧,因为要下载一大堆依赖,
docker-compose up --build - 构建结束后用
CTRL-C退出 - 根目录下输入
./bw-dev setup配置初始配置,结束后会生成一串口令,请记下来,这是之后生成管理员帐号需要的(忘了也可以用./bw-dev admin_code再次输出) - 使用
docker-compose up -d命令启动服务,并登陆实例地址,用口令新建一个管理员帐号 - 到此,安装结束
0 - 之后构建镜像并去泡杯茶或者咖啡吧,因为要下载一大堆依赖,