Need help with teresa?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

538 Stars 81 Forks Other 1.1K Commits 20 Opened issues


Open source tool to deploy apps to Kubernetes clusters

Services available


Need anything else?

Contributors list


Release Software License Build Status codecov Go Report Card

Teresa is an extremely simple platform as a service that runs on top of Kubernetes. It uses a client-server model: the client sends high level commands (create application, deploy, etc.) to the server, which translates them to the Kubernetes API.

Client Installation

Download (recommended)

This is the best way to get the latest release.

  • Access
  • Download the latest release for your OS. Eg:
  • Rename the download file to
    . Eg:
    mv teresa-linux-amd64 teresa
  • Make it an executable. Eg:
    chmod +x teresa
  • Move it to the
    folder. Eg:
    sudo mv teresa /usr/bin

Then you're good to go :slightlysmilingface: !

should now be available to use on your terminal.


Run the following in your command-line:

$ brew tap luizalabs/teresa-cli
$ brew install teresa


Run the following in your command-line:

$ sudo snap install teresa-cli

Server Installation

Server requirements:

  • Kubernetes cluster (>= 1.9)

  • database backend to store users and teams (SQLite or MySQL)

  • storage for build artifacts (AWS S3 or minio)

  • rsa keys for token signing

  • (optional) TLS encryption key and certificate

The recommended installation method uses the helm package manager, for instance to install using S3 and MySQL (recommended):

$ openssl genrsa -out teresa.rsa
$ export TERESA_RSA_PRIVATE=`base64 -w0 teresa.rsa`
$ openssl rsa -in teresa.rsa -pubout >
$ export TERESA_RSA_PUBLIC=`base64 -w0`
$ helm repo add luizalabs
$ helm install luizalabs/teresa \
    --namespace teresa \
    --set rsa.private=$TERESA_RSA_PRIVATE \
    --set rsa.public=$TERESA_RSA_PUBLIC \
    --set aws.key.access=xxxxxxxx \
    --set aws.key.secret=xxxxxxxx \
    --set aws.region=us-east-1 \
    --set aws.s3.bucket=teresa \
    --set \
    --set db.hostname=dbhostname \
    --set db.username=teresa \
    --set db.password=xxxxxxxx \
    --set rbac.enabled=true

Look here for more information about helm options.

You need to create an admin user to perform user and team management:

$ export POD_NAME=$(kubectl get pods -n teresa -l "app=teresa" -o jsonpath="{.items[0]}")
$ kubectl exec $POD_NAME -it -n teresa -- ./teresa-server create-super-user --email [email protected] --password xxxxxxxx


Read the first sections of the FAQ.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.