(options: SetupForwardAuthOptions)
| 89 | }; |
| 90 | |
| 91 | export const setupForwardAuth = async (options: SetupForwardAuthOptions) => { |
| 92 | const { serverId } = options; |
| 93 | const docker = await getRemoteDocker(serverId); |
| 94 | |
| 95 | const settings: CreateServiceOptions = { |
| 96 | Name: FORWARD_AUTH_SERVICE_NAME, |
| 97 | TaskTemplate: { |
| 98 | ContainerSpec: { |
| 99 | Image: FORWARD_AUTH_IMAGE, |
| 100 | Env: buildForwardAuthEnv(options), |
| 101 | }, |
| 102 | Networks: [{ Target: "dokploy-network" }], |
| 103 | Placement: { |
| 104 | Constraints: ["node.role==manager"], |
| 105 | }, |
| 106 | }, |
| 107 | Mode: { |
| 108 | Replicated: { |
| 109 | Replicas: 1, |
| 110 | }, |
| 111 | }, |
| 112 | }; |
| 113 | |
| 114 | try { |
| 115 | const service = docker.getService(FORWARD_AUTH_SERVICE_NAME); |
| 116 | const inspect = await service.inspect(); |
| 117 | await service.update({ |
| 118 | version: Number.parseInt(inspect.Version.Index), |
| 119 | ...settings, |
| 120 | TaskTemplate: { |
| 121 | ...settings.TaskTemplate, |
| 122 | ForceUpdate: inspect.Spec.TaskTemplate.ForceUpdate + 1, |
| 123 | }, |
| 124 | }); |
| 125 | console.log("Forward Auth Updated ✅"); |
| 126 | } catch (_) { |
| 127 | try { |
| 128 | await docker.createService(settings); |
| 129 | console.log("Forward Auth Started ✅"); |
| 130 | } catch (error: any) { |
| 131 | if (error?.statusCode !== 409) { |
| 132 | throw error; |
| 133 | } |
| 134 | console.log("Forward Auth service already exists, continuing..."); |
| 135 | } |
| 136 | } |
| 137 | }; |
| 138 | |
| 139 | export const removeForwardAuth = async (serverId?: string) => { |
| 140 | const docker = await getRemoteDocker(serverId); |
no test coverage detected