2026-03-06 09:10:57 +01:00
2026-02-23 20:07:48 +01:00
2026-02-23 20:07:48 +01:00

btcprice

Bitcoin price tracker UI. Serves an HTML page with live price updates streamed from btcdata via WebSocket using HTMX.

Quick Start

# Start btcdata first (provides price data)
cd ../btcdata && make run

# Local dev
make run       # starts on port 4000
make tailwind  # watch Tailwind CSS (separate terminal)

# Docker (starts both btcprice + btcdata)
docker compose up -d   # btcprice on 4041, btcdata on 4101

Environment Variables

Variable Default Description
PORT 4000 HTTP server port
BTCDATA_URL http://192.168.50.42:4100 btcdata service URL (browser connects via WebSocket)

How It Works

The server renders an HTML page with HTMX and the WebSocket extension (hx-ext="ws"). HTMX connects directly to btcdata's WebSocket endpoint (BTCDATA_URL/api/price/ws), which sends HTML fragments. HTMX swaps the received <div id="price-display"> into the DOM automatically. Price changes are color-coded (green up, red down). Reconnection is handled by HTMX with exponential backoff.

Tech Stack

Clojure · Kit · Undertow · Reitit · Hiccup · HTMX · Tailwind CSS v4

S
Description
Bitcoin price tracker UI — WebSocket-based BTC price display
Readme
128 KiB
Languages
Python 87.1%
Dockerfile 6.7%
Makefile 4.3%
JavaScript 1.3%
CSS 0.6%