A naive imitation of app-runner for Go app (example).
-
GET /api/health
return health of go-runner -
POST /api/apps
register and deploy a go-appgitUrl
- git url to the app being deployedapp
- app name -
PUT /api/:app
operate a go-appaction
-deploy
orrestart
-
GET /api/:app/stdout
stream app stdout -
GET /api/:app/stderr
stream app stderr -
ANY /:app/*
access go-apps
- basic app CRUD
- unixsocket support in the back
- endpoint for streaming stdout/stderr of an app
- a cli client gorun
- init
- register
- push
- delete
- status
- curl
- https support in front
- tcp socket support in the back
- try using Namespace to isolate apps (ref: Linux Namespace)
- PID namespace
- filesystem
- try using cgroup to manage apps resources (ref: cgroup)
- cpu
- memory