···32nix run .#watch-tailwind
33```
34000000000000000035## running a knot
3637An end-to-end knot setup requires setting up a machine with
···71git remote add local-dev git@nixos-shell:user/repo
72git push local-dev main
73```
0000000000000000000000000
···32nix run .#watch-tailwind
33```
3435+To authenticate with the appview, you will need redis and
36+OAUTH JWKs to be setup:
37+38+```
39+# oauth jwks should already be setup by the nix devshell:
40+echo $TANGLED_OAUTH_JWKS
41+{"crv":"P-256","d":"tELKHYH-Dko6qo4ozYcVPE1ah6LvXHFV2wpcWpi8ab4","kid":"1753352226","kty":"EC","x":"mRzYpLzAGq74kJez9UbgGfV040DxgsXpMbaVsdy8RZs","y":"azqqXzUYywMlLb2Uc5AVG18nuLXyPnXr4kI4T39eeIc"}
42+43+# if not, you can set it up yourself:
44+go build -o genjwks.out ./cmd/genjwks
45+export TANGLED_OAUTH_JWKS="$(./genjwks.out)"
46+47+# run redis in at a new shell to store oauth sessions
48+redis-server
49+```
50+51## running a knot
5253An end-to-end knot setup requires setting up a machine with
···87git remote add local-dev git@nixos-shell:user/repo
88git push local-dev main
89```
90+91+## running a spindle
92+93+The above VM should already be running a spindle on
94+`localhost:6555`. You can head to the spindle dashboard on
95+`http://localhost:3000/spindles`, and register a spindle
96+with hostname `localhost:6555`. It should instantly be
97+verified. You can then configure each repository to use this
98+spindle and run CI jobs.
99+100+Of interest when debugging spindles:
101+102+```
103+# service logs from journald:
104+journalctl -xeu spindle
105+106+# CI job logs from disk:
107+ls /var/log/spindle
108+109+# debugging spindle db:
110+sqlite3 /var/lib/spindle/spindle.db
111+112+# litecli has a nicer REPL interface:
113+litecli /var/lib/spindle/spindle.db
114+```