提升英文输入效率:基于Docker的Qwerty Learner本地搭建与使用指南

文章目录

    • 前言
    • 1.关于qwerty-learner
    • 2.Docker部署
    • 3.简单使用演示
    • 4.安装cpolar内网穿透
    • 5. 配置公网地址
    • 6. 配置固定公网地址
    • 总结

前言

小伙伴们,你们有没有遇到过这种情况:中文输入流畅自如,一到英文模式就变成了新手司机?别担心,今天给大家带来一个超级神器——Qwerty Learner!这款工具不仅能帮你解决这个难题,还能让你的英语肌肉记忆瞬间提升!更重要的是,我们手把手教你如何在本地Linux服务器上用Docker快速部署它,并且通过cpolar内网穿透工具实现跨网络环境的远程访问,轻松搞定一切,无需公网IP和云服务器,简单高效到飞起!

img

【视频教程】

1分钟本地部署英文输入速度提升宝藏工具qwerty-learner

1.关于qwerty-learner

qwerty-learner是一款专为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件。不仅能帮助你提升英文输入速度和准确性,还能让你在打字过程中学习新词汇!内置了多种考试词库(如大学四六级、考研英语等)以及程序员常用单词和API练习,简直就是为程序员量身打造的学习神器。

qwerty-learner 特点与优势:

  1. 多语言支持
  • 不仅限于英语学习,还支持其他多种语言的输入练习。无论是法语、德语还是日语,都能找到相应的词库进行学习和训练。
  1. 丰富的词汇库
  • 内置了多个权威的考试词汇库,如大学四六级、考研英语、TOEFL、GRE等。
  • 特别为程序员设计了编程相关的词汇和API练习,帮助你在实际开发中更流畅地使用英文。
  1. 智能复习算法
  • 利用先进的间隔重复算法(Spaced Repetition System, SRS),根据你的记忆曲线动态调整复习频率,确保你记住每一个单词。
  • 每个单词的出现频率和难度会根据你的表现自动调整,帮助你在最短的时间内达到最佳学习效果。
  1. 实时反馈
  • 在练习过程中,输入正确的字母显示为绿色,错误的字母显示为红色,即时反馈让你迅速纠正错误。
  • 练习结束后,系统会生成详细的报告,包括打字速度、正确率和常见错误分析,帮助你针对性地改进。
  1. 多模式练习
  • 听写模式:通过听取单词发音来输入字母,提高听力和拼写能力。
  • 默写模式:在没有提示的情况下输入单词,检验记忆效果。
  • 快速打字模式:挑战自己的极限,提升打字速度。
  1. 个性化设置
  • 可以根据个人喜好调整背景颜色、字体大小等界面设置,让学习过程更加舒适。
  • 支持自定义词汇表,你可以添加自己需要学习的单词和短语。

2.Docker部署

本例使用Ubuntu 22.04进行演示,使用Docker进行部署,如果没有安装Docker,可以查看这篇教程进行安装:《Docker安装教程——Linux、Windows、MacOS》

安装环境需要有Node.js 、Git 、yarn,我这里已经安装。

首先需要在命令行中执行这行命令将项目拉取到本地

git clone https://github.com/RealKai42/qwerty-learner.git

image-20250217165447443

进入项目根目录

cd qwerty-learner

执行来下载依赖

yarn install

image-20250217165515565

执行来启动项目

yarn start

image-20250217165533606

打开浏览器输入http://localhost:5173/就可以进入到qwerty-learner的主页面

image-20250217165718195

3.简单使用演示

打开软件,选择好词库,点击键盘任意键就开始练习了。听着单词的朗读,对照屏幕上的单词在键盘上打出字母,输入正确的字母显示为绿色,错误字母显示为红色,一目了然。每章拼写练习完成后,还可以选择默写,屏幕不再显示单词,直接听音默写,学习效果杠杠的。而且,它还有错题本功能,统计错误单词的练习次数、错误次数和默写平均用时,方便你针对性地复习。

image-20250217165857615

也可以选择你自己想学的词典,里面有各种各样的语言以及大学英语等等专业课程都可以学习。

image-20250217165958856

4.安装cpolar内网穿透

不过我们目前只能在本地局域网内访问刚刚部署的qwerty-learner,如果想不在同一局域网内时,也能在外部网络环境使用手机、平板、电脑等设备远程访问与使用它,应该怎么办呢?我们可以使用cpolar内网穿透工具来实现远程访问的需求。无需公网IP,也不用准备云服务器那么麻烦。

下面是安装cpolar步骤:

Cpolar官网地址: https://www.cpolar.com

使用一键脚本安装命令:

sudo curl https://get.cpolar.sh | sh

img

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

img

Cpolar安装和成功启动服务后,在浏览器上输入ubuntu主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

image-20240801133735424

5. 配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:qwerty,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:5173
  • 域名类型:随机域名
  • 地区:选择China Top

点击创建:

image-20250217172530327

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用任意一个地址在浏览器中访问即可。

image-20250217172636780

现在就已经成功实现使用cpolar生成的公网地址异地远程访问本地部署的qwerty-learner啦!

小结

为了方便演示,我们在上边的操作过程中使用cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期使用qwerty-learner,或者异地访问与使用其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想让公网地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来配置公网地址。

6. 配置固定公网地址

使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

点击左侧的预留,选择保留二级子域名,地区选择china top,然后设置一个二级子域名名称,我这里演示使用的是qwerty,大家可以自定义。填写备注信息,点击保留。

image-20250217172826573

保留成功后复制保留的二级子域名地址:

image-20250217172941060

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道qwerty-learner,点击右侧的编辑

image-20250217172909286

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20250217173013679

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20250217173034540

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问本地部署的qwerty-learner页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

image-20250217173221400

了解更多项目详情大家可以访问作者github主页进行查看:RealKai42/qwerty-learner: 为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workers

总结

以上就是如何在本地Ubuntu系统使用Docker快速部署qwerty learner,并通过cpolar内网穿透工具配置固定不变的二级子域名公网地址,实现随时随地远程开发的全过程。如果你还有任何疑问或遇到问题,欢迎在评论区留言交流,我们一起探讨!最后,别忘了给作者一个大大的赞哦,毕竟这么给力的工具可不是随便就能找到的,错过今天你可能又要等很久了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/83230.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BUUCTF——shrine

BUUCTF——shrine 进入靶场 只有一串代码 import flask import os app flask.Flask(__name__) app.config[FLAG] os.environ.pop(FLAG) #程序从环境变量 FLAG 读取一个敏感值,并存储在 app.config[FLAG] 中。 #安全问题:如果攻击者能访问 app.con…

【Python】对象生命周期全解析

Python对象生命周期全解析 在Python中,一个对象从创建到销毁会经历一系列过程,理解这些过程对于编写高效、可靠的Python代码非常重要。下面我将详细讲解Python对象的完整生命周期。 1. 对象创建阶段 (1) 内存分配 当使用类实例化时(obj MyClass())&…

科学养生指南:解锁健康生活的密码

健康是人生最宝贵的财富,科学养生则是守护这笔财富的关键。即使抛开传统中医理论,现代科学也为我们提供了诸多实用的养生方法。​ 合理饮食是健康养生的基石。人体需要碳水化合物、蛋白质、脂肪、维生素和矿物质等多种营养物质维持运转。日常饮食应遵循…

深入解析 Python 应用日志监控:ELK、Graylog 的实战指南

深入解析 Python 应用日志监控:ELK、Graylog 的实战指南 引言 在现代应用开发中,日志不仅仅是用于记录错误和调试信息,它更是系统运行状况的窗口,帮助开发者和运维人员监控、优化应用性能。Python 作为广泛应用的开发语言,其应用日志管理的重要性不言而喻。而 ELK(Elas…

【vue】脚手架

一、使用脚手架创建项目 1.打开编辑器终端 2.输入命令vue create 项目名 3.选择自定义配置,选以下几种常用的配置项(空格选中或删除) 二、常规操作 进入项目:cd 项目名 返回:cd .. 运行项目:npm run serve 停止项目:ct…

2025全网首发:ComfyUI整合GPT-Image-1完全指南 - 8步实现AI图像创作革命

ComfyUI整合GPT-Image-1完全指南:8步实现AI图像创作革命【2025最新】 OpenAI最新发布的GPT-Image-1模型(也就是ChatGPT-4o背后的图像生成技术)已经通过API开放使用,而令人惊喜的是,ComfyUI已经第一时间提供了完整支持&…

每日算法刷题计划Day7 5.15:leetcode滑动窗口4道题,用时1h

一.定长滑动窗口 【套路】教你解决定长滑窗!适用于所有定长滑窗题目! 模版套路 1.题目描述 1.计算所有长度恰好为 k 的子串中,最多可以包含多少个元音字母 2.找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数。 3.…

JavaScript的BOM、DOM编程

参考笔记:JavaWeb 速通DOM_java dom-CSDN博客 目录 1.JS的组成部分 2.BOM编程 2.1 基本介绍 2.2 BOM的构成 2.3 图解BOM编程 2.4 windows对象的常见属性 2.5 windows对象的常见方法 2.6 BOM编程的简单示例 2.6.1 三种弹窗方式 ​2.6.2 页面跳转 2.6.3…

Web3.0:互联网的去中心化未来

随着互联网技术的不断发展,我们正站在一个新时代的门槛上——Web3.0时代。Web3.0不仅仅是一个技术升级,它更是一种全新的互联网理念,旨在通过去中心化技术重塑网络世界。本文将深入探讨Web3.0的核心概念、技术基础、应用场景以及它对未来的深…

CVPR计算机视觉顶会论文解读:IPC-Dehaze 如何解决真实场景去雾难题

【CVPR 2025】迭代预测-评判编解码网络:突破真实场景去雾的极限 摘要 本文提出了一种名为IPC-Dehaze的创新去雾方法,通过迭代预测-评判框架和码本解码机制,有效解决了现有去雾算法在复杂场景下的性能瓶颈。该方法在多个基准测试中取得了SOT…

07.three官方示例+编辑器+AI快速学习webgl_buffergeometry_attributes_integer

本实例主要讲解内容 这个Three.js示例展示了WebGL 2环境下的整数属性渲染技术。通过创建大量随机分布的三角形,并为每个三角形分配不同的整数索引,实现了基于索引动态选择纹理的效果。 核心技术包括: WebGL 2环境下的整数属性支持顶点着色…

WebSocket:实时通信(如聊天应用)从零到一的深度解析

简介 在现代互联网应用中,实时通信已成为不可或缺的核心功能。从在线聊天到金融数据监控,从协同办公到在线游戏,实时性需求推动了WebSocket技术的广泛应用。本文将从底层协议原理出发,结合企业级开发场景,系统讲解WebSocket的实现机制、实战技巧与优化策略。通过完整的代…

【NLP 困惑度解析和python实现】

**困惑度(Perplexity)**是自然语言处理和机器学习中常用的评价指标,尤其在评估语言模型时广泛使用。它衡量的是一个概率模型对一个样本(如一句话)的预测能力。 一、困惑度的定义 对于一个语言模型 $ P $ 和一个测试语…

编程题 02-线性结构3 Reversing Linked List【PAT】

文章目录 题目输入格式输出格式输入样例输出样例 题解解题思路完整代码 编程练习题目集目录 题目 Given a constant K K K and a singly linked list L L L, you are supposed to reverse the links of every K K K elements on L L L. For example, given L being 1 → …

互联网大厂Java求职面试实战:Spring Boot到微服务全景解析

💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通 2. 我的免费工具站: 欢迎访问 https://tools-6wi.pages.dev/ 😁 3. 毕业设计专栏,毕业…

课程11. 计算机视觉、自编码器和生成对抗网络 (GAN)

计算机视觉、自编码器和生成对抗网络(GAN) 自动编码器Vanilla自动编码器使用 AE 生成新对象. 变分 AE (VAE)AE 条件 GAN理论示例下载并准备数据GAN模型 额外知识 课程计划: 自动编码器: 自动编码器结构;使用自动编码器…

MarkitDown:AI时代的文档转换利器

在当今AI快速发展的时代,如何高效地将各种格式的文档转换为机器可读的格式,成为了一个迫切需要解决的问题。今天,我们来介绍一款由微软开发的强大工具——MarkitDown,它正是为解决这一问题而生的。 什么是MarkitDown? MarkitDown是一个用Python编写的轻量级工具,专门用…

Python实战案例:打造趣味猜拳小游戏

Python实战案例:猜拳小游戏 文章目录 Python实战案例:猜拳小游戏一、案例背景二、代码实现三、代码解析3.1 执行过程3.2 流程图 四、案例总结1. 核心知识点运用2. 编程思维提升 一、案例背景 猜拳游戏(石头剪刀布)是一款规则简单…

MCP:重塑AI交互的通用协议,成为智能应用的基础设施

目录: 为什么我们需要一个AI世界的USB-C?MCP的核心架构与工作原理MCP如何解决当前AI生态系统的碎片化问题从代码到实践:构建基于MCP的智能应用MCP的未来:从工具到生态为什么我们需要一个AI世界的USB-C? 还记得在USB-C标准普及之前,我们的数字生活是什么样子吗?抽屉里塞…

如何保证RabbitMQ消息的顺序性?

保证RabbitMQ消息的顺序性是一个常见的需求,尤其是在处理需要严格顺序的消息时。然而,默认情况下,RabbitMQ不保证消息的全局顺序,因为消息可能会通过不同的路径(例如不同的网络连接或线程)到达队列&#xf…