Urara-Blog/urara/2022-08-18-lwt/index.md
2022-08-18 03:43:17 +08:00

4.2 KiB
Raw Blame History

title created summary tag image
VPS · 用 docker 安装语言学习工具 LWT 2022-08-18 Installing LWT with docker and docker composer
VPS
Self-host
Docker
/2022-08-18-lwt/wizard.png

LWT 是一个阅读分词软件,上传阅读材料后可以标记其中的生词并制卡复习,全称叫 Learning with Texts不过我还没有怎么用过详细的介绍可以看下面这几篇文章

LWT 可以在本地安装也可以在 VPS 上安装鉴于买了就要用的原则我决定在VPS上安装看看。

我安装的 docker image 来源于:GitHub - jsz4n/lwt-docker: Learning With Texts with Docker,还有试过一些其他的 docker image ,都不太顺利,这安装介绍也写得不太清楚,几番周折之后,我修改了docker-compose.yml 中的部分内容后部署成功了,下面这是我的搭建过程。

0. 准备

前提:安装好 docker 和 docker composer、nginx

如果还没安装的话可以这样安装Ubuntu

sudo apt update
sudo apt install docker docker-compose
sudo apt install nginx

准备一个解析好了的域名,如在 Cloudflare 里面配置域名n.example.org 添加一个A记录名称为n 内容为VPS的IP地址123.123.123.14

我之前安装了比较新的 docker composer版本(1.27.4),如果没有装新版的话,下面操作的docker compose请全部替换为docker-compose

1. 下载仓库源码

我决定在/opt/文件夹下面安装首先进入opt文件夹

cd /opt

复制git仓库并进入文件夹

sudo git clone https://github.com/jsz4n/lwt-docker.git 
cd lwt-docker

原README有讲需要本地 build 一下 image但是感觉不是很必要我直接用了 suzanje/lwt:latest 中的 image

2. 修改配置

打开docker-compose.yml文件:

sudo nano docker-compose.yml	

修改密码:

  version: '3'

  services:
    mariadb:
      image: mariadb:10.6
      restart: always
      environment:
        - "MARIADB_ROOT_PASSWORD=密码" #改这里
      volumes:
        - ./media/:/var/lib/mysql
    lwt:
      image: suzanje/lwt:latest
      restart: always
      environment:
        - "MARIADB_SERVER=mariadb"
        - "MARIADB_ROOT_PASSWORD=密码" #和上面的一样
      ports:
        - "8080:80" #如果需要改端口的话改8080的地方
      depends_on:
        - mariadb

3. 上线容器

sudo docker compose up -d

然后 sudo docker compose ps 一下看lwt-docker-lwt-1 lwt-docker-mariadb-1 这两项的情况。

如果有错误的话,可以sudo docker logs lwt-docker-lwt-1看下日志 或者试着在/opt/lwt-docker文件夹下创建一个media文件夹

sudo mkdir media

然后再重新上线容器

4. 配置反代和 SSL

我比较懒,设置还是跟之前的配置 Cloudflare 的免费 SSL 证书里面一样配置,如果不想按照这个方法来配置反代的话可以参考:利用 Nginx 进行反代中的配置

sudo nano /etc/nginx/conf.d/lwt.conf

写入

server {
	listen 443 ssl;
	server_name 域名;
	location / {
		proxy_pass http://127.0.0.1:8080;
		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;
	}
}

接着sudo nginx -t 之后 sudo systemctl reload nginx 重启nginx之后就可以在配置好的域名看到 LWT 啦

后续

如果我有继续使用的话后面可能会更新阅读配置和使用细节等内容(不确定)