# 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_USERNAME`: Gitea username allowed to publish packages
- `REGISTRY_PASSWORD`: Gitea personal access token with package read/write access
- `REGISTRY_IMAGE`: full image name, for example `gitea.reversed.dev/space/evil-wordle`

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:<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.
