SciFiFarms / TechnoCore

TechnoCore: an IoT stack powered by Docker Swarm
GNU General Public License v3.0
20 stars 1 forks source link

Support Windows(Or universal) installation #10

Open TheHackmeister opened 6 years ago

TheHackmeister commented 6 years ago

Currently, Althing is written in Bash, and thus only supports Linux. Docker runs on Windows, so I think all that would be necessary is repeating the steps taken in the current installer, just with PowerShell rather than Bash.

greatbacon commented 6 years ago

I've just taken a spin with the bash installer on a Mac, and there's a couple of slight differences between the two OS's that are also causing some issues. As part of making althing available on Windows, it might be worth it to just port & refactor the installer into a more OS agnostic lang like python or node.

TheHackmeister commented 6 years ago

Sweet! Thanks for giving it a go. What issues did you run into?

I had considering an installer in python, but I didn't want to add the dependency to the project. It's a (mostly) safe assumption for Linux and OS X, but I don't think python is on Windows to the same degree. With that said, I could see how writing one installer for all three is DRY.

My biggest concern is that making users install python is not user friendly. But come to think of it, I'm pretty sure there is some non-user friendly nonsense that has to happen in order to run a PowerShell script. There are some multi-platform installers out there, we should look into if any of them are open source or free for open source projects to use.

greatbacon commented 6 years ago

So far I think there's a syntax error in one of the grep commands that pollutes the output, and there's some cert files that didn't install properly, so I still haven't actually gotten the stack up and running (which might be a discussion for a different issue, haha)

Yeah, if we can find a multi-platform installer that doesn't force a user to download anything other than the package, that can go a long way to improving usability.

Another thought I just had is that using Docker (especially on windows) also raises the minimum technical competency required for a user to get started with the app, since not all windows machines can support it by default and for users on other machines it is still a relatively new technology.

TheHackmeister commented 6 years ago

Sorry about the syntax error! I can't say I'm really surprised though. When I wrote the installer, I wasn't thinking about OS X. If you send the error my way, I'm happy to lend some thoughts on what might be going on.

You bring up an interesting point about Docker compatibility for Windows. At work, we're using Docker for Windows, but only half the office can use it because only half the office has Windows 1709 (Fall Creator). I'm not sure if that requirement is only for running Windows images/containers, or if it is for running Linux containers too.

I'm glad you brought up minimum technical competency because it made me realize I've been picturing DIYers using Althing... At least at first. A big part of that is because we have to muck with code to set up the ESP8266s (#3 ).

I did some poking around and found these multi-platform installers: DCP Setup Maker IzPack InstallBuilder (Can apply for an open source licence)

TheHackmeister commented 5 years ago

9 months later, I figured it's time for an update on where the universal installer is at. I'm in the middle of shifting from a single installer to migrations that get run on the services. My hope is that this will allow all the initialization to happen in a consistent environment, and eliminate the need for the installer to be cross platform. See https://github.com/SciFiFarms/TechnoCore/issues/14 for more about finishing the installer.