So basically I made a small application a few years ago, and before releasing it to the public I want to change it so instead of it racking up fees on AWS, it processes data via a local server .
I'm going to bundle the server into a docker image, but I'm just imagining most people will have no idea how to get it running. Should I stop while I'm ahead?
I'm just worried about spending a lot of time on this, in realizing my target demographic ( musicians) will have no real idea how to use it.
In that case, docker is not necessarily the answer but it could help. Ultimately, you will need to put everything in a simple to install script and let them run locally. Even if you want to package using docker, you will need to create a script that will auto setup docker if not already present and then run it.
I will create a script for windows, mac and Linux (if your users also use Linux). Then in the README, provide instructions how to run that install script. Let the script take care of all lower level things like docker etc.
If you can package it into a standard app that would probably be much better for users.
I’m running my Plex server on my NAS with Docker, and have taken classes at work on Podman from Red Hat. For something I would want to use everyday on my laptop, I couldn’t be bothered to use Docker. It’s good at what it does, but it’s really not made for non-technical people, or people who aren’t interested in learning/managing it.
Docker is likely not the answer they're looking for, but you may want to ask your target audience rather than HN.
FWIW, for any software I would prefer distribution-first/source-first over Docker. Docker introduces complexities I don't want to solve for.
Running docker locally usually means messing around, sometimes troubleshooting and restarting the daemon.
Even if you make your app handle all the commands. It’ll end up not working and the user will give up. Even their technical relative may not be able to fix it!
Instead I would probably make the effort to create seperate Windows, Mac and Linux builds.
If it is a pure Node app for example this might help: https://nodejs.org/api/single-executable-applications.html#s...
There are probably similar options on other stacks.
Not being mean to musicians, this is true about just about everyone (even some developers).
Don't make your software architecture your user's concern. Package it in something that hides the client server architecture. Make them think it's just another app.
Why does everyone just assume they need to use AWS? Get a cheap VPS for projects like this. It's like $10 max all included.
https://www.serverhunter.com/#query=stock%3A%28in_stock+OR+u...
For example, let's say you upload a song that hasn't been released yet. If it goes to my-server.com and then something strange happens and it leaks it's my fault.
If instead it goes to localhost, that risk isn't there.
I totally understand not wanting to be responsible for their data, but you'd better be really sure that they understand how things work. Uploading to a web app makes people think their data is in the cloud. If you want their data saved locally, use a native UI that makes it clear they are saving a file to their system.
https://docs.python.org/3/library/zipapp.html