···3232nix run .#watch-tailwind
3333```
34343535+To authenticate with the appview, you will need redis and
3636+OAUTH JWKs to be setup:
3737+3838+```
3939+# oauth jwks should already be setup by the nix devshell:
4040+echo $TANGLED_OAUTH_JWKS
4141+{"crv":"P-256","d":"tELKHYH-Dko6qo4ozYcVPE1ah6LvXHFV2wpcWpi8ab4","kid":"1753352226","kty":"EC","x":"mRzYpLzAGq74kJez9UbgGfV040DxgsXpMbaVsdy8RZs","y":"azqqXzUYywMlLb2Uc5AVG18nuLXyPnXr4kI4T39eeIc"}
4242+4343+# if not, you can set it up yourself:
4444+go build -o genjwks.out ./cmd/genjwks
4545+export TANGLED_OAUTH_JWKS="$(./genjwks.out)"
4646+4747+# run redis in at a new shell to store oauth sessions
4848+redis-server
4949+```
5050+3551## running a knot
36523753An end-to-end knot setup requires setting up a machine with
···7187git remote add local-dev git@nixos-shell:user/repo
7288git push local-dev main
7389```
9090+9191+## running a spindle
9292+9393+The above VM should already be running a spindle on
9494+`localhost:6555`. You can head to the spindle dashboard on
9595+`http://localhost:3000/spindles`, and register a spindle
9696+with hostname `localhost:6555`. It should instantly be
9797+verified. You can then configure each repository to use this
9898+spindle and run CI jobs.
9999+100100+Of interest when debugging spindles:
101101+102102+```
103103+# service logs from journald:
104104+journalctl -xeu spindle
105105+106106+# CI job logs from disk:
107107+ls /var/log/spindle
108108+109109+# debugging spindle db:
110110+sqlite3 /var/lib/spindle/spindle.db
111111+112112+# litecli has a nicer REPL interface:
113113+litecli /var/lib/spindle/spindle.db
114114+```