Apps are an abstraction that represents your applications on Koyeb. They are the primary top-level resource managed by organizations.
The main purpose of an App is to act as a container for Services and custom domains.
Each App can define up to 16 Services. Each Service represents a component of your application like web services, APIs, or workers. They can be deployed from either a GitHub repository or container registry to one or more global regions.
You can scale Services according to your performance and availability needs. Each service is automatically versioned to provide full traceability. Services consist of your project's code along with the configuration to control how it runs.
You can configure Services to automatically redeploy to production whenever you push changes to your codebase.
Koyeb automatically assigns a publicly accessible subdomain of the
koyeb.app domain to each App.
This subdomain is constructed using the following format:
You also have the option to add additional custom domains to your App, which provides gives you greater flexibility in configuring access to your Apps and Services.
Koyeb's Global Edge Network can quickly route request to your App from anywhere in the world. The network provides 250+ edge locations, automatic load balancing for your App's Services, and TLS encryption.
The network also provides edge caching so that your content is always available close to your users.
Internally, Koyeb Apps have access to a service discovery engine and mesh network. This allows Services to easily contact other Services within and across your various Apps, regardless of the region they are deployed in. All communication within the mesh is automatically encrypted.
An App's health is determined by the health of its Services.
If any of the App's Services are unhealthy, the App's health will be marked as degraded or unhealthy. You can learn more on the health check page.