LinguaCafe is a free self-hosted software that helps language learners acquire vocabulary by reading. It provides a set of tools to read, look up unknown words and review them later as effortlessly as possible.
You can read about all the features of LinguaCafe on the overview GitHub Page, and on the user manual GitHub Wiki page.
Supported platforms:
- x64, which includes most desktop computers made in the last decade.
- Macs with Apple silicon are supported, but need to uncomment the line that says
platform: linux/amd64
by removing the "#" near the end of the file.
Other Armv8 devices such as Raspberry Pis 3 and newer do not work at the moment.
Supported languages: Chinese, Croatian, Czech, Danish, Dutch, English, Finnish, French, German, Greek, Italian, Japanese, Korean, Latin, Macedonian, Norwegian, Polish, Portuguese, Romanian, Russian, Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian, Welsh.
You can find a detailed list about what level of support different languages have on the GitHub Wiki page.
- x64, which includes most desktop computers made in the last decade.
- Mac users with Apple silicon must perform an additional step, see the 'Installation' section for details
Other Armv8 devices such as Raspberry Pis 3 and newer do not work at the moment.
LinguaCafe uses RAM based on how many and which languages do you use. If you use every language, the RAM usage can be over 2GB.
Important
On MacOS you might need actual Docker Desktop instead of just basic Docker, because it allows you to use Rosetta to run images without support for Arm64 like our Python image, which uses Spacy models that only work in Amd64.
Create a folder for linguacafe, and a storage subfolder. Then download the docker-compose.yml file, and place in inside your linguacafe folder. Your folder structure should look like this:
.
├── linguacafe
│ ├── storage
│ ├── docker-compose.yml
If you want to change the default MySQL database and user, you can create a .env
file inside your linguacafe folder and add these lines to it before starting your servers for the first time:
DB_DATABASE="linguacafe"
DB_USERNAME="linguacafe"
DB_PASSWORD="linguacafe"
You can also use a remote MySql server. In this case, you must create the database itself before starting the server.
DB_HOST="linguacafe-database-host"
DB_PORT=3306
MacOs users with Apple silicon must also create a .env
file, and add the following line:
PLATFORM="linux/amd64"
docker compose up -d
Windows:
For Windows, you can download this installation script and run it instead of running any of the commands yourself. Since this is a .bat file, Windows defender will warn you about it being potentially a malware.
Your server now should be running and accessible on http://localhost:9191.
Although your server is set up and functional, please read the user manual, because there are a few additional steps before you can use linguacafe, like installing languages and importing dictionaries.
Mysql error while running the `docker compose up -d` command.
Some Apple silicon users have encountered error messages like these:
[+] Pulling 1/3 on
✘ mysql Error context canceled 1.0s
⠏ webserver [⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀] Pulling 1.0s
⠏ python Pulling 1.0s
no matching manifest for linux/arm64/v8 in the manifest list entries
We do not know why, but pulling the images individually fixes this error.
Run these commands, then run docker compose up -d
again:
docker pull --platform linux/arm64 ghcr.io/simjanos-dev/linguacafe-webserver:latest
docker pull --platform linux/amd64 ghcr.io/simjanos-dev/linguacafe-python-service:latest
Please backup linguacafe before updating, otherwise you can lose your data if anything goes wrong. You can read more about backups in the user manual.
If you are below v0.9, please use the migration guide provided here instead of this command.
If you are below v0.12 and using Linux or MacOS, please run this command from your linguacafe directory (this won't be neccessary anymore in the future):
sudo chmod -R 777 ./storage
Run these commands to update and start your server:
docker compose pull
docker compose up -d
If you are below v0.12 and using Windows please delete these folders after updating, then restart your server. You will have to install your languages again if you had any installed.
linguacafe/storage/logs
linguacafe/storage/framework
linguacafe/storage/app/model
If you run into any problem updating, please contact me on discord, I will try to help.
On Windows, you can run again the installation script to update to the latest version, or run the commands separately.
Note
LinguaCafe is still in active development, you might encounter some bugs while using the software. Please test it before you start actively using it, and make sure it is up to your expectations. At this time only one user/server is supported.
Discord user: linguacafe_47757
Subreddit: /r/linguacafe
E-mail: [email protected]
LinguaCafe uses many public resources. I am very thankful for these projects and for all the people who were working on them. They helped me greatly to create LinguaCafe.
Spacy tokenizer
License: MIT license
Pykakasi
License: License: GNU General Public License 3
Pinyin
License: MIT license
Newspaper3k
License: MIT, Apache-2.0
EbookLib
License: GNU Affero General Public License v3.0
JMDict dictionary file
License: Creative Commons Attribution-ShareAlike 4.0 International
KANJIDIC2 kanji file
License: Creative Commons Attribution-ShareAlike 4.0 International
CC-CEDICT dictionary file
License: Creative Commons Attribution-Share Alike 3.0 License
CC-CEDICT website CC-CEDICT license
HanDeDict dictionary file
License: Creative Commons Attribution-ShareAlike 2.0 Germany License
HanDeDict website HanDeDict license
Kengdic dictionary file
License: GNU Library General Public License, version 2.0
Kengdic github Kengdic license
Eurfa dictionary file
License: The GNU General Public License 3
Eurfa download website Eurfa bitbucket Eurfa creator's website Eurfa license
Wiktionary
License: Creative Commons Attribution-ShareAlike 3.0 Unported License
The specific wiktionary files that LinguaCafe uses have been downloaded from this GitHub repository.
Dict.cc
LinguaCafe has no dict.cc dictionaries packaged in the software. It only provides a link to the dict.cc website.
RADKFILE/KRADFILE
License: Creative Commons Attribution-ShareAlike 4.0 International
DMAK kanji drawing library
License: MIT license
KanjiVG License: Creative Commons Attribution-ShareAlike 3.0 Unported