The use case for an official image is the same as the use case for an tiddlywiki saver or web clipper – even if its the same saver or web clipper solution – people feel more comfortable with one-stop solutions than 3rd party solutions. The scavenger hunt approach to everything does not breed confidence in the project. Having a sanctioned solution helps funnel more people and support to that solution.
If you’re talking about the use-case for a docker solution in particular, then arguably not having to worry about NVM, NPM, and node eases some of the headache of the node.js installation. In my case, I combined it with tailscale so I can feel relatively confident of running it as a server inside it’s own network.
For those who aren’t familiar, the general workflow for using a docker solution is
- Install Docker, of course
- Download 1 or two text files (typically docker-compose.yml and .env)
- Configure variables in the file for your setup to specify things like ports or where your tiddlers live
- Give a command:
docker compose up -d
Your app is now running, and you can access it typically using whatever server port you specified. Yes, you can digress in ten different directions, but that’s a pretty common way to use it. Depending on your compose file, updating can be as simple as bringing your instance down and then back up again.
Docker communicates with the world through either ports, sockets, or file directories, limiting the attack surface.
Everything lives in the Docker container, meaning the solution is easy to upgrade and easy to port to a different machine. In theory that other machine could be on a completely different o/s and architecture.
I guess a really good special edition for tiddlywiki would bundle tiddlywiki with caddy so people could easily use it as a server and have the SSL taken care of.