Skip to content

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-context in a terminal for example)
  • Follow Epinio official quickstart

Presentations

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.