# Evil Wordle A dark Wordle-style browser game with daily, infinite, daily evil, custom length, and super evil modes. ## Install ```bash npm install ``` ## Run ```bash npm run dev ``` Open the local URL printed by Vite. ## Build ```bash npm run build ``` ## Docker ```bash docker compose up --build ``` The compose service publishes the app on `0.0.0.0:6666`. ## CI Image Publishing Gitea Actions workflow: `.gitea/workflows/ci.yml` Required repository or organization secrets: - `REGISTRY_PASSWORD`: Gitea personal access token with package read/write access - `REGISTRY_USERNAME`: optional; defaults to the Gitea Actions actor - `REGISTRY_IMAGE`: optional; defaults to `gitea.reversed.dev/space/evil-wordle` The workflow also accepts `REGISTRY_TOKEN` as a fallback for `REGISTRY_PASSWORD`. The workflow uses `catthehacker/ubuntu:act-latest`, Docker Buildx, and links the published package back to the `space/evil-wordle` repository through the Gitea API. On pushes to `main`, CI publishes: ```bash gitea.reversed.dev/space/evil-wordle:latest gitea.reversed.dev/space/evil-wordle: ``` Tags like `v1.2.3` also publish `gitea.reversed.dev/space/evil-wordle:1.2.3`. The app is built with React, Tailwind CSS, and Vite. Progress, settings, and stats are stored in `localStorage`. Guess validation uses `word-list-json`; curated local word buckets in `src/data/words.ts` control target selection and provide the fallback pool.