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.
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! :)
- demo-python - Basic Python 3 Example
- demo-python-persistent - Basic Python 3 Example with state
- demo-nodejs - Basic NodeJS/ES6 Example
- demo-nodejs-persistent - Basic NodeJS/ES6 Example with State
- 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.
- Homepage: https://www.stackhut.com
- User Manual & Docs: http://docs.stackhut.com
- GitHub Issues
- GitHub Wiki
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.
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 withbrew upgrade stackhut/stackhut/toolkit
- make sure you have an up-to-date brew withbrew update
) - Download and run the latest
.pkg
file from the releases page (standalone that you can remove simply bysudo rm -rf /usr/local/bin/stackhut /usr/local/opt/stackhut
) - Download and unpack the portable
.txz
-archive from the releases page
- Using brew -
- Linux
- Download and unpack the portable
.txz
-archive from the releases page
- Download and unpack the portable
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 justpip3 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).
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)
An in-depth tutorial showing how to create, call and deploy a simple service can be found in the User Manual.
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.