# Luxtools (Go edition) Luxtools is now implemented entirely in Go. The project serves a retro-styled HTMX interface backed by a lightweight Go HTTP server that mirrors the behaviour of the former Nim version. ## Project layout ``` luxtools/ ├── assets/ # Runtime asset directory served from disk (/assets/*) ├── cmd/luxtools/ # Main program entrypoint ├── internal/server/ # HTTP server, handlers, helpers, and tests ├── web/ │ ├── static/ # Vendored front-end assets (HTMX, TUI.CSS, images) │ └── templates/ # HTML templates rendered by the server ├── deploy/ # Deployment manifests (systemd unit, etc.) ├── go.mod # Go module definition └── README.md # You're here ``` ## Prerequisites - Go 1.22 or newer ## Run the server ```bash go run ./cmd/luxtools ``` The server listens on [http://127.0.0.1:5000](http://127.0.0.1:5000) and serves: - `/` — main page rendered from `web/templates/index.html` - `/counter` — HTMX-powered counter snippet with server-side state - `/time` — current server timestamp - `/static/*` — vendored assets from `web/static` - `/assets/*` — runtime assets from the shared `assets` directory ## Testing ```bash go test ./... ``` ## Building for deployment ```bash go build -o bin/luxtools ./cmd/luxtools ``` The resulting binary is compatible with the provided systemd unit located in `deploy/luxtools.service`.