Apps
Apps are an abstraction that represents your applications on Koyeb. They are the primary top-level resource managed by organizations.
Resources
The main purpose of an App is to act as a container for Services and custom domains.
Services
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.
Domains
Koyeb automatically assigns a publicly accessible subdomain of the koyeb.app
domain to each App.
This subdomain is constructed using the following format:
<YOUR_APP_NAME>-<YOUR_KOYEB_ORGANIZATION>-<HASH>.koyeb.app
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.
Networking
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.
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, in the region they are deployed in. All communication within the mesh is automatically encrypted.
App health
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.