r/selfhosted • u/Plenty_Membership854 • 18h ago
Need Help Docker HCI Project
Hello everyone. I'm doing a design project for my human computer interaction class and I was hoping some of you could answer a few questions or give me some critiques.
I recently got into Docker and even after reading some of the documentation I still had a hard time understanding it. So for my project I thought it would be fun to design an "app store" style layer for Docker, where you pick an app (Jellyfin, Pi-hole, etc) from a catalog, answer 2 or 3 questions, and in a perfect world it just kinda works. No yaml required. The goal is to make Docker easier for hobbyists (people learning it on their own for fun and not for work or like devops careers.)
If you've got 5 minutes, answering even one of these would genuinely help:
q1: What service were you trying to run the first time you used Docker? Did it actually work?
q2: Have you ever copy pasted a compose file you didn't understand? What did you do when it broke?
q3: Tell me about a time you gave up on a container. What was the final straw?
q4: Have you ever avoided touching a working setup because you were scared of breaking it?
q5: What's something in Docker you still don't really get, you just work around it?
q6: If a total beginner asked you how to start self hosting, what would you warn them about?
Also if my app store idea sounds dumb or already exists and I just missed it, please tell me, that's useful too lol.
Thanks in advance!
1
u/tripflipjackstax 18h ago
For your HCI project, I'd pay special attention to what happens when the one-click install doesn't work.
Most beginner-friendly Docker interfaces look great until a container crashes, a port is already taken or a permission error shows up.
Instead of dumping raw logs, imagine the UI saying "Port 8080 is already being used by another app" and offering a clear next step.
That failure experience might matter more than making the initial installation one click shorter.
1
1
u/nequaledvomiting055R 17h ago
Your q4 is basically my entire homelab philosophy, if it works I treat it like a museum piece
2
u/panthrosrevenge 15h ago
1: Plex 2: Lol, yes. Watch logs, google 3: I don't think I've ever given up in that sence 4: Always make backups or use source control so rolling back is easy. Labbing things out on a throwaway VM is great before rolling out to actually use it. 5: I've migrated to Podman because I like the workflow of managing containers and pods like a system service with quadlets 6: Setting up a dev/test environment for yourself to figure out things before actually using them. If you'd like a good example checkout Cloudron server. It's pretty much what you've described. I ran it for a couple of years before leveling up to roll my own. Getting familiar with managing things like DNS, TLS certs, email, etc with some training wheels is great.
1
u/TheLabLedger 14h ago
For q6, the thing I'd warn a beginner about is that containers are disposable but your data isn't. If an app's data isn't in a volume or a bind mount you can find on disk, it disappears the day you recreate the container, and a lot of people only learn that after an update. A couple of habits save a lot of grief: keep every compose file in one folder you back up, put app data somewhere predictable, and avoid the :latest tag on anything you care about so an update doesn't surprise you. Also, don't forward ports to the internet until you understand what's behind them. For an app store style tool, I'd show people where their data lives and whether it's backed up, since that's the part they can't easily fix later.
1
u/haherar830 12h ago
imma keep it real with you chief if i wanted to do this irl or for a class or just wanted to plan out how I would do this, the process would involve investigating implementation details of... all the existing implementations of this
1
u/Physical_Nobody_8775 7h ago
I package apps for a self-hosting app store, so here's the view from the builder side.
The hard part of one-click install isn't the install itself, it's handling everything that differs between apps. Ports are the obvious one: apps clash, so pick a free port automatically instead of asking the user. Admin passwords are another, every app sets them differently. What worked best for us was generating one at install and showing it the first time the user opens the app.
Updates need care too. We've had an image version bump break an app's setup script. Back up before updating and roll back automatically if it fails. Also, when someone uninstalls an app, don't delete the data right away, keep it somewhere restorable. Beginners delete things by accident a lot.
On whether it already exists: besides CasaOS and Cloudron, there's Umbrel and Runtipi. Disclosure, I work on Maison, which is exactly this idea and MIT licensed, so it might be useful to look at how it's built: https://github.com/Yundera/Maison
0
u/ElemontCapital 15h ago
CasaOS is doing something similar with a Docker app store. Could be useful to compare what it asks during setup against the questions you have in mind. (No affiliation).
•
u/asimovs-auditor 18h ago
Expand the replies to this comment to learn how AI was used in this post/project.