Evil Wordle
A dark Wordle-style browser game with daily, infinite, daily evil, custom length, and super evil modes.
Install
npm install
Run
npm run dev
Open the local URL printed by Vite.
Build
npm run build
Docker
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 accessREGISTRY_USERNAME: Gitea username that owns the tokenREGISTRY_IMAGE: optional; defaults togitea.reversed.dev/space/evil-wordle
The workflow also accepts REGISTRY_TOKEN as a fallback for REGISTRY_PASSWORD.
For organization packages such as space/evil-wordle, the username is still the actual Gitea user account for the token, not the organization name. That user needs permission to publish packages under space.
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:
gitea.reversed.dev/space/evil-wordle:latest
gitea.reversed.dev/space/evil-wordle:<short-commit-sha>
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.