I think having a single-page website is very valuable since it will allow people to use this as a homepage in any browser, without requiring an extension to be installed.
Another suggestion, now that I have this set as homepage, is to reduce the load time as much as possible. I expect it to load instantaneously, with no javascript or custom fonts - those are luxuries :) Ideally generate a static page for each book and serve one randomly.
Preferably on the right hand side, that removes the drivers from the equation (most cars only have a single occupant), and it stops cars from having to cross the bike lane.
The bike lane is behind the parked cars next to the pedestrian area (and a little bit lower), you can see a cyclist on the left hand side of the picture.
Nicely done! The idea of using localstorage has been mentioned a couple times, For a couple fields localstorage does make sense. We were aiming more of a Firebase like backend support so that one is able to send out just links to invoices.
HN community has definitely given us a few ideas and we look forward to implement a couple of those.
I actually do this on my personal server because more than one public wifi (and one of my previous jobs, at a public high school) disallowed outbound 22 connections.
Sure, it'll not stop dedicated manual intrusion attempts, but it will actually prevent a ton of automated bots from even just trying to connect with common passwords through SSH.
2222 is a dumb choice as an alternative port, it's both obvious and quite commonly used. I'm using a port on 4XXXX-range that's normally not used for anything and therefore not scanned by the bots unless all the 65536 ports are. The automated login attempts disappeared almost immediately, except for a few that were quickly blocked.
Now the logs are clean from automated login bots, the only thing left are real dedicated hacking attempts that is worth pursuing further.
Here's something I wrote very quickly (bash script): https://github.com/vahek/vSetup
It does most of the stuff mentioned in the post, however doesn't setup automatic updates or Logwatch.
(to both corin and vahe): That kind of shell scripting is the horrorshow that motivated configuration management tools* in the first place. Shell scripts require a lot of added complexity to manage multiple heterogeneous servers, or to be idempotent.