EnglishReadVoyage is a tool that helps English learners improve their English through enhanced reading. It supports adding and editing various English reading materials, instant dictionary lookup, and click-to-read functionality, making English learning more efficient and enjoyable.
.apkg format for direct import into Anki. Each card shows the sentence with the target word highlighted in bold red on the front, and the sentence translation plus word definition on the backThis project provides Docker image deployment without needing to install Python or Node.js.
If you need to build the image yourself (e.g., to customize features), run:
# Windows (PowerShell recommended)
.\docker\all-in-one\build.ps1
# Linux/Mac
bash docker/all-in-one/build.sh
This will produce a englishreadvoyage:latest local image for direct use.
You can skip this step and pull a pre-built image directly (see below).
If you prefer not to build locally, you can pull a pre-built image directly from CNB (cnb.cool):
# Pull the latest image
docker pull docker.cnb.cool/wtrw09/englishreadvoyage:latest
Once the image is pulled, follow the Docker Deployment Startup steps below to start.
This is the simplest deployment method with no need to install Python or Node.js.
# 1. Create a directory for config and data (any location, myapp used as example)
mkdir myapp && cd myapp
# 2. Download docker-compose.yml
# Copy docker-compose.yml from the project's docker/all-in-one/ directory
# 3. Modify image source (optional)
# Edit docker-compose.yml and change the image to the CNB registry address to pull from the cloud
# See the "Image Source" note below
# 4. Start service
docker-compose up -d
Note: Newer Docker also supports
docker compose(without hyphen). Both are equivalent.
Image Source: The image name is set in the
imagefield ofdocker-compose.yml. Modify it as needed:
- Local image:
image: englishreadvoyage:latest(build first viabuild.ps1)- CNB image:
image: registry.cnb.cool/wtrw09/englishreadvoyage:latest(auto-pull on first run)Both methods use
docker-compose up -d— just change one line in the yml file.
On container startup, the following operations are automatically performed:
Data files will be saved in the backend/ subdirectory of your working directory.
Default port is 8888. To modify, edit the docker-compose.yml in your current directory, change 8888:80 to your_desired_port:80:
ports:
- "9999:80" # Change frontend port to 9999
# View logs
docker logs -f englishread
# Restart service
docker-compose restart
# Stop service
docker-compose down
# Update image and redeploy (keep data)
docker-compose pull && docker-compose up -d
After startup, open browser to access: http://localhost:8888
Default admin account:
adminadminBuild from source:
android/ directoryfrontend/ directory:cd frontend
npm install
npm run build
Usage instructions:
Build from source:
harmony/ directory with DevEco Studiofrontend/ directory:cd frontend
npm install
npm run harmony:sync
Usage instructions:
Used to translate English to Chinese. It's a free machine translation service with sufficient quota for personal use. No better free translation alternative has been found yet.
Merriam-Webster provides more authoritative and detailed English definitions. To enable:
To enable local dictionary lookup (fast speed, no internet required), follow these steps:
ecdict.db fileecdict.dbbackend/data/ directory manually and place ecdict.db in it
mkdir backend/data
# Then place ecdict.db into the backend/data/ directory
backend/data/ directory already exists, just copy it indocker-compose restartIf this file is not placed, dictionary lookup will automatically use the online FreeDictionaryAPI, which does not affect other features.
The project uses Edge-TTS by default, which is completely free with standard pronunciation — the best out-of-the-box choice.
For higher quality or more voice options, you can configure the following paid voice services:
| Service | Type | Features |
|---|---|---|
| Azure TTS | Microsoft Neural | High-quality neural voices, rich options |
| Doubao TTS | ByteDance Online | Natural Chinese voice, emotional support |
| MiniMax TTS | China Online | Multi-language support, free quota |
| SiliconFlow TTS | China Online | Multiple models available |
| Kokoro TTS | Local Model | Requires local deployment, excellent quality |
Configuration: Select the service and enter the corresponding API Key in the admin panel's "Voice Settings".
Whether using the web version or mobile App, you can configure the server address and port on the login page (default http://localhost:8888). If you deploy Docker on another device, simply enter that device's IP address.
backend/data/ mounted volumebackend/data/ directorySECRET_KEY in the docker-compose.yml environmentThe source code is hosted on the following platforms: