Configuration in code
Ktor allows you to configure various server parameters, such as a host address and port, modules to load, and so on. The configuration depends on the way you used to create a server - embeddedServer or EngineMain.
embeddedServer, you can configure server parameters in code by passing the required parameters to the
embeddedServer function. The embeddedServer function accepts different parameters for configuring a server, including a server engine, a host and port to listen, and so on. In this section, we'll take a look at several examples of running
embeddedServer with different setting.
The code snippet below shows the basic server setup with the Netty engine and the
Note that you can set the
port parameter to
0 to run the server on a random port. The
embeddedServer function returns an engine instance, so you can get a port value in code using the ApplicationEngine.resolvedConnectors function.
In the example below, we've added the
configure parameter for configuring setting specific for a selected engine. You can learn more about configuring engines from Configure an engine.
The example below shows how to run a server with multiple connector endpoints using a custom environment represented by the ApplicationEngineEnvironment interface.
You can find the full example here: embedded-server-multiple-connectors.