Shelf Dockered

I've been toying with Claude Code for the last week or two and found it quite helpful to vibe-code this project.
I've been a fan of Marc Barrowclift's project called Shelf, I set up his initial version 1.0 in 2018, but at the time I didn't want to pay for a EC2 instance just for that webpage and I didn't have any hardware for self-hosting.
Fast forward to 2025 some new updates to Barrowclift's Shelf repo alongside having several servers at home; re-ignited feeling to stand up my own Shelf page, and I tried to redeploy it on a fresh VM which unfortunately did not go well for me and after reading the manual several times I was not able to get it working (highly likely PEBKAC, but without the patience to determine that)
So here we are after 2 days of hitting Claude's 5 hour token limits several times and learning the hard way to properly prompt an LLM, I've been able to 'fork' Marc's original code, replace MongoDB with PostgreSQL and containerise it.
Here is the final output: https://shelf.timothyduong.me/
If you'd like to set this up for yourself on Docker, the Github repo for 'Shelf Docker' can be found at: https://github.com/mrtimothyduong/shelf-docker, otherwise you can always deploy the OG Shelf using NPM, MongoDB and NGINX.
During the whole 'vibe-code' session, I've learned a lot about the JavaScript and functions that Marc made, and some more about databases in such a short amount of time.
What's next for the project?
- I'd like to update the readme.md to make it more user friendly & post it to r/selfhosted
- Maintain the project: Update it alongside Marc's updates and see what assets can be re-used. Since it was a full vibe-code, I need to review and compare the code.
Thanks to Marc Barrowclift for the original code and giving me the motivation to give it a crack.