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 - 之后构建镜像并去泡杯茶或者咖啡吧,因为要下载一大堆依赖,