Run the siteΒΆ

Docker only for Node β€” do not run npm install on the host.

uv run poe up
# or: docker compose -f docker-compose.yml -f docker-compose.dev.yml up

Open http://localhost:14321 (dev / poe up) or http://localhost:8080 (prod / poe up-prod). See Docker.

  • Education β€” Word types, Grammar, Topics, Flashcards, Practice, Chat (AI features when enabled)

  • Data is bind-mounted from ./data at /data in the container

Web unit tests (Vitest) β€” run inside the web container; do not npm install on the host:

docker compose exec web npm test

If the web service is not already up:

docker compose run --rm web npm test

Python tests (host via uv):

uv run poe test
uv run poe test-system
uv run poe test-all
uv run poe coverage

poe test runs unit and offline system tests (skips @pytest.mark.llm). poe test-all also runs LLM tests (needs a reachable Ollama). Optional LLM-only suite: uv run poe test-llm.

Rebuild after Dockerfile changes:

docker compose up --build web

Docker Compose project name: soju (containers use the soju- prefix).