Skip to main content

Application Hosting

Application Hosting allows you to deploy applications from source code right onto Sevalla infrastructure.

Within the context of Sevalla’s Application Hosting, an application is a set of instructions executed by a server to perform one or more tasks. Our current infrastructure is designed to serve and support the deployment of applications with a server behind the application.

For the best possible compatibility with our service, we recommend following the guidelines of The Twelve-Factor App (aka Cloud-Native apps).

Connect with other developers and find in-depth tutorials, tips, and best practices for applications in the Application Hosting category of our Sevalla Community forum.

Supported languages

With Application Hosting, you can deploy almost any application from a public or private Git repository or Docker image. If you use a Docker image, it must use a Linux/amd64 architecture; you don’t need to select the build package, as the Docker image contains everything you need, including the code, runtime, libraries, dependencies, and configuration files. If you use a Git repository, you must also choose a build package to build your application. Sevalla supports the following languages through the Nixpacks or Buildpacks build packages:

  • Clojure
  • Cobol
  • Crystal
  • C#/.NET
  • Dart
  • Deno
  • Elixir
  • F#
  • Go
  • Haskell
  • Java
  • Lunatic
  • Node.js
  • PHP
  • Python
  • Rust
  • Swift
  • Scala
  • Zig

Using a Dockerfile

You can deploy an application through Docker using a Dockerfile, which means you can package any configuration you’d like, and we’ll be able to run it for you. We also have hello world repositories with Dockerfiles.

Quick start templates

We have Quick Start Templates available for these and other supported languages and frameworks, including some examples of how to send emails using PHP or Node.js.

Git service providers

When you add an application, you can use a public or private Git repository or Docker image. If you use a public Git repository, you need the URL and branch of the repository. If you want to use a private Git repository, you’ll need to select a Git service provider and repository from your account. You can choose from any (or all) of the following:

Docker images

When you add an application, you can use a public or private Git repository or Docker image. If you use a public Docker image you need the path to the Docker image. If you want to use a private Docker image, you must add your registry credentials within Company settings > Registry credentials. You can choose from any (or all) of the following registries:

  • GitHub (ghcr.io)
  • GitLab (registry.gitlab.com)
  • Docker Hub (docker.io)

Pricing

Application Hosting is usage-based, so you only pay for the resources your application uses, based on the following:

  • Bandwidth (egress only)
  • Build time
  • Application hosting pod usage

For information about how we calculate these, refer to Application Pricing.

Important notes

Please keep the following in mind:

  • During build time and runtime, your processes will have root access to their container. Our containers are isolated horizontally and vertically, providing sufficient protection even in this scenario. Regardless, root access is not advised, and we will likely remove that ability in the future, so please do not rely on having root access in the runtime environment of your application. You cannot install packages via root access.

Troubleshooting

If you’re having any trouble deploying your application, here are some important things to keep in mind and troubleshooting tips:

  • Pods and processes running within them are ephemeral, which means that they cannot be used in place indefinitely and cannot be used to store data such as uploaded images, videos, etc. Files related to user content should be stored in persistent storage or third-party storage locations.
  • If your application deployment fails during rollout, or your application fails to build, check out our guide for Failed Deployment.
  • If you need to pause your application while you troubleshoot errors, you can do so on the Application Settings page (Applications > appname > Suspend application).
  • Your application’s runtime logs can be found on the Logs page (Applications > appname > Logs).