Single-binary self-hosted market watcher for stocks, ETFs, indexes, and futures: live charts, key stats, fundamentals, SEC filings, and SSE streaming.
axumdockerfinancerustself-hostedsqlitestocksvite
1CARGO ?= $(HOME)/.cargo/bin/cargo
2PORT ?= 8000
3
4.DEFAULT_GOAL := run
5.PHONY: run build start clean push seed
6
7# Dev: Vite watch + cargo run concurrently. Both die on Ctrl+C.
8run: frontend/node_modules dist/.vite/manifest.json
9 @trap 'kill 0' EXIT INT TERM; \
10 (cd frontend && bun run dev) & \
11 PORT=$(PORT) $(CARGO) run
12
13# Production build (Vite assets + release binary)
14build: frontend/node_modules
15 cd frontend && bun run build
16 $(CARGO) build --release
17
18# Run the release binary (after `make build`)
19start:
20 PORT=$(PORT) ./target/release/finance
21
22# Wipe everything regenerable: build output, frontend deps, local data dir.
23clean:
24 rm -rf target dist frontend/node_modules data
25
26push:
27 git remote | xargs -I R git push R master
28
29# Re-run the universe seed (curated symbols + bulk daily history). Idempotent.
30seed:
31 $(CARGO) run -- seed
32
33frontend/node_modules:
34 cd frontend && bun install
35
36dist/.vite/manifest.json: frontend/node_modules
37 cd frontend && bun run build