Files
luxcollection/README.md
2025-10-02 13:23:09 +02:00

51 lines
1.5 KiB
Markdown
Executable File

# 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`.