web/README.md
myrmidex edfa58579b
Some checks failed
Build and Push Docker Image / build (push) Has been cancelled
Add readme
2026-08-23 21:52:51 +02:00

3.3 KiB

Anagram Finder

License Release

Type a handful of letters, get every word you can build from them. Self-hosted, no accounts, no tracking — one input and a list of results.

Anagram Finder

Features

  • Finds every dictionary word that fits your letters, longest first
  • 466,000-word English dictionary, bundled — no external lookups
  • Results are cached, so a repeated search is instant
  • Shareable result URLs (/find/eamstoxil)
  • Works without JavaScript; the whole thing is one form and one page
  • Terminal-styled, dark by default, readable on a phone

Self-hosting

Images are published to forge.lvl0.xyz/anagram-finder/web. Grab compose.yaml, set the three required variables, and start it:

mkdir anagram-finder && cd anagram-finder
curl -O https://forge.lvl0.xyz/anagram-finder/web/raw/branch/main/compose.yaml

cat > .env <<EOF
APP_KEY=base64:$(openssl rand -base64 32)
APP_URL=http://localhost:8000
DB_PASSWORD=$(openssl rand -hex 16)
DB_ROOT_PASSWORD=$(openssl rand -hex 16)
EOF

docker compose up -d

The app is then on http://127.0.0.1:8000. It binds to localhost only; put a reverse proxy in front of it for anything public-facing.

compose.yaml pins :latest. Check Releases and pin a version tag if you would rather upgrade deliberately.

Configuration

The snippet above generates everything required. In full:

Variable Description
APP_KEY Encryption key, base64: prefixed
APP_URL The address people will actually use
DB_PASSWORD Database password
DB_ROOT_PASSWORD MariaDB root password

DB_DATABASE and DB_USERNAME both default to anagram. Anything else you might want to override is listed in .env.example.

Migrations run automatically on first boot.

Development

git clone https://forge.lvl0.xyz/anagram-finder/web.git
cd web
nix-shell

The shell prints the available commands and offers to start the containers.

Command Description
dev-up Start the development environment
dev-down Stop it (-v also drops the database volume)
dev-rebuild Rebuild images and restart
dev-shell Enter the app container
dev-artisan <cmd> Run an artisan command
dev-composer <cmd> Run composer in the container
dev-test Run the test suite
dev-db MariaDB client on the dev database
dev-logs / dev-logs-db Follow the app or database log
Service URL
App http://localhost:8001
Vite http://localhost:5174
MariaDB localhost:3308

The matching logic and the dictionary live in anagram-finder/core, shared with anagram-finder/tui, a terminal client. Styling comes from lvl0/ui.

Contributing

Issues and pull requests are welcome at Issues.

License

Anagram Finder is free software, licensed under the GNU AGPL-3.0.