Try describing what you need:

Mirumoji logo

Mirumoji

★ 45
MIT LicenseOpen Source — No Paywall2 Containers — 2 containers — light hosting footprintDocker · Compose · Binary +1No external DB1 active committer (12mo)

About

Mirumoji is a self-hosted toolkit designed for Japanese immersion workflows. It lets users drop in videos, anime episodes, dramas, or audio clips and turn them into interactive learning material with...

Community Ratings

No ratings yet
Mirumoji Demo

Features

  • interactive player
  • clickable tokenized subtitles
  • dictionary pop-ups
  • subtitle generation
  • audio transcription
  • wildcard dictionary search
  • furigana text analysis
  • LLM sentence breakdowns
  • clip saving
  • Anki deck export

Details

Last Updated
Oct 20, 2026
Created
Jun 3, 2025
Install Methods
dockerdocker-composebinarysource
Requirements
Docker Composelocal or cloud GPUGemini/Claude/GPT API keys or a local LLM server for optional LLM features
API
REST
Runtime / Stack
DockerPython
Privacy & Independence
Cloud: OptionalOffline Capable
Deployment

Deployment: Docker Compose ✓2 Containers — light hosting footprintRuns as 2 containers

Run Mirumoji yourself

Pick how much you want to manage.

Is this your project? Sponsor a listing

Run Mirumoji with Docker Compose

Compose file from the Mirumoji project repository.

2 services

no resource limits declared

needs persistent storage (3 volumes)

apps/mirumoji/src/mirumoji/docker/compose/compose.yaml · @ d64afcf · scanned Sep 24, 2026

# Mirumoji Docker Compose template
#
# This template is transformed at runtime by the launcher (`mirumoji.cli.shared.compose`)
#
# Modifications Made By The Launcher
#
# - Replaces Image References For GPU / CPU Backend Builds
# - Injects The NVIDIA GPU Reservation + Hugging Face Model-Cache Volume For GPU Backend Builds
#
# It's recommended to run `mirumoji up` rather than to edit this file directly
#
# `mirumoji compose render` emits a resolved copy for manual installs
#
# Every backend variable uses a `${VAR:-default}` form so that nothing is required
# except what the chosen backend genuinely needs. The launcher collects those into the
# `.env` it passes via `--env-file`

services:
  frontend:
    image: svdc1/mirumoji:frontend-latest
    ports:
      - "80:80"    # HTTP (Redirects To HTTPS, Serves The CA Download)
      - "443:443"  # HTTPS (Cert For HOST_LAN_IP Signed By The Local CA At Runtime)
    environment:
      - HOST_LAN_IP=${HOST_LAN_IP:-127.0.0.1}
    volumes:
      # Persists the local CA across restarts so devices that installed it
      # (For The PWA / Trusted HTTPS) stay trusted. The CA is served at
      # /mirumoji-ca.crt for the one-time per-device install
      - certs:/etc/nginx/ssl
    depends_on:
      - backend
    networks:
      - app-network

  backend:
    image: svdc1/mirumoji:backend-cpu-latest
    ports:
      - "8000:8000"
    environment:
      - MIRUMOJI_TRANSCRIBE_BACKEND=${MIRUMOJI_TRANSCRIBE_BACKEND:-auto}
      - MIRUMOJI_LOGGING_LEVEL=${MIRUMOJI_LOGGING_LEVEL:-INFO}
      # LLM Providers
      - OPENAI_API_KEY=${OPENAI_API_KEY:-}
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
      - GEMINI_API_KEY=${GEMINI_API_KEY:-}
      - MIRUMOJI_LLM_API_KEY=${MIRUMOJI_LLM_API_KEY:-}
      - MIRUMOJI_LLM_BASE_URL=${MIRUMOJI_LLM_BASE_URL:-}
      # Modal
      - MODAL_TOKEN_ID=${MODAL_TOKEN_ID:-}
      - MODAL_TOKEN_SECRET=${MODAL_TOKEN_SECRET:-}
      - MIRUMOJI_MODAL_GPU=${MIRUMOJI_MODAL_GPU:-A10G}
      - MIRUMOJI_MODAL_IMAGE=${MIRUMOJI_MODAL_IMAGE:-docker.io/svdc1/mirumoji-modal-gpu:latest}
      - MIRUMOJI_MODAL_SCALEDOWN_WINDOW=${MIRUMOJI_MODAL_SCALEDOWN_WINDOW:-60}
      - MODAL_FORCE_BUILD=${MODAL_FORCE_BUILD:-0}
      # LLM Batch Concurrency
      - MIRUMOJI_MAX_LLM_CONCURRENCY=${MIRUMOJI_MAX_LLM_CONCURRENCY:-4}
      # Default LLM System-Message Overrides
      - MIRUMOJI_SRT_DEFAULT_SYS_MSG=${MIRUMOJI_SRT_DEFAULT_SYS_MSG:-}
      - MIRUMOJI_BREAKDOWN_DEFAULT_SYS_MSG=${MIRUMOJI_BREAKDOWN_DEFAULT_SYS_MSG:-}
    volumes:
      # The server resolves its storage via platformdirs (see mirumoji/paths.py),
      # which is unversioned, so these mounts persist data and logs across
      # version upgrades
      - data:/root/.local/share/mirumoji
      - logs:/root/.local/state/mirumoji
    networks:
      - app-network

volumes:
  data:
  logs:
  certs:

networks:
  app-network:
    driver: bridge

This file may be out of date. Check the Mirumoji documentation for current setup steps.

Track your self-hosted stack

Bookmark software to try, rate tools you've used, and keep your collection in one place.

Metadata extracted from README on Aug 1, 2026

Related Software

HomeTube logo

HomeTube

1.5k
Web UI to download videos and playlists from 1700+ sites into a Plex or Jellyfin library, with quality selection, SponsorBlock sponsor removal, subtitles, clip cutting and resilient playlist sync.
Media Management
Details
OpenReader logo

OpenReader

550
OpenReader is an open source, self-host-friendly text-to-speech document reader for EPUB, PDF, TXT, MD, and DOCX with synchronized read-along playback.
Miscellaneous ToolsE-Book ManagementAudio Streaming+4
Details
Digicut logo

Digicut

1
Cut audio and video files using FFMPEG.wasm (documentation in French).
Miscellaneous ToolsCopyleft LicenseMedia Management+1
Details
Digimerge logo

Digimerge

2
Assemble audio and video files directly in your browser (documentation in French).
Miscellaneous ToolsVideo EditingMedia Management+3
Fully FOSS
Details
Digiwords logo

Digiwords

1
A simple online application for creating word clouds (documentation in French).
Miscellaneous ToolsSelf Hosting SolutionsFully FOSS+1
Fully FOSS
Details
Digiflashcards logo

Digiflashcards

3
An online application to create flashcards (documentation in French).
Miscellaneous ToolsLearning ManagementKnowledge Management+2
Details
Digitranscode logo

Digitranscode

2
Convert audio files and videos directly in the browser (documentation in French).
Miscellaneous ToolsMedia ManagementVideo Editing+2
Fully FOSS
Details
SyncTube logo

SyncTube

395
SyncTube is a synchronized video-watching app with chat, playback control, and subtitle support that can be run locally or with Docker.
Media ServersMedia ManagementCustom Communications+2
Details
Digibunch logo

Digibunch

3
Create bunches of links to share with your learners or colleagues.
Bookmark ManagementLearning ManagementCopyleft License+2
Details
DVinyl logo

DVinyl

275
Modern collection manager for physical media (vinyls, CDs, cassettes, books, movies, and video games).
Inventory Management
Details
Tube logo

Tube

6
Youtube-like (_without censorship and features you don't need!_) video sharing app written in Go which also supports automatic transcoding to MP4 H.265 AAC, multiple collections and RSS feed.
Media ServersPermissive LicenseMedia Management+2
Details
Digiread logo

Digiread

Clean up online pages and articles using Mozilla's Readability (documentation in French).
Miscellaneous ToolsCopyleft LicenseDigital Archiving+3
Details