A free, open-source platform for Japanese immersion learners. Jiten offers detailed statistics for thousands of Japanese media such as character count and difficulty, pre-built anki decks, vocabulary lists, frequency lists, user coverage, and more.
C#
202
1,800 commits
updated Oct 18, 2026
Official repository of jiten.moe:
A free, open-source platform for Japanese immersion learners. Jiten offers detailed statistics for thousands of Japanese media such as character count and difficulty, pre-built anki decks, vocabulary lists, frequency lists, user coverage, and more.
8080, 3001, and 3005 are available for the API, web, and Umami services respectivelyBefore you begin, make sure you have the following installed on your machine:
For development instructions, go to DEVELOPMENT.md
Open your terminal and run the following command to clone the repository:
git clone https://github.com/Sirush/Jiten.git
cd Jiten
The project uses an environment file to set various configuration options for the services. Follow these steps:
Copy the provided .env.example file to a new file named .env:
cp .env.example .env
Open the .env file in your favorite text editor and modify the variables as needed.
With Docker and Docker Compose installed and the environment variables configured, you can now start the application:
Open a terminal in the project root directory.
Run the following command to spin up the services:
docker-compose up -d
This command will:
coming soon™
Postgres:
API:
Jiten.Api/Dockerfile.8080.Web:
Jiten.Web/Dockerfile.3001.Umami:
3005.Traefik Labels:
The services are configured with Traefik labels for reverse proxying. Make sure your Traefik setup is compatible if you plan to use it for routing (e.g., the rules Host(api.jiten.moe), Host(jiten.moe), and Host(umami.jiten.moe)).
Local Development:
When developing locally, you might want to adjust URLs in the .env file to match your local environment (e.g., API_BASE_URL=http://localhost:8080/api).
Persistent Storage:
The Docker Compose file defines persistent volumes (postgres_data, uploads, and dictionaries) to store data across container restarts.
Installing Pgroonga:
To use the search function, you must install Pgroonga, a powerful full text search engine compatible with Japanese. Follow the instructions in the Pgroonga documentation according to your platform, and then execute the following command to activate the extension in your database and create the index:
CREATE EXTENSION IF NOT EXISTS pgroonga;
CREATE INDEX "IX_Decks_Title_Pgroonga" ON jiten."Decks"
USING pgroonga ("OriginalTitle", "RomajiTitle", "EnglishTitle");
Activating the cache can offer an appreciable speedup at the cost of RAM
Here's 3 scenarios, on 75 decks totaling 42millions moji, all running on 8 threads:
The best option is to have the word cache only, the deconjugator only offering ~3% more speed at a great cost of RAM
2,288 followers · starred Feb 2026
170 followers · starred May 2026
113 followers · starred Jul 2025
118 followers · starred Sep 2025
A free, open-source platform for Japanese immersion learners. Jiten offers detailed statistics for thousands of Japanese media such as character count and difficulty, pre-built anki decks, vocabulary lists, frequency lists, user coverage, and more.
C#
202
1,800 commits
updated Oct 18, 2026
Official repository of jiten.moe:
A free, open-source platform for Japanese immersion learners. Jiten offers detailed statistics for thousands of Japanese media such as character count and difficulty, pre-built anki decks, vocabulary lists, frequency lists, user coverage, and more.
8080, 3001, and 3005 are available for the API, web, and Umami services respectivelyBefore you begin, make sure you have the following installed on your machine:
For development instructions, go to DEVELOPMENT.md
Open your terminal and run the following command to clone the repository:
git clone https://github.com/Sirush/Jiten.git
cd Jiten
The project uses an environment file to set various configuration options for the services. Follow these steps:
Copy the provided .env.example file to a new file named .env:
cp .env.example .env
Open the .env file in your favorite text editor and modify the variables as needed.
With Docker and Docker Compose installed and the environment variables configured, you can now start the application:
Open a terminal in the project root directory.
Run the following command to spin up the services:
docker-compose up -d
This command will:
coming soon™
Postgres:
API:
Jiten.Api/Dockerfile.8080.Web:
Jiten.Web/Dockerfile.3001.Umami:
3005.Traefik Labels:
The services are configured with Traefik labels for reverse proxying. Make sure your Traefik setup is compatible if you plan to use it for routing (e.g., the rules Host(api.jiten.moe), Host(jiten.moe), and Host(umami.jiten.moe)).
Local Development:
When developing locally, you might want to adjust URLs in the .env file to match your local environment (e.g., API_BASE_URL=http://localhost:8080/api).
Persistent Storage:
The Docker Compose file defines persistent volumes (postgres_data, uploads, and dictionaries) to store data across container restarts.
Installing Pgroonga:
To use the search function, you must install Pgroonga, a powerful full text search engine compatible with Japanese. Follow the instructions in the Pgroonga documentation according to your platform, and then execute the following command to activate the extension in your database and create the index:
CREATE EXTENSION IF NOT EXISTS pgroonga;
CREATE INDEX "IX_Decks_Title_Pgroonga" ON jiten."Decks"
USING pgroonga ("OriginalTitle", "RomajiTitle", "EnglishTitle");
Activating the cache can offer an appreciable speedup at the cost of RAM
Here's 3 scenarios, on 75 decks totaling 42millions moji, all running on 8 threads:
The best option is to have the word cache only, the deconjugator only offering ~3% more speed at a great cost of RAM
2,288 followers · starred Feb 2026
170 followers · starred May 2026
113 followers · starred Jul 2025
118 followers · starred Sep 2025