From e4486b1bb492fc0b9850648e8aabceacbc4da76c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0ediv=C3=BD?= Date: Sun, 1 Oct 2023 11:08:23 +0200 Subject: [PATCH] WIP: add domainname & dns to API, #11. --- OpenApi.yml | 8 ++++++ client/src/api/api.ts | 12 ++++++++ client/src/components/RoomInfo.vue | 10 +++++++ client/src/components/RoomsCreate.vue | 41 +++++++++++++++++++++++++-- client/src/store/state.ts | 5 ++++ internal/room/manager.go | 6 +++- internal/types/room.go | 3 ++ 7 files changed, 82 insertions(+), 3 deletions(-) diff --git a/OpenApi.yml b/OpenApi.yml index 21c1f4b..d39b0dc 100644 --- a/OpenApi.yml +++ b/OpenApi.yml @@ -477,6 +477,14 @@ components: $ref: '#/components/schemas/RoomMount' resources: $ref: '#/components/schemas/RoomResources' + domainname: + type: string + example: server.lan + dns: + type: array + items: + type: string + example: 1.1.1.1 browser_policy: $ref: '#/components/schemas/BrowserPolicy' diff --git a/client/src/api/api.ts b/client/src/api/api.ts index c830769..f638010 100644 --- a/client/src/api/api.ts +++ b/client/src/api/api.ts @@ -514,6 +514,18 @@ export interface RoomSettings { * @memberof RoomSettings */ 'resources'?: RoomResources; + /** + * + * @type {string} + * @memberof RoomSettings + */ + 'domainname'?: string; + /** + * + * @type {Array} + * @memberof RoomSettings + */ + 'dns'?: Array; /** * * @type {BrowserPolicy} diff --git a/client/src/components/RoomInfo.vue b/client/src/components/RoomInfo.vue index d65c01d..64f36f9 100644 --- a/client/src/components/RoomInfo.vue +++ b/client/src/components/RoomInfo.vue @@ -192,6 +192,16 @@ +
Network
+ + + +
Browser policy
-
-

Browser policy diff --git a/client/src/store/state.ts b/client/src/store/state.ts index 8bc22ad..43e91fd 100644 --- a/client/src/store/state.ts +++ b/client/src/store/state.ts @@ -77,6 +77,11 @@ export const state = { shm_size: 2000000000, devices: [], }, + + // eslint-disable-next-line + domainname: '', + // eslint-disable-next-line + dns: [], } as RoomSettings, videoCodecs: [ "VP8", diff --git a/internal/room/manager.go b/internal/room/manager.go index 9f2910d..0ef3727 100644 --- a/internal/room/manager.go +++ b/internal/room/manager.go @@ -566,7 +566,7 @@ func (manager *RoomManagerCtx) Create(settings types.RoomSettings) (string, erro Hostname: containerName, // Domainname is preventing from running container on LXC (Proxmox) // https://www.gitmemory.com/issue/docker/for-linux/743/524569376 - // Domainname: containerName, + Domainname: settings.Domainname, // List of exposed ports ExposedPorts: exposedPorts, // List of environment variable to set in the container @@ -605,6 +605,8 @@ func (manager *RoomManagerCtx) Create(settings types.RoomSettings) (string, erro DeviceRequests: deviceRequests, Devices: devices, }, + // DNS + DNS: settings.DNS, // Privileged Privileged: isPrivilegedImage, } @@ -803,6 +805,8 @@ func (manager *RoomManagerCtx) GetSettings(id string) (*types.RoomSettings, erro Labels: labels.UserDefined, Mounts: mounts, Resources: roomResources, + Domainname: container.Config.Domainname, + DNS: container.HostConfig.DNS, BrowserPolicy: browserPolicy, } diff --git a/internal/types/room.go b/internal/types/room.go index 4443d37..f14bcf8 100644 --- a/internal/types/room.go +++ b/internal/types/room.go @@ -99,6 +99,9 @@ type RoomSettings struct { Mounts []RoomMount `json:"mounts"` Resources RoomResources `json:"resources"` + Domainname string `json:"domainname,omitempty"` + DNS []string `json:"dns,omitempty"` + BrowserPolicy *BrowserPolicy `json:"browser_policy,omitempty"` }