Project update: the report is now able to compare if the remote server is using the NixOS version we built locally. This is possible as NixOS builds are reproducible, I get the same result on the server and the remote system.
The tool is getting in a better shape, the code received extra checks in a lot of place.
A bit later (blog post update), I added the possibility to trigger the update from the user.
With systemd it's possible to trigger a command upon connecting on a socket, I made bento systemd service to listen on port TCP/51337, a connection would start the service "bento-update.service", and display the output to the TCP client.
This totally works in the web browser, it's now possible to create a bookmark that just starts the update and give instant feedback about the update process. This will be particularly useful in case of a debug phone session to ask the remote person to trigger an update on their side instead of waiting for a timer.
It is now possible to differenciate the "not up to date" state into two categories:
The "sync pending" is very fast, it only need to copy the files, but won't rebuild anything.
machine local version remote version state time ------- --------- ----------- ------------- ---- kikimora 996vw3r6 996vw3r6 π sync pending π© (build 5m 53s) (new config 2m 48s) nas r7ips2c6 lvbajpc5 π rebuild pending π© (build 5m 49s) (new config 1m 45s) t470 ih7vxijm ih7vxijm π up to date π (build 2m 24s) x1 fcz1s2yp fcz1s2yp π up to date π (build 2m 37s)