Pulumi code for my server setup
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add prometheus and grafana

+40
+40
src/index.ts
··· 75 75 `--certificatesresolvers.cloudflare.acme.email=${getEnv("EMAIL")}`, 76 76 "--experimental.plugins.cloudflarewarp.modulename=github.com/BetterCorp/cloudflarewarp", 77 77 "--experimental.plugins.cloudflarewarp.version=v1.3.3", 78 + "--metrics.prometheus=true", 79 + "--metrics.prometheus.addEntryPointsLabels=true", 80 + "--metrics.prometheus.addServicesLabels=true", 81 + "--metrics.prometheus.addRoutersLabels=true", 82 + "--metrics.prometheus.buckets=0.1,0.3,1.2,5.0", 83 + "--metrics.prometheus.manualRouting=true", 78 84 ], 79 85 labels: { 80 86 "traefik.http.middlewares.httpsredirect.redirectscheme.scheme": "https", ··· 88 94 89 95 "traefik.http.routers.traefik.service": "api@internal", 90 96 "traefik.http.routers.traefik.middlewares": "auth", 97 + 98 + "traefik.http.routers.metrics.service": "prometheus@internal", 99 + "traefik.http.routers.metrics.rule": "Host(`metrics.bas.sh`)", 100 + "traefik.http.routers.metrics.entrypoints": "https", 101 + "traefik.http.routers.metrics.middlewares": "auth", 91 102 }, 92 103 }); 93 104 ··· 313 324 "ENABLE_CJK_FONT=1", 314 325 ], 315 326 }); 327 + 328 + const prometheusService = await ContainerService.create("prometheus", { 329 + image: "prom/prometheus", 330 + webPort: 9090, 331 + mounts: [dockerConfMount("prometheus", "/etc/prometheus")], 332 + volumes: [ 333 + { 334 + volumeName: "prometheus", 335 + containerPath: "/prometheus", 336 + }, 337 + ], 338 + command: [ 339 + "--config.file=/etc/prometheus/prometheus.yml", 340 + "--storage.tsdb.path=/prometheus", 341 + "--web.console.libraries=/etc/prometheus/console_libraries", 342 + "--web.console.templates=/etc/prometheus/consoles", 343 + ], 344 + middlewares: ["auth"], 345 + }); 346 + 347 + const grafanaService = await ContainerService.create("grafana", { 348 + image: "grafana/grafana-oss", 349 + webPort: 3000, 350 + mounts: [dockerConfMount("grafana", "/var/lib/grafana")], 351 + envs: ["GF_INSTALL_PLUGINS=grafana-piechart-panel"], 352 + extraContainerOptions: { 353 + user: "1000:1000", 354 + }, 355 + });