Skip to content
This repository has been archived by the owner on May 10, 2023. It is now read-only.

nstack/stackhut

Repository files navigation

StackHut Platform

Deploy classes as Microservices

Notice: The classical python "StackHut Toolkit" is deprecated, in favor of a more robust, compiled implementation. This here is kept for historical purpose, and unfortunately will not receive any significant work/love going forwards. We will however have a new open-source implementation that you can follow available shortly.

image Documentation Status

StackHut is a platform to develop and deploy microservices without writing any server-logic. It takes a regular class (in Python or JavaScript for now), a YAML file describing your stack, and deploys a microservice whose functions can be called natively in other languages, or through REST. StackHut is pure Software Defined Infrastructure, and abstracts away web-frameworks, servers, and infrastructure entirely.

The stackhut command tool provides CLI functionality into creating, running, and deploying StackHut images. Available to download in both source and binary form for Linux and OSX (Win support on the way). Free software under the Apache license.

Happy hacking! :)


Related Repos

Client Libraries

Samples

Basic Examples

More Complex Examples

  • pdf-tools - PDF Rendering-as-a-Service
  • image-process - Image Processing-as-a-Service using ImageMagick
  • web-tools - Remote Web-Rendering and tooling using PhantomJS
  • media-download - youtube-dl-as-Service to download media from online sites (may be blocked from services from time to time)
  • t-shirt-aaS - Not yet live

All of these services are all live and running under the stackhut namespace, i.e. stackhut/servicename, and can be called and tried out. You can call them using any of the client libraries or curl as described in the StackHut documentation.

Useful Links


Getting started

Installing the toolkit

All releases can be found on this repo's release page. Detailed install instructions can be found in the User Manual.

Note - StackHut requires Docker to be installed - on OSX/Windows download Docker Toolbox and on Linux we recommend using your distro version.

Binary/Standalone Install

You can download a standalone executable for Linux and OSX.

  • On OSX there are three binary install methods:
    • Using brew - brew install stackhut/stackhut/toolkit (a 3rd-party tap you can also upgrade with brew upgrade stackhut/stackhut/toolkit - make sure you have an up-to-date brew with brew update)
    • Download and run the latest .pkg file from the releases page (standalone that you can remove simply by sudo rm -rf /usr/local/bin/stackhut /usr/local/opt/stackhut)
    • Download and unpack the portable .txz-archive from the releases page
  • Linux
    • Download and unpack the portable .txz-archive from the releases page

Source Install

Alternatively, source builds are always available using pip and are the recommended way to install if you already have Python 3:

  • On OSX, brew install python3; pip3 install stackhut --user (or just pip3 install stackhut --user if you already have Python 3),
  • On Linux, pip3 install stackhut --user (you may need to install Python 3 first - it's installed by default on newer distros).

Developer Install

Want to run the latest code from Git? Awesome!

  • clone this repo - git clone git@github.com:StackHut/stackhut-toolkit.git
  • cd stackhut-toolkit
  • pip3 install -r ./requirements.txt (Install the dependencies)
  • python3 ./setup.py develop --user (you may need to re-run this command occasionally after updating from git)

Follow the tutorial

An in-depth tutorial showing how to create, call and deploy a simple service can be found in the User Manual.


Contributing

Contributions are welcome, and greatly appreciated! Every little bit helps us approach the NoOps dream, and credit will always be given :)

Please see CONTRIBUTING.md for more info.