Epinio
Tame your developer workflow to go from Code to URL in one push.
Links: epinio.io, docs, repository
Getting started
Introduction
Epinio addresses the wish to hide all the complexity of building and deploying code. This subject was adressed before by Cloud Foundry, which got depecrated with the rise of Kubernetes.
Epinio is Cloud Native, free, open-source, simple solution that runs in a Kubernetes cluster. Its development is lead by SUSE.
Quick start
Tip
Use short name for the application name (less than 22) and do not use - to avoid Ingress issue (see application name restrictions).
- Make sure you have a Kubernetes cluster to work on and you are connected (by executing
kubectl config current-contextin a terminal for example) - Follow Epinio official quickstart
Presentations
- Youtube videos
- SUSECON - Customize your Developer Experience with Epinio - October 8, 2022
- SUSE Projects - Epinio demo: Wordpress on Digital Ocean - July 6, 2021
- Kubesimplify - Let's Learn Epinio - June 23, 2021
- SUSECON - Epinio Demo: Building a PaaS on Kubernetes using off-the-shelf components - November 10, 2021
Going further
Application examples
Tip
Delete local files before pushing the application if done from a developer workstation (see local files restriction).
| Language/Framework | Path | Details |
|---|---|---|
| Angular (TypeScript) | devpro/epinio-samples | Angular Web App (Single Page Application) |
| .NET (C#) | devpro/epinio-samples | ASP.NET 7 Web API (REST), ASP.NET Web App (Razor) |
| Go | epinio/golang-sample-app | |
| Java | spring-projects/spring-petclinic | Spring |
| JavaScript | ellisonleao/clumsy-bird | melonJS game engine |
| PHP | epinio/sample-app | phpinfo |
| Python | mageran/minio-epinio | Flask and Boto3 for the backend and Svelte for the UI |
| React | devpro/epinio-samples | React Web App (Single Page Application) |
| Ruby on Rails | epinio/example-rails | |
| Wordpress | epinio/example-wordpress | CMS written in PHP and using a MySQL database |
CLI
CLI cheat sheet
| Command | Action |
|---|---|
epinio app delete sample |
Delete an application |
epinio login -u admin 'https://<epinio_url>' |
Log in Epinio server |
epinio push --name sample --path sample-app |
Create or update an application from a local folder |
epinio settings show |
Display Epinio server information |
CLI examples
# creates an application from a remote git repository on a branch
epinio push --name dotnetapisample --git-provider github --git https://github.com/devpro/epinio-samples,feature/init-solution
# creates an application from a remote git repository
epinio push --name clumsybird --git-provider github --git https://github.com/ellisonleao/clumsy-bird
Helm chart
- devpro/helm-charts encapsulates Epinio Helm chart and provides concrete example of installation and use
Local cluster with K3D
Limitations
Application name restrictions
- Max length: There is an issue with Ingress if the application name is too long (reproduced with raspnetwebrazorsample which generated a service name like raspnetwebrazorsample-40251af7269c59d923bfa391bc241c7a320d332c, of 63 characters).
- Special characters: Avoid special character like
-
Local files restriction
Currently, there is no way to ignore local folders and files when pushing an application. This is a serious issue while working on a codebase using NPM packages because node_modules can easily be heavy.
This limitation is tracked by Issue #2589.