AkashNS - Making Node.js deployments easier

Personally, I love the idea of using networks like Akash or Golem for personal projects, but I have been super intimidated by actually learning how to use Docker. It isn’t that hard once you actually start to use it, but beginners who have made some console applications might think just like me, and be scared from using the platforms.

Then, we lose innovation - people start requesting more than they are developing, so more tasks are being hosted, but fewer tasks are being made. Hackathons, bounties, and similar challenges are all built to create innovation and this is what I urge to follow.

In the Built to Explore & Encode hackathons for Skynet, I was the first person to dabble with the idea of using Skynet for multiplayer games. I had the same idea years prior, utilizing other services, but I never put the idea to use until I found Skynet.

Arguably, I might not have had the best execution - I was new to both Github and web development at the time, so I didn’t know the systems that well, and that’s the case for this project too. That’s why I have broken my project down into multiple steps so I can actually make sure I can deliver on my promises.

I dislike abandoning my projects, but there is also a lot I have to learn to pull off every update here that I haven’t done before, so we’ll see how far I can take it - especially within the deadline :sweat_smile:

With that said, here are the steps I have thought of, and this list may grow over time with suggestions or self-explanatory development goals:

  • Minimum Viable Product
    Here, I will have a product that works with most applications but doesn’t have the best design. Users will have to build their own images, but they will not have to deal with the challenges that come with dockerizing an application. One demo example will be showcased in this stage.

  • Update 1
    I will try to include environment variables in the first update, as then people would only have to change the deployment .yml file with a few different variables rather than rebuilding their own images. This makes it so that most people with a decent tech understanding will be able to utilize the Akashlytics Deployment Tool along with a tiny guide to getting their app hosted on Akash.

  • Update 2
    In the second update, I will make it be possible to request docker images running through the web, with specific environment variables, ports if it’s needed, and many similar tweaks. People will be able to upload their scripts directly in their browser instead of doing it manually.

  • Update 3
    More polishing will be applied, more simple guides will be made, it will be possible to drag and drop a node script, specify packages, and just run it. There might be more images built for other applications - so that not only node scripts are, and there might be a lot of more solutions put to work.

EDIT: I also want to utilize SkyDB functionality for deployment updates, to limit the need of stopping & starting. This will likely be in stage 2 or 3.

EDIT2: Obligatory rename because there was an AkashJS library already :smiley:

EDIT3: It’s live on Github now along with instructions & a feature list.

EDIT4: I published a video demo now. I had some technical issues especially at the end so excuse any rough cuts. The MVP is too rough to be usable for most people anyway, so a better guide will come once it’s easier to use. If you want to see the bot in action, please join this Discord server.

EDIT5: I realized that my workflow doesn’t really work through Node & environment variables purely, so I’m considering setting up a main server handling all requests via SSH, and SSHing into each individual servers to install all packages, download all files, etcetera. This will make for a large update at once basically skipping to the second update phase. It will be much easier to manage with this in mind, though, so we should be excited for that :slight_smile: Advanced settings will also be able to be setup, basically giving SSH access to the user!

1 Like