From d504fce09be8ee61c13049a01455c2eb9e8169c6 Mon Sep 17 00:00:00 2001 From: MNeverOff Date: Sun, 14 Apr 2024 21:10:40 +0100 Subject: [PATCH] Updated to match ateodorescu latest ipmi-server 1.2.7 and added a 300s timeout for fastcgi --- .gitignore | 1 + README.md | 19 +++++++++++++++++-- rootfs/app/src/Controller/IpmiController.php | 2 +- rootfs/etc/nginx/servers/ipmi.conf | 3 +++ 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index e69de29..496ee2c 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store \ No newline at end of file diff --git a/README.md b/README.md index a520462..dde6c24 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ It was initially inspired by the [home-assistant-ipmi](https://github.com/ateodo ## How to use -You can find full installation guide in my blog: [neveroff.dev/blog/ipmi-control-in-apple-home/](neveroff.dev/blog/ipmi-control-in-apple-home/) +You can find full installation guide in my blog: [neveroff.dev/blog/ipmi-control-in-apple-home/](https://neveroff.dev/blog/ipmi-control-in-apple-home/) ### Docker Compose @@ -60,6 +60,21 @@ To integrate it with HomeAssistant you can use [home-assistant-ipmi](https://git If you want to build this container yourself feel free to use the snippet below, replace the -tag definitions as you please. For buildx reference look [here](https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/). +```bash +docker buildx build \ + --platform linux/amd64 \ + --build-arg BUILD_ARCH=amd64 \ + --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \ + --build-arg BUILD_REF=$(git rev-parse --short HEAD) \ + --build-arg BUILD_VERSION=1.0.0 \ + --build-arg BUILD_REPOSITORY="mneveroff/ipmi-server" \ + --tag mneveroff/ipmi-server:latest \ + --tag mneveroff/ipmi-server:1.0.0 \ + --load . +``` + +Or to build and push: + ``` bash docker buildx build \ --push \ @@ -92,4 +107,4 @@ To ensure that you can build for multiplatform you need to enable `docker buildx Replace the repository, and ``:`` respectively -The resulting docker container can to be used with `-p 9595:80` if you want to quickly test it against `localhost:9595` +The resulting docker container can to be used with `-p 9595:80` if you want to quickly test it against `localhost:9595` via `docker run -p 9595:80 mneveroff/ipmi-server:latest` diff --git a/rootfs/app/src/Controller/IpmiController.php b/rootfs/app/src/Controller/IpmiController.php index e27a184..c642bf0 100644 --- a/rootfs/app/src/Controller/IpmiController.php +++ b/rootfs/app/src/Controller/IpmiController.php @@ -21,7 +21,7 @@ class IpmiController 'fan' => 'RPM' ]; private array $debug = []; - const COMMAND_TIMEOUT = 50; + const COMMAND_TIMEOUT = 600; const DEFAULT_PORT = 623; const DEFAULT_USERNAME = 'ADMIN'; diff --git a/rootfs/etc/nginx/servers/ipmi.conf b/rootfs/etc/nginx/servers/ipmi.conf index ea0d506..90a2d21 100644 --- a/rootfs/etc/nginx/servers/ipmi.conf +++ b/rootfs/etc/nginx/servers/ipmi.conf @@ -17,6 +17,9 @@ server { fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; + # Increase timeout to 600 seconds to account for slow IPMI clients + fastcgi_read_timeout 600; + # optionally set the value of the environment variables used in the application # fastcgi_param APP_ENV prod; # fastcgi_param APP_SECRET ;