.DS_Store
 node_modules
 /dist
+/assets/config.ts
 
 # Created by git for backups. To disable backups in git:
 # $ git config --global mergetool.keepBackup false
 
 
 ## Project setup
 
+### Dependencies
+
 ```shell
 corepack enable
 corepack prepare pnpm@latest --activate
 pnpm install
 ```
 
-The simulator UI server must be enabled, use WebSocket and disable authentication. The simulator main configuration file should have a `uiServer` section like this:
+### Configuration
+
+#### Simulator UI Server Configuration
+
+The simulator UI server must be enabled, use WebSocket transport type and have authentication disabled. The simulator main configuration file should have a `uiServer` section like this:
 
 ```json
   "uiServer": {
 
 See [here](./../../README.md#charging-stations-simulator-configuration) for more details.
 
+#### Web UI configuration
+
+Copy the configuration template [assets/config-template.ts](assets/config-template.ts) to `assets/config.ts`.
+
 ### Run
 
-#### Compiles and run for production
+#### Compiles for production
 
 ```shell
-pnpm start
+pnpm build
 ```
 
-#### Compiles and run for development
+#### Compiles and preview locally for production
+
+```shell
+pnpm preview
+```
+
+#### Compiles and run for production
 
 ```shell
-pnpm serve
+pnpm start
 ```
 
 #### Try it out
 1. With the top 2 buttons you can now stop and afterwards start the simulator and inspect the server console for the number of charging stations, e.g. with the default configuration: `Charging stations simulator ... started with 10 charging station(s)`
 2. Each charging station is a row in the table below, try "Stop Charging Station" and refresh with the large blue button and see the status Started turns from Yes into No.
 
-### Compiles and minifies for production
+### Development
+
+#### Compiles and run for development
 
 ```shell
-pnpm build
+pnpm dev
+```
+
+#### Formats files
+
+```shell
+pnpm format
 ```
 
-### Lints files
+#### Lints and fixes files
 
 ```shell
-pnpm lint
+pnpm lint:fix
 ```
 
--- /dev/null
+import { AuthenticationType, type ConfigurationData, Protocol, ProtocolVersion } from '@/types'
+
+const configuration: ConfigurationData = {
+  uiServer: {
+    host: 'localhost',
+    port: 8080,
+    protocol: Protocol.UI,
+    version: ProtocolVersion['0.0.1'],
+    authentication: {
+      enabled: false,
+      type: AuthenticationType.BASIC_AUTH,
+      username: 'admin',
+      password: 'admin'
+    }
+  }
+}
+
+export default configuration
 
+++ /dev/null
-import type { ConfigurationData } from '@/types'
-
-const configuration: ConfigurationData = {
-  uiServer: {
-    host: 'localhost',
-    port: 8080,
-    protocol: 'ui0.0.1'
-  }
-}
-
-export default configuration
 
 import {
+  ApplicationProtocol,
   ProcedureName,
   type ProtocolResponse,
   type RequestPayload,
   type ResponsePayload,
   ResponseStatus
 } from '@/types'
+// @ts-expect-error: configuration file can be non existent
+// eslint-disable-next-line import/no-unresolved
 import configuration from '@/assets/config'
 
 type ResponseHandler = {
 
   private openWS(): void {
     this.ws = new WebSocket(
-      `ws://${configuration.uiServer.host}:${configuration.uiServer.port}`,
-      configuration.uiServer.protocol
+      `${configuration.uiServer.secure === true ? ApplicationProtocol.WSS : ApplicationProtocol.WS}://${configuration.uiServer.host}:${configuration.uiServer.port}`,
+      `${configuration.uiServer.protocol}${configuration.uiServer.version}`
     )
     this.ws.onmessage = this.responseHandler.bind(this)
     this.ws.onerror = errorEvent => {
 
+import type { AuthenticationType, Protocol, ProtocolVersion } from './UIProtocol'
+
 export type ConfigurationData = {
   uiServer: UIServerConfigurationSection
 }
 type UIServerConfigurationSection = {
   host: string
   port: number
-  protocol: string
-  username?: string
-  password?: string
+  secure?: boolean
+  protocol: Protocol
+  version: ProtocolVersion
+  authentication?: {
+    enabled: boolean
+    type: AuthenticationType
+    username?: string
+    password?: string
+  }
 }
 
 }
 
 export enum ApplicationProtocol {
-  HTTP = 'http',
-  WS = 'ws'
+  WS = 'ws',
+  WSS = 'wss'
 }
 
 export enum ProtocolVersion {
   '0.0.1' = '0.0.1'
 }
 
+export enum AuthenticationType {
+  BASIC_AUTH = 'basic-auth'
+}
+
 export type ProtocolRequest = [string, ProcedureName, RequestPayload]
 export type ProtocolResponse = [string, ResponsePayload]
 
 
 } from './ChargingStationType'
 export type { ConfigurationData } from './ConfigurationType'
 export {
+  ApplicationProtocol,
+  AuthenticationType,
   ProcedureName,
+  Protocol,
   type ProtocolResponse,
+  ProtocolVersion,
   type RequestPayload,
   type ResponsePayload,
   ResponseStatus