about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/monitoring/zabbix
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-08-14 00:20:49 +0000
committerAlyssa Ross <hi@alyssa.is>2019-08-14 00:23:16 +0000
commit4999a38db7c5de0ea9f514a12ecd4133cce647f3 (patch)
treebbb659ab07fda4c9b98053499b7e3f046ac6d5dc /nixpkgs/pkgs/servers/monitoring/zabbix
parentf9abd30e11337cf07034f2cc8ad1691aa4a69386 (diff)
parent8746c77a383f5c76153c7a181f3616d273acfa2a (diff)
downloadnixlib-4999a38db7c5de0ea9f514a12ecd4133cce647f3.tar
nixlib-4999a38db7c5de0ea9f514a12ecd4133cce647f3.tar.gz
nixlib-4999a38db7c5de0ea9f514a12ecd4133cce647f3.tar.bz2
nixlib-4999a38db7c5de0ea9f514a12ecd4133cce647f3.tar.lz
nixlib-4999a38db7c5de0ea9f514a12ecd4133cce647f3.tar.xz
nixlib-4999a38db7c5de0ea9f514a12ecd4133cce647f3.tar.zst
nixlib-4999a38db7c5de0ea9f514a12ecd4133cce647f3.zip
Merge commit '8746c77a383f5c76153c7a181f3616d273acfa2a'
Diffstat (limited to 'nixpkgs/pkgs/servers/monitoring/zabbix')
-rw-r--r--nixpkgs/pkgs/servers/monitoring/zabbix/2.0.nix92
-rw-r--r--nixpkgs/pkgs/servers/monitoring/zabbix/2.2.nix104
-rw-r--r--nixpkgs/pkgs/servers/monitoring/zabbix/3.4.nix41
-rw-r--r--nixpkgs/pkgs/servers/monitoring/zabbix/agent.nix38
-rw-r--r--nixpkgs/pkgs/servers/monitoring/zabbix/default.nix75
-rw-r--r--nixpkgs/pkgs/servers/monitoring/zabbix/proxy.nix79
-rw-r--r--nixpkgs/pkgs/servers/monitoring/zabbix/server.nix86
-rw-r--r--nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix16
-rw-r--r--nixpkgs/pkgs/servers/monitoring/zabbix/web.nix32
9 files changed, 251 insertions, 312 deletions
diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/2.0.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/2.0.nix
deleted file mode 100644
index ce660fa6e88b..000000000000
--- a/nixpkgs/pkgs/servers/monitoring/zabbix/2.0.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, postgresql, curl, openssl, zlib
-, enableJabber ? false, minmay ? null }:
-
-assert enableJabber -> minmay != null;
-
-let
-
-  version = "2.0.21";
-  branch = "2.0";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/zabbix/zabbix-${version}.tar.gz";
-    sha256 = "14g22x2zy5xqnh2xg23xy5gjd49d1i8pks7pkidwdwa9acwgfx71";
-  };
-
-  preConfigure =
-    ''
-      substituteInPlace ./configure \
-        --replace " -static" "" \
-        ${stdenv.lib.optionalString (stdenv.cc.libc != null) ''
-          --replace /usr/include/iconv.h ${stdenv.lib.getDev stdenv.cc.libc}/include/iconv.h
-        ''}
-    '';
-
-in
-
-{
-  recurseForDerivations = true;
-
-  server = stdenv.mkDerivation {
-    name = "zabbix-${version}";
-
-    inherit src preConfigure;
-
-    configureFlags = [
-      "--enable-agent"
-      "--enable-server"
-      "--with-postgresql"
-      "--with-libcurl"
-      "--with-gettext"
-    ] ++ stdenv.lib.optional enableJabber "--with-jabber=${minmay}";
-
-    postPatch = ''
-      sed -i -e 's/iksemel/minmay/g' configure src/libs/zbxmedia/jabber.c
-      sed -i \
-        -e '/^static ikstransport/,/}/d' \
-        -e 's/iks_connect_with\(.*\), &zbx_iks_transport/mmay_connect_via\1/' \
-        -e 's/iks/mmay/g' -e 's/IKS/MMAY/g' src/libs/zbxmedia/jabber.c
-    '';
-
-  nativeBuildInputs = [ pkgconfig ];
-    buildInputs = [ postgresql curl openssl zlib ];
-
-    postInstall =
-      ''
-        mkdir -p $out/share/zabbix
-        cp -prvd frontends/php $out/share/zabbix/php
-        mkdir -p $out/share/zabbix/db/data
-        cp -prvd database/postgresql/data.sql $out/share/zabbix/db/data/data.sql
-        cp -prvd database/postgresql/images.sql $out/share/zabbix/db/data/images_pgsql.sql
-        mkdir -p $out/share/zabbix/db/schema
-        cp -prvd database/postgresql/schema.sql $out/share/zabbix/db/schema/postgresql.sql
-      '';
-
-    meta = {
-      inherit branch;
-      description = "An enterprise-class open source distributed monitoring solution";
-      homepage = https://www.zabbix.com/;
-      license = "GPL";
-      maintainers = [ stdenv.lib.maintainers.eelco ];
-      platforms = stdenv.lib.platforms.linux;
-    };
-  };
-
-  agent = stdenv.mkDerivation {
-    name = "zabbix-agent-${version}";
-
-    inherit src preConfigure;
-
-    configureFlags = [ "--enable-agent" ];
-
-    meta = with stdenv.lib; {
-      inherit branch;
-      description = "An enterprise-class open source distributed monitoring solution (client-side agent)";
-      homepage = https://www.zabbix.com/;
-      license = licenses.gpl2;
-      maintainers = [ maintainers.eelco ];
-      platforms = platforms.linux;
-    };
-  };
-
-}
diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/2.2.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/2.2.nix
deleted file mode 100644
index ac0e6bb81f8b..000000000000
--- a/nixpkgs/pkgs/servers/monitoring/zabbix/2.2.nix
+++ /dev/null
@@ -1,104 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, postgresql, curl, openssl, zlib
-, net_snmp , libssh2, openldap
-, enableJabber ? false, minmay ? null
-, enableSnmp ? false
-, enableSsh ? false
-, enableLdap ? false
-}:
-
-assert enableJabber -> minmay != null;
-
-let
-
-  version = "2.2.20";
-  branch = "2.2";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/zabbix/zabbix-${version}.tar.gz";
-    sha256 = "00pfpyj3vydwx9dn0bklh1p5j0bp2awi4hvv4kgliyav8l0416hk";
-  };
-
-  preConfigure =
-    ''
-      substituteInPlace ./configure \
-        --replace " -static" "" \
-        ${stdenv.lib.optionalString (stdenv.cc.libc != null) ''
-          --replace /usr/include/iconv.h ${stdenv.lib.getDev stdenv.cc.libc}/include/iconv.h
-        ''}
-    '';
-
-in
-
-{
-  recurseForDerivations = true;
-
-  server = stdenv.mkDerivation {
-    name = "zabbix-${version}";
-
-    inherit src preConfigure;
-
-    configureFlags = [
-      "--enable-agent"
-      "--enable-server"
-      "--with-postgresql"
-      "--with-libcurl"
-      "--with-gettext"
-    ]
-    ++ stdenv.lib.optional enableJabber "--with-jabber=${minmay}"
-    ++ stdenv.lib.optional enableSnmp "--with-net-snmp"
-    ++ stdenv.lib.optional enableSsh "--with-ssh2=${libssh2.dev}"
-    ++ stdenv.lib.optional enableLdap "--with-ldap=${openldap.dev}";
-
-    postPatch = ''
-      sed -i -e 's/iksemel/minmay/g' configure src/libs/zbxmedia/jabber.c
-      sed -i \
-        -e '/^static ikstransport/,/}/d' \
-        -e 's/iks_connect_with\(.*\), &zbx_iks_transport/mmay_connect_via\1/' \
-        -e 's/iks/mmay/g' -e 's/IKS/MMAY/g' src/libs/zbxmedia/jabber.c
-    '';
-
-  nativeBuildInputs = [ pkgconfig ];
-    buildInputs = [ postgresql curl openssl zlib ]
-      ++ stdenv.lib.optional enableSnmp net_snmp
-      ++ stdenv.lib.optional enableSsh libssh2
-      ++ stdenv.lib.optional enableLdap openldap;
-
-    postInstall =
-      ''
-        mkdir -p $out/share/zabbix
-        cp -prvd frontends/php $out/share/zabbix/php
-        mkdir -p $out/share/zabbix/db/data
-        cp -prvd database/postgresql/data.sql $out/share/zabbix/db/data/data.sql
-        cp -prvd database/postgresql/images.sql $out/share/zabbix/db/data/images_pgsql.sql
-        mkdir -p $out/share/zabbix/db/schema
-        cp -prvd database/postgresql/schema.sql $out/share/zabbix/db/schema/postgresql.sql
-      '';
-
-    meta = {
-      inherit branch;
-      description = "An enterprise-class open source distributed monitoring solution";
-      homepage = https://www.zabbix.com/;
-      license = "GPL";
-      maintainers = [ stdenv.lib.maintainers.eelco ];
-      platforms = stdenv.lib.platforms.linux;
-    };
-  };
-
-  agent = stdenv.mkDerivation {
-    name = "zabbix-agent-${version}";
-
-    inherit src preConfigure;
-
-    configureFlags = [ "--enable-agent" ];
-
-    meta = with stdenv.lib; {
-      inherit branch;
-      description = "An enterprise-class open source distributed monitoring solution (client-side agent)";
-      homepage = https://www.zabbix.com/;
-      license = licenses.gpl2;
-      maintainers = [ maintainers.eelco ];
-      platforms = platforms.linux;
-    };
-  };
-
-}
diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/3.4.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/3.4.nix
deleted file mode 100644
index 72e6fa55b003..000000000000
--- a/nixpkgs/pkgs/servers/monitoring/zabbix/3.4.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ stdenv, fetchurl, pcre, libiconv, openssl }:
-
-
-let
-
-  version = "3.4.8";
-  branch = "3.4";
-
-  src = fetchurl {
-    url = "https://netix.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/${version}/zabbix-${version}.tar.gz";
-    sha256 = "cec14993d1ec2c9d8c51f6608c9408620f27174db92edc2347bafa7b841ccc07";
-  };
-
-in
-
-{
-  agent = stdenv.mkDerivation {
-    name = "zabbix-agent-${version}";
-
-    inherit src;
-
-     configureFlags = [
-      "--enable-agent"
-      "--with-libpcre=${pcre.dev}"
-      "--with-iconv=${libiconv}"
-      "--with-openssl=${openssl.dev}"
-    ];
-    buildInputs = [ pcre libiconv openssl ];
-
-    meta = with stdenv.lib; {
-      inherit branch;
-      description = "An enterprise-class open source distributed monitoring solution (client-side agent)";
-      homepage = https://www.zabbix.com/;
-      license = licenses.gpl2;
-      maintainers = [ maintainers.eelco ];
-      platforms = platforms.linux;
-    };
-  };
-
-}
-
diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/agent.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/agent.nix
new file mode 100644
index 000000000000..09f43c755f16
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/zabbix/agent.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, pkgconfig, libiconv, openssl, pcre }:
+
+import ./versions.nix ({ version, sha256 }:
+  stdenv.mkDerivation {
+    pname = "zabbix-agent";
+    inherit version;
+
+    src = fetchurl {
+      url = "mirror://sourceforge/zabbix/ZABBIX%20Latest%20Stable/${version}/zabbix-${version}.tar.gz";
+      inherit sha256;
+    };
+
+    nativeBuildInputs = [ pkgconfig ];
+    buildInputs = [
+      libiconv
+      openssl
+      pcre
+    ];
+
+    configureFlags = [
+      "--enable-agent"
+      "--with-iconv"
+      "--with-libpcre"
+      "--with-openssl=${openssl.dev}"
+    ];
+
+    postInstall = ''
+      cp conf/zabbix_agentd/*.conf $out/etc/zabbix_agentd.conf.d/
+    '';
+
+    meta = with stdenv.lib; {
+      description = "An enterprise-class open source distributed monitoring solution (client-side agent)";
+      homepage = "https://www.zabbix.com/";
+      license = licenses.gpl2;
+      maintainers = with maintainers; [ mmahut psyanticy ];
+      platforms = platforms.linux;
+    };
+  })
diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/default.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/default.nix
deleted file mode 100644
index 4b6bd5e0b250..000000000000
--- a/nixpkgs/pkgs/servers/monitoring/zabbix/default.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, postgresql, curl, openssl, zlib }:
-
-let
-
-  version = "1.8.22";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/zabbix/zabbix-${version}.tar.gz";
-    sha256 = "0cjj3c4j4b9sl3hgh1fck330z9q0gz2k68g227y0paal6k6f54g7";
-  };
-
-  preConfigure =
-    ''
-      substituteInPlace ./configure \
-        --replace " -static" "" \
-        ${stdenv.lib.optionalString (stdenv.cc.libc != null) ''
-          --replace /usr/include/iconv.h ${stdenv.lib.getDev stdenv.cc.libc}/include/iconv.h
-        ''}
-    '';
-
-in
-
-{
-
-  server = stdenv.mkDerivation {
-    name = "zabbix-${version}";
-
-    inherit src preConfigure;
-
-    configureFlags = [
-      "--enable-agent"
-      "--enable-server"
-      "--with-pgsql"
-      "--with-libcurl"
-    ];
-
-  nativeBuildInputs = [ pkgconfig ];
-    buildInputs = [ postgresql curl openssl zlib ];
-
-    postInstall =
-      ''
-        mkdir -p $out/share/zabbix
-        cp -prvd frontends/php $out/share/zabbix/php
-        mkdir -p $out/share/zabbix/db/data
-        cp -prvd create/data/*.sql $out/share/zabbix/db/data
-        mkdir -p $out/share/zabbix/db/schema
-        cp -prvd create/schema/*.sql $out/share/zabbix/db/schema
-      '';
-
-    meta = {
-      description = "An enterprise-class open source distributed monitoring solution";
-      homepage = https://www.zabbix.com/;
-      license = "GPL";
-      maintainers = [ stdenv.lib.maintainers.eelco ];
-      platforms = stdenv.lib.platforms.linux;
-    };
-  };
-
-  agent = stdenv.mkDerivation {
-    name = "zabbix-agent-${version}";
-
-    inherit src preConfigure;
-
-    configureFlags = [ "--enable-agent" ];
-
-    meta = with stdenv.lib; {
-      description = "An enterprise-class open source distributed monitoring solution (client-side agent)";
-      homepage = https://www.zabbix.com/;
-      license = licenses.gpl2;
-      maintainers = [ maintainers.eelco ];
-      platforms = platforms.linux;
-    };
-  };
-
-}
diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/proxy.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/proxy.nix
new file mode 100644
index 000000000000..2062dc6659f8
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/zabbix/proxy.nix
@@ -0,0 +1,79 @@
+{ stdenv, fetchurl, pkgconfig, libevent, libiconv, openssl, pcre, zlib
+, odbcSupport ? true, unixODBC
+, snmpSupport ? true, net_snmp
+, sshSupport ? true, libssh2
+, sqliteSupport ? false, sqlite
+, mysqlSupport ? false, mysql
+, postgresqlSupport ? false, postgresql
+}:
+
+# ensure exactly one database type is selected
+assert mysqlSupport -> !postgresqlSupport && !sqliteSupport;
+assert postgresqlSupport -> !mysqlSupport && !sqliteSupport;
+assert sqliteSupport -> !mysqlSupport && !postgresqlSupport;
+
+let
+  inherit (stdenv.lib) optional optionalString;
+in
+  import ./versions.nix ({ version, sha256 }:
+    stdenv.mkDerivation {
+      pname = "zabbix-proxy";
+      inherit version;
+
+      src = fetchurl {
+        url = "mirror://sourceforge/zabbix/ZABBIX%20Latest%20Stable/${version}/zabbix-${version}.tar.gz";
+        inherit sha256;
+      };
+
+      nativeBuildInputs = [ pkgconfig ];
+      buildInputs = [
+        libevent
+        libiconv
+        openssl
+        pcre
+        zlib
+      ]
+      ++ optional odbcSupport unixODBC
+      ++ optional snmpSupport net_snmp
+      ++ optional sqliteSupport sqlite
+      ++ optional sshSupport libssh2
+      ++ optional mysqlSupport mysql.connector-c
+      ++ optional postgresqlSupport postgresql;
+
+      configureFlags = [
+        "--enable-proxy"
+        "--with-iconv"
+        "--with-libevent"
+        "--with-libpcre"
+        "--with-openssl=${openssl.dev}"
+        "--with-zlib=${zlib}"
+      ]
+      ++ optional odbcSupport "--with-unixodbc"
+      ++ optional snmpSupport "--with-net-snmp"
+      ++ optional sqliteSupport "--with-sqlite3=${sqlite.dev}"
+      ++ optional sshSupport "--with-ssh2=${libssh2.dev}"
+      ++ optional mysqlSupport "--with-mysql"
+      ++ optional postgresqlSupport "--with-postgresql";
+
+      prePatch = ''
+        find database -name data.sql -exec sed -i 's|/usr/bin/||g' {} +
+      '';
+
+      postInstall = ''
+        mkdir -p $out/share/zabbix/database/
+      '' + optionalString sqliteSupport ''
+        mkdir -p $out/share/zabbix/database/sqlite3
+        cp -prvd database/sqlite3/*.sql $out/share/zabbix/database/sqlite3/
+      '' + optionalString postgresqlSupport ''
+        mkdir -p $out/share/zabbix/database/postgresql
+        cp -prvd database/postgresql/schema.sql $out/share/zabbix/database/postgresql/
+      '';
+
+      meta = with stdenv.lib; {
+        description = "An enterprise-class open source distributed monitoring solution (client-server proxy)";
+        homepage = "https://www.zabbix.com/";
+        license = licenses.gpl2;
+        maintainers = [ maintainers.mmahut ];
+        platforms = platforms.linux;
+      };
+    })
diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/server.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/server.nix
new file mode 100644
index 000000000000..51ca38e8cfc8
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/zabbix/server.nix
@@ -0,0 +1,86 @@
+{ stdenv, fetchurl, pkgconfig, curl, libevent, libiconv, libxml2, openssl, pcre, zlib
+, jabberSupport ? true, iksemel
+, ldapSupport ? true, openldap
+, odbcSupport ? true, unixODBC
+, snmpSupport ? true, net_snmp
+, sshSupport ? true, libssh2
+, mysqlSupport ? false, mysql
+, postgresqlSupport ? false, postgresql
+}:
+
+# ensure exactly one primary database type is selected
+assert mysqlSupport -> !postgresqlSupport;
+assert postgresqlSupport -> !mysqlSupport;
+
+let
+  inherit (stdenv.lib) optional optionalString;
+in
+  import ./versions.nix ({ version, sha256 }:
+    stdenv.mkDerivation {
+      pname = "zabbix-server";
+      inherit version;
+
+      src = fetchurl {
+        url = "mirror://sourceforge/zabbix/ZABBIX%20Latest%20Stable/${version}/zabbix-${version}.tar.gz";
+        inherit sha256;
+      };
+
+      nativeBuildInputs = [ pkgconfig ];
+      buildInputs = [
+        curl
+        libevent
+        libiconv
+        libxml2
+        openssl
+        pcre
+        zlib
+      ]
+      ++ optional odbcSupport unixODBC
+      ++ optional jabberSupport iksemel
+      ++ optional ldapSupport openldap
+      ++ optional snmpSupport net_snmp
+      ++ optional sshSupport libssh2
+      ++ optional mysqlSupport mysql.connector-c
+      ++ optional postgresqlSupport postgresql;
+
+      configureFlags = [
+        "--enable-server"
+        "--with-iconv"
+        "--with-libcurl"
+        "--with-libevent"
+        "--with-libpcre"
+        "--with-libxml2"
+        "--with-openssl=${openssl.dev}"
+        "--with-zlib=${zlib}"
+      ]
+      ++ optional odbcSupport "--with-unixodbc"
+      ++ optional jabberSupport "--with-jabber"
+      ++ optional ldapSupport "--with-ldap=${openldap.dev}"
+      ++ optional snmpSupport "--with-net-snmp"
+      ++ optional sshSupport "--with-ssh2=${libssh2.dev}"
+      ++ optional mysqlSupport "--with-mysql"
+      ++ optional postgresqlSupport "--with-postgresql";
+
+      prePatch = ''
+        find database -name data.sql -exec sed -i 's|/usr/bin/||g' {} +
+      '';
+
+      postInstall = ''
+        mkdir -p $out/share/zabbix/database/
+        cp -r include $out/
+      '' + optionalString mysqlSupport ''
+        mkdir -p $out/share/zabbix/database/mysql
+        cp -prvd database/mysql/*.sql $out/share/zabbix/database/mysql/
+      '' + optionalString postgresqlSupport ''
+        mkdir -p $out/share/zabbix/database/postgresql
+        cp -prvd database/postgresql/*.sql $out/share/zabbix/database/postgresql/
+      '';
+
+      meta = with stdenv.lib; {
+        description = "An enterprise-class open source distributed monitoring solution";
+        homepage = "https://www.zabbix.com/";
+        license = licenses.gpl2;
+        maintainers = with maintainers; [ mmahut psyanticy ];
+        platforms = platforms.linux;
+      };
+    })
diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix
new file mode 100644
index 000000000000..7b6b5d8fcccb
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix
@@ -0,0 +1,16 @@
+generic: {
+  v42 = generic {
+    version = "4.2.3";
+    sha256 = "0865c1a9vcgg4syhp5133rw9v1h65lp0g1y2f758jb9x9ybrr01s";
+  };
+
+  v40 = generic {
+    version = "4.0.9";
+    sha256 = "1lc4wx3cing5w2qa18yb6232qd70hrfjq7jmnx4ip3nawnswj2xa";
+  };
+
+  v30 = generic {
+    version = "3.0.28";
+    sha256 = "16966danf5ww4lhjg5gx5bnpid8abxh2ymdg6k5mymrman5bcdjj";
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/web.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/web.nix
new file mode 100644
index 000000000000..c4cf5d044dae
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/zabbix/web.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, writeText }:
+
+import ./versions.nix ({ version, sha256 }:
+  stdenv.mkDerivation rec {
+    pname = "zabbix-web";
+    inherit version;
+
+    src = fetchurl {
+      url = "mirror://sourceforge/zabbix/ZABBIX%20Latest%20Stable/${version}/zabbix-${version}.tar.gz";
+      inherit sha256;
+    };
+
+    phpConfig = writeText "zabbix.conf.php" ''
+    <?php
+      return require(getenv('ZABBIX_CONFIG'));
+    ?>
+    '';
+
+    installPhase = ''
+      mkdir -p $out/share/zabbix/
+      cp -a frontends/php/. $out/share/zabbix/
+      cp ${phpConfig} $out/share/zabbix/conf/zabbix.conf.php
+    '';
+
+    meta = with stdenv.lib; {
+      description = "An enterprise-class open source distributed monitoring solution (web frontend)";
+      homepage = "https://www.zabbix.com/";
+      license = licenses.gpl2;
+      maintainers = [ maintainers.mmahut ];
+      platforms = platforms.linux;
+    };
+  })