```
:::notes
-- for example, adding a new PV to an LV and resizing the file system you can spend some time coming up with these commands
+- for example, adding a new PV to an LVM and resizing the file system you can spend some time coming up with these commands
- lots of possibilities for screwing up
- you can do it simply and safely with Cockpit like this → go to local browser
- Storage page, vg0 in Devices (top right), + in Physical Volumes, add sdb2
:::notes
- for configuring, extending, and embedding Cockpit you need to coarsely understand the components of it
- this: simplest structure, what I just showed you and what you will most probably see the first time you try it
-- browser only speaks HTTP and WebSocket, so you always need a web server, cockpit-ws
- all components in cockpit communicate to each other via a JSON protocol on standard pipes, usually stdio
- this provides a lot of flexibility and extensibility, as we'll see shortly
+- browsers and JS only speak HTTP and WebSocket, and can't directly talk to Linux system APIs
+- so you always need a web server somewhere, cockpit-ws
- ws roles: communicate with the browser for getting credentials: login page, krb negotiation, client cert
- ws: deliver HTML/js content, connects JSON protocol on the WebSocket to pipes to the other components; runs as unprivileged system user
:::
Linux session, it knows who I am
- put the whole auth structure inside out and instead run cockpit-ws as my user
inside my session
+- open --local-session in shell
- open localhost:9999 in firefox
- alarm bells: exposes my session to a TCP port without any auth
:::
- suddenly you end up with a halfway decent desktop app
- just the storage page, replacement for gnome-disks
- cockpit-desktop podman
+- cockpit-desktop is small shell script, feel free to inspect and bend to your will
:::
# Conclusion
- Authentication is very flexible
- Works with zero configuration
-- Can be arbitrarily embedded
+- Can be arbitrarily embedded and customized
:::notes
- Cockpit provides a set of standard auth protocols that are being used in