Home
Softono
podi

podi

Open source MIT Shell
15
Stars
3
Forks
0
Issues
1
Watchers
4 years
Last Commit

About podi

podi is a lightweight GitOps utility, approximately 7KB in size, that transforms servers into Platform-as-a-Service environments using only Git and SSH. It supports baremetal, podman, docker, kubernetes, and uses bubblewrap for sandboxing. The tool enables a Heroku-like deployment workflow by initializing a server over SSH, then deploying applications through Git pushes. It is multitenant, supporting multiple branches and SSH users simultaneously. Key features include a hackable PaaS and GitOps designer embedded directly in the repository, templates for containerizing applications and auto-suspending services, and a hookable system for extending deployments with custom build steps. Pre-built recipes cover baremetal and containerized runs, web CLI modes, port-activated autosuspend services, and docker-compose stacks. podi requires only SSH and Git to be installed on the target server. It runs efficiently on minimal hardware such as a Raspberry Pi Zero while scaling up to Kubernetes clusters. Custom recipes can

Platforms

Web Self-hosted Docker Kubernetes

Languages

Shell

Links

remove layers of complexity.

Usage

$ cd myapp 
$ wget "https://raw.githubusercontent.com/coderofsalvation/podi/master/podi"
$ chmod 755 podi

PROFIT! now init your (ssh)server to enable a heroku-ish workflow:

Features

  • fully hackable PaaS & Gitops-designer (embedded in your repo)
  • multitenant: multi-branch and multi-sshuser deployments
  • podi ls: gitops templates for containerizing, autosuspending services on baremetal/podman/docker etc
  • hookable (on build callmyfunction arg1)
  • podi weighs ~7k, just needs ssh+git installed
  • works on raspberry pi zero but also on kubernetes

Install

$ wget "https://raw.githubusercontent.com/coderofsalvation/podi/master/podi"
$ chmod 755 podi
$ ./podi
usage: 
    init git@server:/dir/to/deploy [branch] [port] [name]   initializes a deployment 
    recipe <name_or_url>                                    installs a recipe from podi repo or url

Hooks / extend deployments

Templates

$ ./podi init git@yourserver:/home/git/myapp master

 [✓] init
 [✓] init_localhost
  │  writing .pod/pipeline
 [?] how to run this app?
     1  run/baremetal                <--  perfect to run background services on lowend systems
     2  run/baremetal_autosuspend    <--  perfect for port-activated services on lowend systems
     3  run/baremetal_webcli         <--  perfect for outputting terminal-cmds to web
     4  run/container                <--  nice starting point for Dockerfile + app 
     5  run/container_autosuspend    <--  port-activated container, nice starting point for Dockerfile + app 
     6  run/container_webcli         <--  containerized cli, perfect for outputting terminal-cmds to web
     7  run/container_compose        <--  containerized stack, nice startingpoint using docker-compose.yml 
  > ▉  

IDEA: create your own! (see adding your own recipes )

Docs