()
| 84 | }; |
| 85 | |
| 86 | export const setupWebMonitoring = async () => { |
| 87 | const webServerSettings = await getWebServerSettings(); |
| 88 | |
| 89 | const containerName = "dokploy-monitoring"; |
| 90 | let imageName = "dokploy/monitoring:latest"; |
| 91 | |
| 92 | if ( |
| 93 | (getDokployImageTag() !== "latest" || |
| 94 | process.env.NODE_ENV === "development") && |
| 95 | !IS_CLOUD |
| 96 | ) { |
| 97 | imageName = "dokploy/monitoring:canary"; |
| 98 | } |
| 99 | |
| 100 | const settings: ContainerCreateOptions = { |
| 101 | name: containerName, |
| 102 | Env: [`METRICS_CONFIG=${JSON.stringify(webServerSettings?.metricsConfig)}`], |
| 103 | Image: imageName, |
| 104 | HostConfig: { |
| 105 | // Memory: 100 * 1024 * 1024, // 100MB en bytes |
| 106 | // PidMode: "host", |
| 107 | // CapAdd: ["NET_ADMIN", "SYS_ADMIN"], |
| 108 | // Privileged: true, |
| 109 | RestartPolicy: { |
| 110 | Name: "always", |
| 111 | }, |
| 112 | PortBindings: { |
| 113 | [`${webServerSettings?.metricsConfig?.server?.port}/tcp`]: [ |
| 114 | { |
| 115 | HostPort: webServerSettings?.metricsConfig?.server?.port.toString(), |
| 116 | }, |
| 117 | ], |
| 118 | }, |
| 119 | Binds: [ |
| 120 | "/var/run/docker.sock:/var/run/docker.sock:ro", |
| 121 | "/sys:/host/sys:ro", |
| 122 | "/etc/os-release:/etc/os-release:ro", |
| 123 | "/proc:/host/proc:ro", |
| 124 | "/etc/dokploy/monitoring/monitoring.db:/app/monitoring.db", |
| 125 | ], |
| 126 | // NetworkMode: "host", |
| 127 | }, |
| 128 | ExposedPorts: { |
| 129 | [`${webServerSettings?.metricsConfig?.server?.port}/tcp`]: {}, |
| 130 | }, |
| 131 | }; |
| 132 | const docker = await getRemoteDocker(); |
| 133 | try { |
| 134 | await execAsync( |
| 135 | "mkdir -p /etc/dokploy/monitoring && touch /etc/dokploy/monitoring/monitoring.db", |
| 136 | ); |
| 137 | await pullImage(imageName); |
| 138 | |
| 139 | const container = docker.getContainer(containerName); |
| 140 | try { |
| 141 | await container.inspect(); |
| 142 | await container.remove({ force: true }); |
| 143 | console.log("Removed existing container"); |
no test coverage detected