about summary refs log tree commit diff
path: root/nixos/modules/services/databases
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/modules/services/databases')
-rw-r--r--nixos/modules/services/databases/aerospike.nix8
-rw-r--r--nixos/modules/services/databases/cassandra.nix59
-rw-r--r--nixos/modules/services/databases/clickhouse.nix2
-rw-r--r--nixos/modules/services/databases/cockroachdb.nix26
-rw-r--r--nixos/modules/services/databases/couchdb.nix28
-rw-r--r--nixos/modules/services/databases/dgraph.nix12
-rw-r--r--nixos/modules/services/databases/dragonflydb.nix20
-rw-r--r--nixos/modules/services/databases/etcd.nix42
-rw-r--r--nixos/modules/services/databases/firebird.nix8
-rw-r--r--nixos/modules/services/databases/foundationdb.nix60
-rw-r--r--nixos/modules/services/databases/hbase-standalone.nix14
-rw-r--r--nixos/modules/services/databases/influxdb.nix10
-rw-r--r--nixos/modules/services/databases/influxdb2.nix57
-rw-r--r--nixos/modules/services/databases/lldap.nix26
-rw-r--r--nixos/modules/services/databases/memcached.nix16
-rw-r--r--nixos/modules/services/databases/monetdb.nix12
-rw-r--r--nixos/modules/services/databases/mongodb.nix22
-rw-r--r--nixos/modules/services/databases/mysql.nix44
-rw-r--r--nixos/modules/services/databases/neo4j.nix66
-rw-r--r--nixos/modules/services/databases/openldap.nix22
-rw-r--r--nixos/modules/services/databases/opentsdb.nix10
-rw-r--r--nixos/modules/services/databases/pgbouncer.nix84
-rw-r--r--nixos/modules/services/databases/pgmanage.nix26
-rw-r--r--nixos/modules/services/databases/postgresql.nix56
-rw-r--r--nixos/modules/services/databases/redis.nix58
-rw-r--r--nixos/modules/services/databases/rethinkdb.nix10
-rw-r--r--nixos/modules/services/databases/surrealdb.nix10
-rw-r--r--nixos/modules/services/databases/tigerbeetle.nix12
-rw-r--r--nixos/modules/services/databases/victoriametrics.nix8
29 files changed, 413 insertions, 415 deletions
diff --git a/nixos/modules/services/databases/aerospike.nix b/nixos/modules/services/databases/aerospike.nix
index 4923c0f00ddb4..676341084acb6 100644
--- a/nixos/modules/services/databases/aerospike.nix
+++ b/nixos/modules/services/databases/aerospike.nix
@@ -39,14 +39,14 @@ in
   options = {
 
     services.aerospike = {
-      enable = mkEnableOption (lib.mdDoc "Aerospike server");
+      enable = mkEnableOption "Aerospike server";
 
       package = mkPackageOption pkgs "aerospike" { };
 
       workDir = mkOption {
         type = types.str;
         default = "/var/lib/aerospike";
-        description = lib.mdDoc "Location where Aerospike stores its files";
+        description = "Location where Aerospike stores its files";
       };
 
       networkConfig = mkOption {
@@ -75,7 +75,7 @@ in
             port 3003
           }
         '';
-        description = lib.mdDoc "network section of configuration file";
+        description = "network section of configuration file";
       };
 
       extraConfig = mkOption {
@@ -89,7 +89,7 @@ in
             storage-engine memory
           }
         '';
-        description = lib.mdDoc "Extra configuration";
+        description = "Extra configuration";
       };
     };
 
diff --git a/nixos/modules/services/databases/cassandra.nix b/nixos/modules/services/databases/cassandra.nix
index adf7213dd13f5..c8fce9b939db1 100644
--- a/nixos/modules/services/databases/cassandra.nix
+++ b/nixos/modules/services/databases/cassandra.nix
@@ -9,7 +9,6 @@ let
     optionalAttrs
     optionals
     recursiveUpdate
-    mdDoc
     mkEnableOption
     mkPackageOption
     mkIf
@@ -122,14 +121,14 @@ in
 {
   options.services.cassandra = {
 
-    enable = mkEnableOption (lib.mdDoc ''
+    enable = mkEnableOption ''
       Apache Cassandra ā€“ Scalable and highly available database
-    '');
+    '';
 
     clusterName = mkOption {
       type = types.str;
       default = "Test Cluster";
-      description = mdDoc ''
+      description = ''
         The name of the cluster.
         This setting prevents nodes in one logical cluster from joining
         another. All nodes in a cluster must have the same value.
@@ -139,19 +138,19 @@ in
     user = mkOption {
       type = types.str;
       default = defaultUser;
-      description = mdDoc "Run Apache Cassandra under this user.";
+      description = "Run Apache Cassandra under this user.";
     };
 
     group = mkOption {
       type = types.str;
       default = defaultUser;
-      description = mdDoc "Run Apache Cassandra under this group.";
+      description = "Run Apache Cassandra under this group.";
     };
 
     homeDir = mkOption {
       type = types.path;
       default = "/var/lib/cassandra";
-      description = mdDoc ''
+      description = ''
         Home directory for Apache Cassandra.
       '';
     };
@@ -163,7 +162,7 @@ in
     jvmOpts = mkOption {
       type = types.listOf types.str;
       default = [ ];
-      description = mdDoc ''
+      description = ''
         Populate the `JVM_OPT` environment variable.
       '';
     };
@@ -172,7 +171,7 @@ in
       type = types.nullOr types.str;
       default = "127.0.0.1";
       example = null;
-      description = mdDoc ''
+      description = ''
         Address or interface to bind to and tell other Cassandra nodes
         to connect to. You _must_ change this if you want multiple
         nodes to be able to communicate!
@@ -193,7 +192,7 @@ in
       type = types.nullOr types.str;
       default = null;
       example = "eth1";
-      description = mdDoc ''
+      description = ''
         Set `listenAddress` OR `listenInterface`, not both. Interfaces
         must correspond to a single address, IP aliasing is not
         supported.
@@ -204,7 +203,7 @@ in
       type = types.nullOr types.str;
       default = "127.0.0.1";
       example = null;
-      description = mdDoc ''
+      description = ''
         The address or interface to bind the native transport server to.
 
         Set {option}`rpcAddress` OR {option}`rpcInterface`, not both.
@@ -226,7 +225,7 @@ in
       type = types.nullOr types.str;
       default = null;
       example = "eth1";
-      description = mdDoc ''
+      description = ''
         Set {option}`rpcAddress` OR {option}`rpcInterface`, not both. Interfaces must
         correspond to a single address, IP aliasing is not supported.
       '';
@@ -249,7 +248,7 @@ in
           <logger name="com.thinkaurelius.thrift" level="ERROR"/>
         </configuration>
       '';
-      description = mdDoc ''
+      description = ''
         XML logback configuration for cassandra
       '';
     };
@@ -257,7 +256,7 @@ in
     seedAddresses = mkOption {
       type = types.listOf types.str;
       default = [ "127.0.0.1" ];
-      description = mdDoc ''
+      description = ''
         The addresses of hosts designated as contact points in the cluster. A
         joining node contacts one of the nodes in the seeds list to learn the
         topology of the ring.
@@ -268,7 +267,7 @@ in
     allowClients = mkOption {
       type = types.bool;
       default = true;
-      description = mdDoc ''
+      description = ''
         Enables or disables the native transport server (CQL binary protocol).
         This server uses the same address as the {option}`rpcAddress`,
         but the port it uses is not `rpc_port` but
@@ -285,7 +284,7 @@ in
         {
           commitlog_sync_batch_window_in_ms = 3;
         };
-      description = mdDoc ''
+      description = ''
         Extra options to be merged into {file}`cassandra.yaml` as nix attribute set.
       '';
     };
@@ -294,7 +293,7 @@ in
       type = types.lines;
       default = "";
       example = literalExpression ''"CLASSPATH=$CLASSPATH:''${extraJar}"'';
-      description = mdDoc ''
+      description = ''
         Extra shell lines to be appended onto {file}`cassandra-env.sh`.
       '';
     };
@@ -303,7 +302,7 @@ in
       type = types.nullOr types.str;
       default = "3w";
       example = null;
-      description = mdDoc ''
+      description = ''
         Set the interval how often full repairs are run, i.e.
         {command}`nodetool repair --full` is executed. See
         <https://cassandra.apache.org/doc/latest/operating/repair.html>
@@ -317,7 +316,7 @@ in
       type = types.listOf types.str;
       default = [ ];
       example = [ "--partitioner-range" ];
-      description = mdDoc ''
+      description = ''
         Options passed through to the full repair command.
       '';
     };
@@ -326,7 +325,7 @@ in
       type = types.nullOr types.str;
       default = "3d";
       example = null;
-      description = mdDoc ''
+      description = ''
         Set the interval how often incremental repairs are run, i.e.
         {command}`nodetool repair` is executed. See
         <https://cassandra.apache.org/doc/latest/operating/repair.html>
@@ -340,7 +339,7 @@ in
       type = types.listOf types.str;
       default = [ ];
       example = [ "--partitioner-range" ];
-      description = mdDoc ''
+      description = ''
         Options passed through to the incremental repair command.
       '';
     };
@@ -349,7 +348,7 @@ in
       type = types.nullOr types.str;
       default = null;
       example = "4G";
-      description = mdDoc ''
+      description = ''
         Must be left blank or set together with {option}`heapNewSize`.
         If left blank a sensible value for the available amount of RAM and CPU
         cores is calculated.
@@ -370,7 +369,7 @@ in
       type = types.nullOr types.str;
       default = null;
       example = "800M";
-      description = mdDoc ''
+      description = ''
         Must be left blank or set together with {option}`heapNewSize`.
         If left blank a sensible value for the available amount of RAM and CPU
         cores is calculated.
@@ -394,7 +393,7 @@ in
       type = types.nullOr types.int;
       default = null;
       example = 4;
-      description = mdDoc ''
+      description = ''
         Set this to control the amount of arenas per-thread in glibc.
       '';
     };
@@ -402,7 +401,7 @@ in
     remoteJmx = mkOption {
       type = types.bool;
       default = false;
-      description = mdDoc ''
+      description = ''
         Cassandra ships with JMX accessible *only* from localhost.
         To enable remote JMX connections set to true.
 
@@ -414,7 +413,7 @@ in
     jmxPort = mkOption {
       type = types.int;
       default = 7199;
-      description = mdDoc ''
+      description = ''
         Specifies the default port over which Cassandra will be available for
         JMX connections.
         For security reasons, you should not expose this port to the internet.
@@ -424,7 +423,7 @@ in
 
     jmxRoles = mkOption {
       default = [ ];
-      description = mdDoc ''
+      description = ''
         Roles that are allowed to access the JMX (e.g. {command}`nodetool`)
         BEWARE: The passwords will be stored world readable in the nix store.
                 It's recommended to use your own protected file using
@@ -437,11 +436,11 @@ in
         options = {
           username = mkOption {
             type = types.str;
-            description = lib.mdDoc "Username for JMX";
+            description = "Username for JMX";
           };
           password = mkOption {
             type = types.str;
-            description = lib.mdDoc "Password for JMX";
+            description = "Password for JMX";
           };
         };
       });
@@ -455,7 +454,7 @@ in
         else null;
       defaultText = literalMD ''generated configuration file if version is at least 3.11, otherwise `null`'';
       example = "/var/lib/cassandra/jmx.password";
-      description = lib.mdDoc ''
+      description = ''
         Specify your own jmx roles file.
 
         Make sure the permissions forbid "others" from reading the file if
diff --git a/nixos/modules/services/databases/clickhouse.nix b/nixos/modules/services/databases/clickhouse.nix
index 288046677721a..37a1fe5d5b6ce 100644
--- a/nixos/modules/services/databases/clickhouse.nix
+++ b/nixos/modules/services/databases/clickhouse.nix
@@ -11,7 +11,7 @@ with lib;
 
     services.clickhouse = {
 
-      enable = mkEnableOption (lib.mdDoc "ClickHouse database server");
+      enable = mkEnableOption "ClickHouse database server";
 
       package = mkPackageOption pkgs "clickhouse" { };
 
diff --git a/nixos/modules/services/databases/cockroachdb.nix b/nixos/modules/services/databases/cockroachdb.nix
index 789f086158db0..34e4e8760742f 100644
--- a/nixos/modules/services/databases/cockroachdb.nix
+++ b/nixos/modules/services/databases/cockroachdb.nix
@@ -35,13 +35,13 @@ let
     address = mkOption {
       type = types.str;
       default = "localhost";
-      description = lib.mdDoc "Address to bind to for ${descr}";
+      description = "Address to bind to for ${descr}";
     };
 
     port = mkOption {
       type = types.port;
       default = defaultPort;
-      description = lib.mdDoc "Port to bind to for ${descr}";
+      description = "Port to bind to for ${descr}";
     };
   };
 in
@@ -49,7 +49,7 @@ in
 {
   options = {
     services.cockroachdb = {
-      enable = mkEnableOption (lib.mdDoc "CockroachDB Server");
+      enable = mkEnableOption "CockroachDB Server";
 
       listen = addressOption "intra-cluster communication" 26257;
 
@@ -58,7 +58,7 @@ in
       locality = mkOption {
         type = types.nullOr types.str;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           An ordered, comma-separated list of key-value pairs that describe the
           topography of the machine. Topography might include country,
           datacenter or rack designations. Data is automatically replicated to
@@ -80,43 +80,43 @@ in
       join = mkOption {
         type = types.nullOr types.str;
         default = null;
-        description = lib.mdDoc "The addresses for connecting the node to a cluster.";
+        description = "The addresses for connecting the node to a cluster.";
       };
 
       insecure = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc "Run in insecure mode.";
+        description = "Run in insecure mode.";
       };
 
       certsDir = mkOption {
         type = types.nullOr types.path;
         default = null;
-        description = lib.mdDoc "The path to the certificate directory.";
+        description = "The path to the certificate directory.";
       };
 
       user = mkOption {
         type = types.str;
         default = "cockroachdb";
-        description = lib.mdDoc "User account under which CockroachDB runs";
+        description = "User account under which CockroachDB runs";
       };
 
       group = mkOption {
         type = types.str;
         default = "cockroachdb";
-        description = lib.mdDoc "User account under which CockroachDB runs";
+        description = "User account under which CockroachDB runs";
       };
 
       openPorts = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc "Open firewall ports for cluster communication by default";
+        description = "Open firewall ports for cluster communication by default";
       };
 
       cache = mkOption {
         type = types.str;
         default = "25%";
-        description = lib.mdDoc ''
+        description = ''
           The total size for caches.
 
           This can be a percentage, expressed with a fraction sign or as a
@@ -132,7 +132,7 @@ in
       maxSqlMemory = mkOption {
         type = types.str;
         default = "25%";
-        description = lib.mdDoc ''
+        description = ''
           The maximum in-memory storage capacity available to store temporary
           data for SQL queries.
 
@@ -157,7 +157,7 @@ in
         type = types.listOf types.str;
         default = [];
         example = [ "--advertise-addr" "[fe80::f6f2:::]" ];
-        description = lib.mdDoc ''
+        description = ''
           Extra CLI arguments passed to {command}`cockroach start`.
           For the full list of supported arguments, check <https://www.cockroachlabs.com/docs/stable/cockroach-start.html#flags>
         '';
diff --git a/nixos/modules/services/databases/couchdb.nix b/nixos/modules/services/databases/couchdb.nix
index 72212c390413d..e007bfce77abf 100644
--- a/nixos/modules/services/databases/couchdb.nix
+++ b/nixos/modules/services/databases/couchdb.nix
@@ -34,14 +34,14 @@ in {
 
     services.couchdb = {
 
-      enable = mkEnableOption (lib.mdDoc "CouchDB Server");
+      enable = mkEnableOption "CouchDB Server";
 
       package = mkPackageOption pkgs "couchdb3" { };
 
       adminUser = mkOption {
         type = types.str;
         default = "admin";
-        description = lib.mdDoc ''
+        description = ''
           Couchdb (i.e. fauxton) account with permission for all dbs and
           tasks.
         '';
@@ -50,7 +50,7 @@ in {
       adminPass = mkOption {
         type = types.nullOr types.str;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           Couchdb (i.e. fauxton) account with permission for all dbs and
           tasks.
         '';
@@ -59,7 +59,7 @@ in {
       user = mkOption {
         type = types.str;
         default = "couchdb";
-        description = lib.mdDoc ''
+        description = ''
           User account under which couchdb runs.
         '';
       };
@@ -67,7 +67,7 @@ in {
       group = mkOption {
         type = types.str;
         default = "couchdb";
-        description = lib.mdDoc ''
+        description = ''
           Group account under which couchdb runs.
         '';
       };
@@ -77,7 +77,7 @@ in {
       databaseDir = mkOption {
         type = types.path;
         default = "/var/lib/couchdb";
-        description = lib.mdDoc ''
+        description = ''
           Specifies location of CouchDB database files (*.couch named). This
           location should be writable and readable for the user the CouchDB
           service runs as (couchdb by default).
@@ -87,7 +87,7 @@ in {
       uriFile = mkOption {
         type = types.path;
         default = "/run/couchdb/couchdb.uri";
-        description = lib.mdDoc ''
+        description = ''
           This file contains the full URI that can be used to access this
           instance of CouchDB. It is used to help discover the port CouchDB is
           running on (if it was set to 0 (e.g. automatically assigned any free
@@ -99,7 +99,7 @@ in {
       viewIndexDir = mkOption {
         type = types.path;
         default = "/var/lib/couchdb";
-        description = lib.mdDoc ''
+        description = ''
           Specifies location of CouchDB view index files. This location should
           be writable and readable for the user that runs the CouchDB service
           (couchdb by default).
@@ -109,7 +109,7 @@ in {
       bindAddress = mkOption {
         type = types.str;
         default = "127.0.0.1";
-        description = lib.mdDoc ''
+        description = ''
           Defines the IP address by which CouchDB will be accessible.
         '';
       };
@@ -117,7 +117,7 @@ in {
       port = mkOption {
         type = types.port;
         default = 5984;
-        description = lib.mdDoc ''
+        description = ''
           Defined the port number to listen.
         '';
       };
@@ -125,7 +125,7 @@ in {
       logFile = mkOption {
         type = types.path;
         default = "/var/log/couchdb.log";
-        description = lib.mdDoc ''
+        description = ''
           Specifies the location of file for logging output.
         '';
       };
@@ -133,7 +133,7 @@ in {
       extraConfig = mkOption {
         type = types.lines;
         default = "";
-        description = lib.mdDoc ''
+        description = ''
           Extra configuration. Overrides any other configuration.
         '';
       };
@@ -142,14 +142,14 @@ in {
         type = types.path;
         default = "${cfg.package}/etc/vm.args";
         defaultText = literalExpression ''"config.${opt.package}/etc/vm.args"'';
-        description = lib.mdDoc ''
+        description = ''
           vm.args configuration. Overrides Couchdb's Erlang VM parameters file.
         '';
       };
 
       configFile = mkOption {
         type = types.path;
-        description = lib.mdDoc ''
+        description = ''
           Configuration file for persisting runtime changes. File
           needs to be readable and writable from couchdb user/group.
         '';
diff --git a/nixos/modules/services/databases/dgraph.nix b/nixos/modules/services/databases/dgraph.nix
index 479754a6447d3..00a11d6b686e5 100644
--- a/nixos/modules/services/databases/dgraph.nix
+++ b/nixos/modules/services/databases/dgraph.nix
@@ -53,14 +53,14 @@ in
 {
   options = {
     services.dgraph = {
-      enable = mkEnableOption (lib.mdDoc "Dgraph native GraphQL database with a graph backend");
+      enable = mkEnableOption "Dgraph native GraphQL database with a graph backend";
 
       package = lib.mkPackageOption pkgs "dgraph" { };
 
       settings = mkOption {
         type = settingsFormat.type;
         default = {};
-        description = lib.mdDoc ''
+        description = ''
           Contents of the dgraph config. For more details see https://dgraph.io/docs/deploy/config
         '';
       };
@@ -69,14 +69,14 @@ in
         host = mkOption {
           type = types.str;
           default = "localhost";
-          description = lib.mdDoc ''
+          description = ''
             The host which dgraph alpha will be run on.
           '';
         };
         port = mkOption {
           type = types.port;
           default = 7080;
-          description = lib.mdDoc ''
+          description = ''
             The port which to run dgraph alpha on.
           '';
         };
@@ -87,14 +87,14 @@ in
         host = mkOption {
           type = types.str;
           default = "localhost";
-          description = lib.mdDoc ''
+          description = ''
             The host which dgraph zero will be run on.
           '';
         };
         port = mkOption {
           type = types.port;
           default = 5080;
-          description = lib.mdDoc ''
+          description = ''
             The port which to run dgraph zero on.
           '';
         };
diff --git a/nixos/modules/services/databases/dragonflydb.nix b/nixos/modules/services/databases/dragonflydb.nix
index 46a0c188c3ae8..220605c8b475b 100644
--- a/nixos/modules/services/databases/dragonflydb.nix
+++ b/nixos/modules/services/databases/dragonflydb.nix
@@ -25,24 +25,24 @@ in
 
   options = {
     services.dragonflydb = {
-      enable = mkEnableOption (lib.mdDoc "DragonflyDB");
+      enable = mkEnableOption "DragonflyDB";
 
       user = mkOption {
         type = types.str;
         default = "dragonfly";
-        description = lib.mdDoc "The user to run DragonflyDB as";
+        description = "The user to run DragonflyDB as";
       };
 
       port = mkOption {
         type = types.port;
         default = 6379;
-        description = lib.mdDoc "The TCP port to accept connections.";
+        description = "The TCP port to accept connections.";
       };
 
       bind = mkOption {
         type = with types; nullOr str;
         default = "127.0.0.1";
-        description = lib.mdDoc ''
+        description = ''
           The IP interface to bind to.
           `null` means "all interfaces".
         '';
@@ -51,14 +51,14 @@ in
       requirePass = mkOption {
         type = with types; nullOr str;
         default = null;
-        description = lib.mdDoc "Password for database";
+        description = "Password for database";
         example = "letmein!";
       };
 
       maxMemory = mkOption {
         type = with types; nullOr ints.unsigned;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           The maximum amount of memory to use for storage (in bytes).
           `null` means this will be automatically set.
         '';
@@ -67,7 +67,7 @@ in
       memcachePort = mkOption {
         type = with types; nullOr port;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           To enable memcached compatible API on this port.
           `null` means disabled.
         '';
@@ -76,7 +76,7 @@ in
       keysOutputLimit = mkOption {
         type = types.ints.unsigned;
         default = 8192;
-        description = lib.mdDoc ''
+        description = ''
           Maximum number of returned keys in keys command.
           `keys` is a dangerous command.
           We truncate its result to avoid blowup in memory when fetching too many keys.
@@ -86,13 +86,13 @@ in
       dbNum = mkOption {
         type = with types; nullOr ints.unsigned;
         default = null;
-        description = lib.mdDoc "Maximum number of supported databases for `select`";
+        description = "Maximum number of supported databases for `select`";
       };
 
       cacheMode = mkOption {
         type = with types; nullOr bool;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           Once this mode is on, Dragonfly will evict items least likely to be stumbled
           upon in the future but only when it is near maxmemory limit.
         '';
diff --git a/nixos/modules/services/databases/etcd.nix b/nixos/modules/services/databases/etcd.nix
index a5b3abdbcb59c..ebc905ad08f61 100644
--- a/nixos/modules/services/databases/etcd.nix
+++ b/nixos/modules/services/databases/etcd.nix
@@ -10,7 +10,7 @@ in {
 
   options.services.etcd = {
     enable = mkOption {
-      description = lib.mdDoc "Whether to enable etcd.";
+      description = "Whether to enable etcd.";
       default = false;
       type = types.bool;
     };
@@ -18,83 +18,83 @@ in {
     package = mkPackageOption pkgs "etcd" { };
 
     name = mkOption {
-      description = lib.mdDoc "Etcd unique node name.";
+      description = "Etcd unique node name.";
       default = config.networking.hostName;
       defaultText = literalExpression "config.networking.hostName";
       type = types.str;
     };
 
     advertiseClientUrls = mkOption {
-      description = lib.mdDoc "Etcd list of this member's client URLs to advertise to the rest of the cluster.";
+      description = "Etcd list of this member's client URLs to advertise to the rest of the cluster.";
       default = cfg.listenClientUrls;
       defaultText = literalExpression "config.${opt.listenClientUrls}";
       type = types.listOf types.str;
     };
 
     listenClientUrls = mkOption {
-      description = lib.mdDoc "Etcd list of URLs to listen on for client traffic.";
+      description = "Etcd list of URLs to listen on for client traffic.";
       default = ["http://127.0.0.1:2379"];
       type = types.listOf types.str;
     };
 
     listenPeerUrls = mkOption {
-      description = lib.mdDoc "Etcd list of URLs to listen on for peer traffic.";
+      description = "Etcd list of URLs to listen on for peer traffic.";
       default = ["http://127.0.0.1:2380"];
       type = types.listOf types.str;
     };
 
     initialAdvertisePeerUrls = mkOption {
-      description = lib.mdDoc "Etcd list of this member's peer URLs to advertise to rest of the cluster.";
+      description = "Etcd list of this member's peer URLs to advertise to rest of the cluster.";
       default = cfg.listenPeerUrls;
       defaultText = literalExpression "config.${opt.listenPeerUrls}";
       type = types.listOf types.str;
     };
 
     initialCluster = mkOption {
-      description = lib.mdDoc "Etcd initial cluster configuration for bootstrapping.";
+      description = "Etcd initial cluster configuration for bootstrapping.";
       default = ["${cfg.name}=http://127.0.0.1:2380"];
       defaultText = literalExpression ''["''${config.${opt.name}}=http://127.0.0.1:2380"]'';
       type = types.listOf types.str;
     };
 
     initialClusterState = mkOption {
-      description = lib.mdDoc "Etcd initial cluster configuration for bootstrapping.";
+      description = "Etcd initial cluster configuration for bootstrapping.";
       default = "new";
       type = types.enum ["new" "existing"];
     };
 
     initialClusterToken = mkOption {
-      description = lib.mdDoc "Etcd initial cluster token for etcd cluster during bootstrap.";
+      description = "Etcd initial cluster token for etcd cluster during bootstrap.";
       default = "etcd-cluster";
       type = types.str;
     };
 
     discovery = mkOption {
-      description = lib.mdDoc "Etcd discovery url";
+      description = "Etcd discovery url";
       default = "";
       type = types.str;
     };
 
     clientCertAuth = mkOption {
-      description = lib.mdDoc "Whether to use certs for client authentication";
+      description = "Whether to use certs for client authentication";
       default = false;
       type = types.bool;
     };
 
     trustedCaFile = mkOption {
-      description = lib.mdDoc "Certificate authority file to use for clients";
+      description = "Certificate authority file to use for clients";
       default = null;
       type = types.nullOr types.path;
     };
 
     certFile = mkOption {
-      description = lib.mdDoc "Cert file to use for clients";
+      description = "Cert file to use for clients";
       default = null;
       type = types.nullOr types.path;
     };
 
     keyFile = mkOption {
-      description = lib.mdDoc "Key file to use for clients";
+      description = "Key file to use for clients";
       default = null;
       type = types.nullOr types.path;
     };
@@ -102,7 +102,7 @@ in {
     openFirewall = mkOption {
       type = types.bool;
       default = false;
-      description = lib.mdDoc ''
+      description = ''
         Open etcd ports in the firewall.
         Ports opened:
         - 2379/tcp for client requests
@@ -111,34 +111,34 @@ in {
     };
 
     peerCertFile = mkOption {
-      description = lib.mdDoc "Cert file to use for peer to peer communication";
+      description = "Cert file to use for peer to peer communication";
       default = cfg.certFile;
       defaultText = literalExpression "config.${opt.certFile}";
       type = types.nullOr types.path;
     };
 
     peerKeyFile = mkOption {
-      description = lib.mdDoc "Key file to use for peer to peer communication";
+      description = "Key file to use for peer to peer communication";
       default = cfg.keyFile;
       defaultText = literalExpression "config.${opt.keyFile}";
       type = types.nullOr types.path;
     };
 
     peerTrustedCaFile = mkOption {
-      description = lib.mdDoc "Certificate authority file to use for peer to peer communication";
+      description = "Certificate authority file to use for peer to peer communication";
       default = cfg.trustedCaFile;
       defaultText = literalExpression "config.${opt.trustedCaFile}";
       type = types.nullOr types.path;
     };
 
     peerClientCertAuth = mkOption {
-      description = lib.mdDoc "Whether to check all incoming peer requests from the cluster for valid client certificates signed by the supplied CA";
+      description = "Whether to check all incoming peer requests from the cluster for valid client certificates signed by the supplied CA";
       default = false;
       type = types.bool;
     };
 
     extraConf = mkOption {
-      description = lib.mdDoc ''
+      description = ''
         Etcd extra configuration. See
         <https://github.com/coreos/etcd/blob/master/Documentation/op-guide/configuration.md#configuration-flags>
       '';
@@ -158,7 +158,7 @@ in {
     dataDir = mkOption {
       type = types.path;
       default = "/var/lib/etcd";
-      description = lib.mdDoc "Etcd data directory.";
+      description = "Etcd data directory.";
     };
   };
 
diff --git a/nixos/modules/services/databases/firebird.nix b/nixos/modules/services/databases/firebird.nix
index 431233ce5ed41..17606218b6330 100644
--- a/nixos/modules/services/databases/firebird.nix
+++ b/nixos/modules/services/databases/firebird.nix
@@ -40,7 +40,7 @@ in
 
     services.firebird = {
 
-      enable = mkEnableOption (lib.mdDoc "the Firebird super server");
+      enable = mkEnableOption "the Firebird super server";
 
       package = mkPackageOption pkgs "firebird" {
         example = "firebird_3";
@@ -52,7 +52,7 @@ in
       port = mkOption {
         default = 3050;
         type = types.port;
-        description = lib.mdDoc ''
+        description = ''
           Port Firebird uses.
         '';
       };
@@ -60,7 +60,7 @@ in
       user = mkOption {
         default = "firebird";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           User account under which firebird runs.
         '';
       };
@@ -68,7 +68,7 @@ in
       baseDir = mkOption {
         default = "/var/lib/firebird";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Location containing data/ and system/ directories.
           data/ stores the databases, system/ stores the password database security2.fdb.
         '';
diff --git a/nixos/modules/services/databases/foundationdb.nix b/nixos/modules/services/databases/foundationdb.nix
index 48e9898a68c2b..670a149ea5e74 100644
--- a/nixos/modules/services/databases/foundationdb.nix
+++ b/nixos/modules/services/databases/foundationdb.nix
@@ -62,11 +62,11 @@ in
 {
   options.services.foundationdb = {
 
-    enable = mkEnableOption (lib.mdDoc "FoundationDB Server");
+    enable = mkEnableOption "FoundationDB Server";
 
     package = mkOption {
       type        = types.package;
-      description = lib.mdDoc ''
+      description = ''
         The FoundationDB package to use for this server. This must be specified by the user
         in order to ensure migrations and upgrades are controlled appropriately.
       '';
@@ -75,19 +75,19 @@ in
     publicAddress = mkOption {
       type        = types.str;
       default     = "auto";
-      description = lib.mdDoc "Publicly visible IP address of the process. Port is determined by process ID";
+      description = "Publicly visible IP address of the process. Port is determined by process ID";
     };
 
     listenAddress = mkOption {
       type        = types.str;
       default     = "public";
-      description = lib.mdDoc "Publicly visible IP address of the process. Port is determined by process ID";
+      description = "Publicly visible IP address of the process. Port is determined by process ID";
     };
 
     listenPortStart = mkOption {
       type          = types.int;
       default       = 4500;
-      description   = lib.mdDoc ''
+      description   = ''
         Starting port number for database listening sockets. Every FDB process binds to a
         subsequent port, to this number reflects the start of the overall range. e.g. having
         8 server processes will use all ports between 4500 and 4507.
@@ -97,7 +97,7 @@ in
     openFirewall = mkOption {
       type        = types.bool;
       default     = false;
-      description = lib.mdDoc ''
+      description = ''
         Open the firewall ports corresponding to FoundationDB processes and coordinators
         using {option}`config.networking.firewall.*`.
       '';
@@ -106,43 +106,43 @@ in
     dataDir = mkOption {
       type        = types.path;
       default     = "/var/lib/foundationdb";
-      description = lib.mdDoc "Data directory. All cluster data will be put under here.";
+      description = "Data directory. All cluster data will be put under here.";
     };
 
     logDir = mkOption {
       type        = types.path;
       default     = "/var/log/foundationdb";
-      description = lib.mdDoc "Log directory.";
+      description = "Log directory.";
     };
 
     user = mkOption {
       type        = types.str;
       default     = "foundationdb";
-      description = lib.mdDoc "User account under which FoundationDB runs.";
+      description = "User account under which FoundationDB runs.";
     };
 
     group = mkOption {
       type        = types.str;
       default     = "foundationdb";
-      description = lib.mdDoc "Group account under which FoundationDB runs.";
+      description = "Group account under which FoundationDB runs.";
     };
 
     class = mkOption {
       type        = types.nullOr (types.enum [ "storage" "transaction" "stateless" ]);
       default     = null;
-      description = lib.mdDoc "Process class";
+      description = "Process class";
     };
 
     restartDelay = mkOption {
       type = types.int;
       default = 10;
-      description = lib.mdDoc "Number of seconds to wait before restarting servers.";
+      description = "Number of seconds to wait before restarting servers.";
     };
 
     logSize = mkOption {
       type        = types.str;
       default     = "10MiB";
-      description = lib.mdDoc ''
+      description = ''
         Roll over to a new log file after the current log file
         reaches the specified size.
       '';
@@ -151,7 +151,7 @@ in
     maxLogSize = mkOption {
       type        = types.str;
       default     = "100MiB";
-      description = lib.mdDoc ''
+      description = ''
         Delete the oldest log file when the total size of all log
         files exceeds the specified size. If set to 0, old log files
         will not be deleted.
@@ -161,19 +161,19 @@ in
     serverProcesses = mkOption {
       type = types.int;
       default = 1;
-      description = lib.mdDoc "Number of fdbserver processes to run.";
+      description = "Number of fdbserver processes to run.";
     };
 
     backupProcesses = mkOption {
       type = types.int;
       default = 1;
-      description = lib.mdDoc "Number of backup_agent processes to run for snapshots.";
+      description = "Number of backup_agent processes to run for snapshots.";
     };
 
     memory = mkOption {
       type        = types.str;
       default     = "8GiB";
-      description = lib.mdDoc ''
+      description = ''
         Maximum memory used by the process. The default value is
         `8GiB`. When specified without a unit,
         `MiB` is assumed. This parameter does not
@@ -195,7 +195,7 @@ in
     storageMemory = mkOption {
       type        = types.str;
       default     = "1GiB";
-      description = lib.mdDoc ''
+      description = ''
         Maximum memory used for data storage. The default value is
         `1GiB`. When specified without a unit,
         `MB` is assumed. Clusters using the memory
@@ -210,7 +210,7 @@ in
 
     tls = mkOption {
       default = null;
-      description = lib.mdDoc ''
+      description = ''
         FoundationDB Transport Security Layer (TLS) settings.
       '';
 
@@ -218,7 +218,7 @@ in
         options = {
           certificate = mkOption {
             type = types.str;
-            description = lib.mdDoc ''
+            description = ''
               Path to the TLS certificate file. This certificate will
               be offered to, and may be verified by, clients.
             '';
@@ -226,13 +226,13 @@ in
 
           key = mkOption {
             type = types.str;
-            description = lib.mdDoc "Private key file for the certificate.";
+            description = "Private key file for the certificate.";
           };
 
           allowedPeers = mkOption {
             type = types.str;
             default = "Check.Valid=1,Check.Unexpired=1";
-            description = lib.mdDoc ''
+            description = ''
               "Peer verification string". This may be used to adjust which TLS
               client certificates a server will accept, as a form of user
               authorization; for example, it may only accept TLS clients who
@@ -253,7 +253,7 @@ in
         dataHall     = null;
       };
 
-      description = lib.mdDoc ''
+      description = ''
         FoundationDB locality settings.
       '';
 
@@ -262,7 +262,7 @@ in
           machineId = mkOption {
             default = null;
             type = types.nullOr types.str;
-            description = lib.mdDoc ''
+            description = ''
               Machine identifier key. All processes on a machine should share a
               unique id. By default, processes on a machine determine a unique id to share.
               This does not generally need to be set.
@@ -272,7 +272,7 @@ in
           zoneId = mkOption {
             default = null;
             type = types.nullOr types.str;
-            description = lib.mdDoc ''
+            description = ''
               Zone identifier key. Processes that share a zone id are
               considered non-unique for the purposes of data replication.
               If unset, defaults to machine id.
@@ -282,7 +282,7 @@ in
           datacenterId = mkOption {
             default = null;
             type = types.nullOr types.str;
-            description = lib.mdDoc ''
+            description = ''
               Data center identifier key. All processes physically located in a
               data center should share the id. If you are depending on data
               center based replication this must be set on all processes.
@@ -292,7 +292,7 @@ in
           dataHall = mkOption {
             default = null;
             type = types.nullOr types.str;
-            description = lib.mdDoc ''
+            description = ''
               Data hall identifier key. All processes physically located in a
               data hall should share the id. If you are depending on data
               hall based replication this must be set on all processes.
@@ -305,7 +305,7 @@ in
     extraReadWritePaths = mkOption {
       default = [ ];
       type = types.listOf types.path;
-      description = lib.mdDoc ''
+      description = ''
         An extra set of filesystem paths that FoundationDB can read to
         and write from. By default, FoundationDB runs under a heavily
         namespaced systemd environment without write access to most of
@@ -319,13 +319,13 @@ in
     pidfile = mkOption {
       type        = types.path;
       default     = "/run/foundationdb.pid";
-      description = lib.mdDoc "Path to pidfile for fdbmonitor.";
+      description = "Path to pidfile for fdbmonitor.";
     };
 
     traceFormat = mkOption {
       type = types.enum [ "xml" "json" ];
       default = "xml";
-      description = lib.mdDoc "Trace logging format.";
+      description = "Trace logging format.";
     };
   };
 
diff --git a/nixos/modules/services/databases/hbase-standalone.nix b/nixos/modules/services/databases/hbase-standalone.nix
index de295a57193f7..ac37e39329323 100644
--- a/nixos/modules/services/databases/hbase-standalone.nix
+++ b/nixos/modules/services/databases/hbase-standalone.nix
@@ -41,17 +41,17 @@ in {
   options = {
     services.hbase-standalone = {
 
-      enable = mkEnableOption (lib.mdDoc ''
+      enable = mkEnableOption ''
         HBase master in standalone mode with embedded regionserver and zookeper.
         Do not use this configuration for production nor for evaluating HBase performance
-      '');
+      '';
 
       package = mkPackageOption pkgs "hbase" { };
 
       user = mkOption {
         type = types.str;
         default = "hbase";
-        description = lib.mdDoc ''
+        description = ''
           User account under which HBase runs.
         '';
       };
@@ -59,7 +59,7 @@ in {
       group = mkOption {
         type = types.str;
         default = "hbase";
-        description = lib.mdDoc ''
+        description = ''
           Group account under which HBase runs.
         '';
       };
@@ -67,7 +67,7 @@ in {
       dataDir = mkOption {
         type = types.path;
         default = "/var/lib/hbase";
-        description = lib.mdDoc ''
+        description = ''
           Specifies location of HBase database files. This location should be
           writable and readable for the user the HBase service runs as
           (hbase by default).
@@ -77,7 +77,7 @@ in {
       logDir = mkOption {
         type = types.path;
         default = "/var/log/hbase";
-        description = lib.mdDoc ''
+        description = ''
           Specifies the location of HBase log files.
         '';
       };
@@ -94,7 +94,7 @@ in {
             "hbase.zookeeper.property.dataDir" = "''${config.${opt.dataDir}}/zookeeper";
           }
         '';
-        description = lib.mdDoc ''
+        description = ''
           configurations in hbase-site.xml, see <https://github.com/apache/hbase/blob/master/hbase-server/src/test/resources/hbase-site.xml> for details.
         '';
       };
diff --git a/nixos/modules/services/databases/influxdb.nix b/nixos/modules/services/databases/influxdb.nix
index adb212ab08d0d..6dd4ca3b71cd6 100644
--- a/nixos/modules/services/databases/influxdb.nix
+++ b/nixos/modules/services/databases/influxdb.nix
@@ -112,7 +112,7 @@ in
 
       enable = mkOption {
         default = false;
-        description = lib.mdDoc "Whether to enable the influxdb server";
+        description = "Whether to enable the influxdb server";
         type = types.bool;
       };
 
@@ -120,25 +120,25 @@ in
 
       user = mkOption {
         default = "influxdb";
-        description = lib.mdDoc "User account under which influxdb runs";
+        description = "User account under which influxdb runs";
         type = types.str;
       };
 
       group = mkOption {
         default = "influxdb";
-        description = lib.mdDoc "Group under which influxdb runs";
+        description = "Group under which influxdb runs";
         type = types.str;
       };
 
       dataDir = mkOption {
         default = "/var/db/influxdb";
-        description = lib.mdDoc "Data directory for influxd data files.";
+        description = "Data directory for influxd data files.";
         type = types.path;
       };
 
       extraConfig = mkOption {
         default = {};
-        description = lib.mdDoc "Extra configuration options for influxdb";
+        description = "Extra configuration options for influxdb";
         type = types.attrs;
       };
     };
diff --git a/nixos/modules/services/databases/influxdb2.nix b/nixos/modules/services/databases/influxdb2.nix
index 2a67d87d4bbb8..a534cdfbe1656 100644
--- a/nixos/modules/services/databases/influxdb2.nix
+++ b/nixos/modules/services/databases/influxdb2.nix
@@ -17,7 +17,6 @@ let
     listToAttrs
     literalExpression
     mapAttrsToList
-    mdDoc
     mkEnableOption
     mkPackageOption
     mkIf
@@ -130,32 +129,32 @@ let
   in {
     options = {
       present = mkOption {
-        description = mdDoc "Whether to ensure that this organization is present or absent.";
+        description = "Whether to ensure that this organization is present or absent.";
         type = types.bool;
         default = true;
       };
 
       description = mkOption {
-        description = mdDoc "Optional description for the organization.";
+        description = "Optional description for the organization.";
         default = null;
         type = types.nullOr types.str;
       };
 
       buckets = mkOption {
-        description = mdDoc "Buckets to provision in this organization.";
+        description = "Buckets to provision in this organization.";
         default = {};
         type = types.attrsOf (types.submodule (bucketSubmod: let
           bucket = bucketSubmod.config._module.args.name;
         in {
           options = {
             present = mkOption {
-              description = mdDoc "Whether to ensure that this bucket is present or absent.";
+              description = "Whether to ensure that this bucket is present or absent.";
               type = types.bool;
               default = true;
             };
 
             description = mkOption {
-              description = mdDoc "Optional description for the bucket.";
+              description = "Optional description for the bucket.";
               default = null;
               type = types.nullOr types.str;
             };
@@ -163,21 +162,21 @@ let
             retention = mkOption {
               type = types.ints.unsigned;
               default = 0;
-              description = mdDoc "The duration in seconds for which the bucket will retain data (0 is infinite).";
+              description = "The duration in seconds for which the bucket will retain data (0 is infinite).";
             };
           };
         }));
       };
 
       auths = mkOption {
-        description = mdDoc "API tokens to provision for the user in this organization.";
+        description = "API tokens to provision for the user in this organization.";
         default = {};
         type = types.attrsOf (types.submodule (authSubmod: let
           auth = authSubmod.config._module.args.name;
         in {
           options = {
             id = mkOption {
-              description = mdDoc "A unique identifier for this authentication token. Since influx doesn't store names for tokens, this will be hashed and appended to the description to identify the token.";
+              description = "A unique identifier for this authentication token. Since influx doesn't store names for tokens, this will be hashed and appended to the description to identify the token.";
               readOnly = true;
               default = builtins.substring 0 32 (builtins.hashString "sha256" "${org}:${auth}");
               defaultText = "<a hash derived from org and name>";
@@ -185,7 +184,7 @@ let
             };
 
             present = mkOption {
-              description = mdDoc "Whether to ensure that this user is present or absent.";
+              description = "Whether to ensure that this user is present or absent.";
               type = types.bool;
               default = true;
             };
@@ -204,23 +203,23 @@ let
             tokenFile = mkOption {
               type = types.nullOr types.path;
               default = null;
-              description = mdDoc "The token value. If not given, influx will automatically generate one.";
+              description = "The token value. If not given, influx will automatically generate one.";
             };
 
             operator = mkOption {
-              description = mdDoc "Grants all permissions in all organizations.";
+              description = "Grants all permissions in all organizations.";
               default = false;
               type = types.bool;
             };
 
             allAccess = mkOption {
-              description = mdDoc "Grants all permissions in the associated organization.";
+              description = "Grants all permissions in the associated organization.";
               default = false;
               type = types.bool;
             };
 
             readPermissions = mkOption {
-              description = mdDoc ''
+              description = ''
                 The read permissions to include for this token. Access is usually granted only
                 for resources in the associated organization.
 
@@ -239,7 +238,7 @@ let
             };
 
             writePermissions = mkOption {
-              description = mdDoc ''
+              description = ''
                 The read permissions to include for this token. Access is usually granted only
                 for resources in the associated organization.
 
@@ -258,13 +257,13 @@ let
             };
 
             readBuckets = mkOption {
-              description = mdDoc "The organization's buckets which should be allowed to be read";
+              description = "The organization's buckets which should be allowed to be read";
               default = [];
               type = types.listOf types.str;
             };
 
             writeBuckets = mkOption {
-              description = mdDoc "The organization's buckets which should be allowed to be written";
+              description = "The organization's buckets which should be allowed to be written";
               default = [];
               type = types.listOf types.str;
             };
@@ -277,13 +276,13 @@ in
 {
   options = {
     services.influxdb2 = {
-      enable = mkEnableOption (mdDoc "the influxdb2 server");
+      enable = mkEnableOption "the influxdb2 server";
 
       package = mkPackageOption pkgs "influxdb2" { };
 
       settings = mkOption {
         default = { };
-        description = mdDoc ''configuration options for influxdb2, see <https://docs.influxdata.com/influxdb/v2.0/reference/config-options> for details.'';
+        description = ''configuration options for influxdb2, see <https://docs.influxdata.com/influxdb/v2.0/reference/config-options> for details.'';
         type = format.type;
       };
 
@@ -294,40 +293,40 @@ in
           organization = mkOption {
             type = types.str;
             example = "main";
-            description = mdDoc "Primary organization name";
+            description = "Primary organization name";
           };
 
           bucket = mkOption {
             type = types.str;
             example = "example";
-            description = mdDoc "Primary bucket name";
+            description = "Primary bucket name";
           };
 
           username = mkOption {
             type = types.str;
             default = "admin";
-            description = mdDoc "Primary username";
+            description = "Primary username";
           };
 
           retention = mkOption {
             type = types.ints.unsigned;
             default = 0;
-            description = mdDoc "The duration in seconds for which the bucket will retain data (0 is infinite).";
+            description = "The duration in seconds for which the bucket will retain data (0 is infinite).";
           };
 
           passwordFile = mkOption {
             type = types.path;
-            description = mdDoc "Password for primary user. Don't use a file from the nix store!";
+            description = "Password for primary user. Don't use a file from the nix store!";
           };
 
           tokenFile = mkOption {
             type = types.path;
-            description = mdDoc "API Token to set for the admin user. Don't use a file from the nix store!";
+            description = "API Token to set for the admin user. Don't use a file from the nix store!";
           };
         };
 
         organizations = mkOption {
-          description = mdDoc "Organizations to provision.";
+          description = "Organizations to provision.";
           example = literalExpression ''
             {
               myorg = {
@@ -348,7 +347,7 @@ in
         };
 
         users = mkOption {
-          description = mdDoc "Users to provision.";
+          description = "Users to provision.";
           default = {};
           example = literalExpression ''
             {
@@ -362,13 +361,13 @@ in
           in {
             options = {
               present = mkOption {
-                description = mdDoc "Whether to ensure that this user is present or absent.";
+                description = "Whether to ensure that this user is present or absent.";
                 type = types.bool;
                 default = true;
               };
 
               passwordFile = mkOption {
-                description = mdDoc "Password for the user. If unset, the user will not be able to log in until a password is set by an operator! Don't use a file from the nix store!";
+                description = "Password for the user. If unset, the user will not be able to log in until a password is set by an operator! Don't use a file from the nix store!";
                 default = null;
                 type = types.nullOr types.path;
               };
diff --git a/nixos/modules/services/databases/lldap.nix b/nixos/modules/services/databases/lldap.nix
index 75ce1ca54f87b..e014a88b3c4fa 100644
--- a/nixos/modules/services/databases/lldap.nix
+++ b/nixos/modules/services/databases/lldap.nix
@@ -6,7 +6,7 @@ let
 in
 {
   options.services.lldap = with lib; {
-    enable = mkEnableOption (mdDoc "lldap, a lightweight authentication server that provides an opinionated, simplified LDAP interface for authentication");
+    enable = mkEnableOption "lldap, a lightweight authentication server that provides an opinionated, simplified LDAP interface for authentication";
 
     package = mkPackageOption pkgs "lldap" { };
 
@@ -17,7 +17,7 @@ in
         LLDAP_JWT_SECRET_FILE = "/run/lldap/jwt_secret";
         LLDAP_LDAP_USER_PASS_FILE = "/run/lldap/user_password";
       };
-      description = lib.mdDoc ''
+      description = ''
         Environment variables passed to the service.
         Any config option name prefixed with `LLDAP_` takes priority over the one in the configuration file.
       '';
@@ -26,13 +26,13 @@ in
     environmentFile = mkOption {
       type = types.nullOr types.path;
       default = null;
-      description = lib.mdDoc ''
+      description = ''
         Environment file as defined in {manpage}`systemd.exec(5)` passed to the service.
       '';
     };
 
     settings = mkOption {
-      description = mdDoc ''
+      description = ''
         Free-form settings written directly to the `lldap_config.toml` file.
         Refer to <https://github.com/lldap/lldap/blob/main/lldap_config.docker_template.toml> for supported values.
       '';
@@ -44,55 +44,55 @@ in
         options = {
           ldap_host = mkOption {
             type = types.str;
-            description = mdDoc "The host address that the LDAP server will be bound to.";
+            description = "The host address that the LDAP server will be bound to.";
             default = "::";
           };
 
           ldap_port = mkOption {
             type = types.port;
-            description = mdDoc "The port on which to have the LDAP server.";
+            description = "The port on which to have the LDAP server.";
             default = 3890;
           };
 
           http_host = mkOption {
             type = types.str;
-            description = mdDoc "The host address that the HTTP server will be bound to.";
+            description = "The host address that the HTTP server will be bound to.";
             default = "::";
           };
 
           http_port = mkOption {
             type = types.port;
-            description = mdDoc "The port on which to have the HTTP server, for user login and administration.";
+            description = "The port on which to have the HTTP server, for user login and administration.";
             default = 17170;
           };
 
           http_url = mkOption {
             type = types.str;
-            description = mdDoc "The public URL of the server, for password reset links.";
+            description = "The public URL of the server, for password reset links.";
             default = "http://localhost";
           };
 
           ldap_base_dn = mkOption {
             type = types.str;
-            description = mdDoc "Base DN for LDAP.";
+            description = "Base DN for LDAP.";
             example = "dc=example,dc=com";
           };
 
           ldap_user_dn = mkOption {
             type = types.str;
-            description = mdDoc "Admin username";
+            description = "Admin username";
             default = "admin";
           };
 
           ldap_user_email = mkOption {
             type = types.str;
-            description = mdDoc "Admin email.";
+            description = "Admin email.";
             default = "admin@example.com";
           };
 
           database_url = mkOption {
             type = types.str;
-            description = mdDoc "Database URL.";
+            description = "Database URL.";
             default = "sqlite://./users.db?mode=rwc";
             example = "postgres://postgres-user:password@postgres-server/my-database";
           };
diff --git a/nixos/modules/services/databases/memcached.nix b/nixos/modules/services/databases/memcached.nix
index fd943c20091ab..e38931b6b7ea8 100644
--- a/nixos/modules/services/databases/memcached.nix
+++ b/nixos/modules/services/databases/memcached.nix
@@ -17,44 +17,44 @@ in
   options = {
 
     services.memcached = {
-      enable = mkEnableOption (lib.mdDoc "Memcached");
+      enable = mkEnableOption "Memcached";
 
       user = mkOption {
         type = types.str;
         default = "memcached";
-        description = lib.mdDoc "The user to run Memcached as";
+        description = "The user to run Memcached as";
       };
 
       listen = mkOption {
         type = types.str;
         default = "127.0.0.1";
-        description = lib.mdDoc "The IP address to bind to.";
+        description = "The IP address to bind to.";
       };
 
       port = mkOption {
         type = types.port;
         default = 11211;
-        description = lib.mdDoc "The port to bind to.";
+        description = "The port to bind to.";
       };
 
-      enableUnixSocket = mkEnableOption (lib.mdDoc "Unix Domain Socket at /run/memcached/memcached.sock instead of listening on an IP address and port. The `listen` and `port` options are ignored.");
+      enableUnixSocket = mkEnableOption "Unix Domain Socket at /run/memcached/memcached.sock instead of listening on an IP address and port. The `listen` and `port` options are ignored.";
 
       maxMemory = mkOption {
         type = types.ints.unsigned;
         default = 64;
-        description = lib.mdDoc "The maximum amount of memory to use for storage, in megabytes.";
+        description = "The maximum amount of memory to use for storage, in megabytes.";
       };
 
       maxConnections = mkOption {
         type = types.ints.unsigned;
         default = 1024;
-        description = lib.mdDoc "The maximum number of simultaneous connections.";
+        description = "The maximum number of simultaneous connections.";
       };
 
       extraOptions = mkOption {
         type = types.listOf types.str;
         default = [];
-        description = lib.mdDoc "A list of extra options that will be added as a suffix when running memcached.";
+        description = "A list of extra options that will be added as a suffix when running memcached.";
       };
     };
 
diff --git a/nixos/modules/services/databases/monetdb.nix b/nixos/modules/services/databases/monetdb.nix
index 1dddeda0959c0..5025eb30369b4 100644
--- a/nixos/modules/services/databases/monetdb.nix
+++ b/nixos/modules/services/databases/monetdb.nix
@@ -12,39 +12,39 @@ in {
   options = {
     services.monetdb = {
 
-      enable = mkEnableOption (lib.mdDoc "the MonetDB database server");
+      enable = mkEnableOption "the MonetDB database server";
 
       package = mkPackageOption pkgs "monetdb" { };
 
       user = mkOption {
         type = types.str;
         default = "monetdb";
-        description = lib.mdDoc "User account under which MonetDB runs.";
+        description = "User account under which MonetDB runs.";
       };
 
       group = mkOption {
         type = types.str;
         default = "monetdb";
-        description = lib.mdDoc "Group under which MonetDB runs.";
+        description = "Group under which MonetDB runs.";
       };
 
       dataDir = mkOption {
         type = types.path;
         default = "/var/lib/monetdb";
-        description = lib.mdDoc "Data directory for the dbfarm.";
+        description = "Data directory for the dbfarm.";
       };
 
       port = mkOption {
         type = types.ints.u16;
         default = 50000;
-        description = lib.mdDoc "Port to listen on.";
+        description = "Port to listen on.";
       };
 
       listenAddress = mkOption {
         type = types.str;
         default = "127.0.0.1";
         example = "0.0.0.0";
-        description = lib.mdDoc "Address to listen on.";
+        description = "Address to listen on.";
       };
     };
   };
diff --git a/nixos/modules/services/databases/mongodb.nix b/nixos/modules/services/databases/mongodb.nix
index f10364bc76c10..8b8a664107f22 100644
--- a/nixos/modules/services/databases/mongodb.nix
+++ b/nixos/modules/services/databases/mongodb.nix
@@ -29,56 +29,56 @@ in
 
     services.mongodb = {
 
-      enable = mkEnableOption (lib.mdDoc "the MongoDB server");
+      enable = mkEnableOption "the MongoDB server";
 
       package = mkPackageOption pkgs "mongodb" { };
 
       user = mkOption {
         type = types.str;
         default = "mongodb";
-        description = lib.mdDoc "User account under which MongoDB runs";
+        description = "User account under which MongoDB runs";
       };
 
       bind_ip = mkOption {
         type = types.str;
         default = "127.0.0.1";
-        description = lib.mdDoc "IP to bind to";
+        description = "IP to bind to";
       };
 
       quiet = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc "quieter output";
+        description = "quieter output";
       };
 
       enableAuth = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc "Enable client authentication. Creates a default superuser with username root!";
+        description = "Enable client authentication. Creates a default superuser with username root!";
       };
 
       initialRootPassword = mkOption {
         type = types.nullOr types.str;
         default = null;
-        description = lib.mdDoc "Password for the root user if auth is enabled.";
+        description = "Password for the root user if auth is enabled.";
       };
 
       dbpath = mkOption {
         type = types.str;
         default = "/var/db/mongodb";
-        description = lib.mdDoc "Location where MongoDB stores its files";
+        description = "Location where MongoDB stores its files";
       };
 
       pidFile = mkOption {
         type = types.str;
         default = "/run/mongodb.pid";
-        description = lib.mdDoc "Location of MongoDB pid file";
+        description = "Location of MongoDB pid file";
       };
 
       replSetName = mkOption {
         type = types.str;
         default = "";
-        description = lib.mdDoc ''
+        description = ''
           If this instance is part of a replica set, set its name here.
           Otherwise, leave empty to run as single node.
         '';
@@ -90,13 +90,13 @@ in
         example = ''
           storage.journal.enabled: false
         '';
-        description = lib.mdDoc "MongoDB extra configuration in YAML format";
+        description = "MongoDB extra configuration in YAML format";
       };
 
       initialScript = mkOption {
         type = types.nullOr types.path;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           A file containing MongoDB statements to execute on first startup.
         '';
       };
diff --git a/nixos/modules/services/databases/mysql.nix b/nixos/modules/services/databases/mysql.nix
index a6d71cca88de4..4b2e83e71e206 100644
--- a/nixos/modules/services/databases/mysql.nix
+++ b/nixos/modules/services/databases/mysql.nix
@@ -34,12 +34,12 @@ in
 
     services.mysql = {
 
-      enable = mkEnableOption (lib.mdDoc "MySQL server");
+      enable = mkEnableOption "MySQL server";
 
       package = mkOption {
         type = types.package;
         example = literalExpression "pkgs.mariadb";
-        description = lib.mdDoc ''
+        description = ''
           Which MySQL derivation to use. MariaDB packages are supported too.
         '';
       };
@@ -47,7 +47,7 @@ in
       user = mkOption {
         type = types.str;
         default = "mysql";
-        description = lib.mdDoc ''
+        description = ''
           User account under which MySQL runs.
 
           ::: {.note}
@@ -61,7 +61,7 @@ in
       group = mkOption {
         type = types.str;
         default = "mysql";
-        description = lib.mdDoc ''
+        description = ''
           Group account under which MySQL runs.
 
           ::: {.note}
@@ -75,7 +75,7 @@ in
       dataDir = mkOption {
         type = types.path;
         example = "/var/lib/mysql";
-        description = lib.mdDoc ''
+        description = ''
           The data directory for MySQL.
 
           ::: {.note}
@@ -91,7 +91,7 @@ in
         defaultText = ''
           A configuration file automatically generated by NixOS.
         '';
-        description = lib.mdDoc ''
+        description = ''
           Override the configuration file used by MySQL. By default,
           NixOS generates one automatically from {option}`services.mysql.settings`.
         '';
@@ -110,7 +110,7 @@ in
       settings = mkOption {
         type = format.type;
         default = {};
-        description = lib.mdDoc ''
+        description = ''
           MySQL configuration. Refer to
           <https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html>,
           <https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html>,
@@ -144,14 +144,14 @@ in
           options = {
             name = mkOption {
               type = types.str;
-              description = lib.mdDoc ''
+              description = ''
                 The name of the database to create.
               '';
             };
             schema = mkOption {
               type = types.nullOr types.path;
               default = null;
-              description = lib.mdDoc ''
+              description = ''
                 The initial schema of the database; if null (the default),
                 an empty database is created.
               '';
@@ -159,7 +159,7 @@ in
           };
         });
         default = [];
-        description = lib.mdDoc ''
+        description = ''
           List of database names and their initial schemas that should be used to create databases on the first startup
           of MySQL. The schema attribute is optional: If not specified, an empty database is created.
         '';
@@ -174,13 +174,13 @@ in
       initialScript = mkOption {
         type = types.nullOr types.path;
         default = null;
-        description = lib.mdDoc "A file containing SQL statements to be executed on the first startup. Can be used for granting certain permissions on the database.";
+        description = "A file containing SQL statements to be executed on the first startup. Can be used for granting certain permissions on the database.";
       };
 
       ensureDatabases = mkOption {
         type = types.listOf types.str;
         default = [];
-        description = lib.mdDoc ''
+        description = ''
           Ensures that the specified databases exist.
           This option will never delete existing databases, especially not when the value of this
           option is changed. This means that databases created once through this option or
@@ -197,14 +197,14 @@ in
           options = {
             name = mkOption {
               type = types.str;
-              description = lib.mdDoc ''
+              description = ''
                 Name of the user to ensure.
               '';
             };
             ensurePermissions = mkOption {
               type = types.attrsOf types.str;
               default = {};
-              description = lib.mdDoc ''
+              description = ''
                 Permissions to ensure for the user, specified as attribute set.
                 The attribute names specify the database and tables to grant the permissions for,
                 separated by a dot. You may use wildcards here.
@@ -226,7 +226,7 @@ in
           };
         });
         default = [];
-        description = lib.mdDoc ''
+        description = ''
           Ensures that the specified users exist and have at least the ensured permissions.
           The MySQL users will be identified using Unix socket authentication. This authenticates the Unix user with the
           same name only, and that without the need for a password.
@@ -256,39 +256,39 @@ in
         role = mkOption {
           type = types.enum [ "master" "slave" "none" ];
           default = "none";
-          description = lib.mdDoc "Role of the MySQL server instance.";
+          description = "Role of the MySQL server instance.";
         };
 
         serverId = mkOption {
           type = types.int;
           default = 1;
-          description = lib.mdDoc "Id of the MySQL server instance. This number must be unique for each instance.";
+          description = "Id of the MySQL server instance. This number must be unique for each instance.";
         };
 
         masterHost = mkOption {
           type = types.str;
-          description = lib.mdDoc "Hostname of the MySQL master server.";
+          description = "Hostname of the MySQL master server.";
         };
 
         slaveHost = mkOption {
           type = types.str;
-          description = lib.mdDoc "Hostname of the MySQL slave server.";
+          description = "Hostname of the MySQL slave server.";
         };
 
         masterUser = mkOption {
           type = types.str;
-          description = lib.mdDoc "Username of the MySQL replication user.";
+          description = "Username of the MySQL replication user.";
         };
 
         masterPassword = mkOption {
           type = types.str;
-          description = lib.mdDoc "Password of the MySQL replication user.";
+          description = "Password of the MySQL replication user.";
         };
 
         masterPort = mkOption {
           type = types.port;
           default = 3306;
-          description = lib.mdDoc "Port number on which the MySQL master server runs.";
+          description = "Port number on which the MySQL master server runs.";
         };
       };
     };
diff --git a/nixos/modules/services/databases/neo4j.nix b/nixos/modules/services/databases/neo4j.nix
index 45630e2d4488f..4369ec2007dcf 100644
--- a/nixos/modules/services/databases/neo4j.nix
+++ b/nixos/modules/services/databases/neo4j.nix
@@ -121,7 +121,7 @@ in {
     enable = mkOption {
       type = types.bool;
       default = false;
-      description = lib.mdDoc ''
+      description = ''
         Whether to enable Neo4j Community Edition.
       '';
     };
@@ -129,7 +129,7 @@ in {
     constrainLoadCsv = mkOption {
       type = types.bool;
       default = true;
-      description = lib.mdDoc ''
+      description = ''
         Sets the root directory for file URLs used with the Cypher
         `LOAD CSV` clause to be that defined by
         {option}`directories.imports`. It restricts
@@ -144,7 +144,7 @@ in {
     defaultListenAddress = mkOption {
       type = types.str;
       default = "127.0.0.1";
-      description = lib.mdDoc ''
+      description = ''
         Default network interface to listen for incoming connections. To
         listen for connections on all interfaces, use "0.0.0.0".
 
@@ -158,7 +158,7 @@ in {
     extraServerConfig = mkOption {
       type = types.lines;
       default = "";
-      description = lib.mdDoc ''
+      description = ''
         Extra configuration for Neo4j Community server. Refer to the
         [complete reference](https://neo4j.com/docs/operations-manual/current/reference/configuration-settings/)
         of Neo4j configuration settings.
@@ -170,7 +170,7 @@ in {
     readOnly = mkOption {
       type = types.bool;
       default = false;
-      description = lib.mdDoc ''
+      description = ''
         Only allow read operations from this Neo4j instance.
       '';
     };
@@ -178,7 +178,7 @@ in {
     workerCount = mkOption {
       type = types.ints.between 0 44738;
       default = 0;
-      description = lib.mdDoc ''
+      description = ''
         Number of Neo4j worker threads, where the default of
         `0` indicates a worker count equal to the number of
         available processors.
@@ -189,7 +189,7 @@ in {
       enable = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc ''
+        description = ''
           Enable the BOLT connector for Neo4j. Setting this option to
           `false` will stop Neo4j from listening for incoming
           connections on the BOLT port (7687 by default).
@@ -199,7 +199,7 @@ in {
       listenAddress = mkOption {
         type = types.str;
         default = ":7687";
-        description = lib.mdDoc ''
+        description = ''
           Neo4j listen address for BOLT traffic. The listen address is
           expressed in the format `<ip-address>:<port-number>`.
         '';
@@ -208,7 +208,7 @@ in {
       sslPolicy = mkOption {
         type = types.str;
         default = "legacy";
-        description = lib.mdDoc ''
+        description = ''
           Neo4j SSL policy for BOLT traffic.
 
           The legacy policy is a special policy which is not defined in
@@ -226,7 +226,7 @@ in {
       tlsLevel = mkOption {
         type = types.enum [ "REQUIRED" "OPTIONAL" "DISABLED" ];
         default = "OPTIONAL";
-        description = lib.mdDoc ''
+        description = ''
           SSL/TSL requirement level for BOLT traffic.
         '';
       };
@@ -237,7 +237,7 @@ in {
         type = types.path;
         default = "${cfg.directories.home}/certificates";
         defaultText = literalExpression ''"''${config.${opt.directories.home}}/certificates"'';
-        description = lib.mdDoc ''
+        description = ''
           Directory for storing certificates to be used by Neo4j for
           TLS connections.
 
@@ -260,7 +260,7 @@ in {
         type = types.path;
         default = "${cfg.directories.home}/data";
         defaultText = literalExpression ''"''${config.${opt.directories.home}}/data"'';
-        description = lib.mdDoc ''
+        description = ''
           Path of the data directory. You must not configure more than one
           Neo4j installation to use the same data directory.
 
@@ -273,7 +273,7 @@ in {
       home = mkOption {
         type = types.path;
         default = "/var/lib/neo4j";
-        description = lib.mdDoc ''
+        description = ''
           Path of the Neo4j home directory. Other default directories are
           subdirectories of this path. This directory will be created if
           non-existent, and its ownership will be {command}`chown` to
@@ -285,7 +285,7 @@ in {
         type = types.path;
         default = "${cfg.directories.home}/import";
         defaultText = literalExpression ''"''${config.${opt.directories.home}}/import"'';
-        description = lib.mdDoc ''
+        description = ''
           The root directory for file URLs used with the Cypher
           `LOAD CSV` clause. Only meaningful when
           {option}`constrainLoadCvs` is set to
@@ -301,7 +301,7 @@ in {
         type = types.path;
         default = "${cfg.directories.home}/plugins";
         defaultText = literalExpression ''"''${config.${opt.directories.home}}/plugins"'';
-        description = lib.mdDoc ''
+        description = ''
           Path of the database plugin directory. Compiled Java JAR files that
           contain database procedures will be loaded if they are placed in
           this directory.
@@ -317,7 +317,7 @@ in {
       enable = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc ''
+        description = ''
           Enable the HTTP connector for Neo4j. Setting this option to
           `false` will stop Neo4j from listening for incoming
           connections on the HTTPS port (7474 by default).
@@ -327,7 +327,7 @@ in {
       listenAddress = mkOption {
         type = types.str;
         default = ":7474";
-        description = lib.mdDoc ''
+        description = ''
           Neo4j listen address for HTTP traffic. The listen address is
           expressed in the format `<ip-address>:<port-number>`.
         '';
@@ -338,7 +338,7 @@ in {
       enable = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc ''
+        description = ''
           Enable the HTTPS connector for Neo4j. Setting this option to
           `false` will stop Neo4j from listening for incoming
           connections on the HTTPS port (7473 by default).
@@ -348,7 +348,7 @@ in {
       listenAddress = mkOption {
         type = types.str;
         default = ":7473";
-        description = lib.mdDoc ''
+        description = ''
           Neo4j listen address for HTTPS traffic. The listen address is
           expressed in the format `<ip-address>:<port-number>`.
         '';
@@ -357,7 +357,7 @@ in {
       sslPolicy = mkOption {
         type = types.str;
         default = "legacy";
-        description = lib.mdDoc ''
+        description = ''
           Neo4j SSL policy for HTTPS traffic.
 
           The legacy policy is a special policy which is not defined in the
@@ -373,7 +373,7 @@ in {
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Enable a remote shell server which Neo4j Shell clients can log in to.
           Only applicable to {command}`neo4j-shell`.
         '';
@@ -387,7 +387,7 @@ in {
           allowKeyGeneration = mkOption {
             type = types.bool;
             default = false;
-            description = lib.mdDoc ''
+            description = ''
               Allows the generation of a private key and associated self-signed
               certificate. Only performed when both objects cannot be found for
               this policy. It is recommended to turn this off again after keys
@@ -406,7 +406,7 @@ in {
             type = types.path;
             default = "${cfg.directories.certificates}/${name}";
             defaultText = literalExpression ''"''${config.${opt.directories.certificates}}/''${name}"'';
-            description = lib.mdDoc ''
+            description = ''
               The mandatory base directory for cryptographic objects of this
               policy. This path is only automatically generated when this
               option as well as {option}`directories.certificates` are
@@ -423,7 +423,7 @@ in {
           ciphers = mkOption {
             type = types.nullOr (types.listOf types.str);
             default = null;
-            description = lib.mdDoc ''
+            description = ''
               Restrict the allowed ciphers of this policy to those defined
               here. The default ciphers are those of the JVM platform.
             '';
@@ -432,7 +432,7 @@ in {
           clientAuth = mkOption {
             type = types.enum [ "NONE" "OPTIONAL" "REQUIRE" ];
             default = "REQUIRE";
-            description = lib.mdDoc ''
+            description = ''
               The client authentication stance for this policy.
             '';
           };
@@ -440,7 +440,7 @@ in {
           privateKey = mkOption {
             type = types.str;
             default = "private.key";
-            description = lib.mdDoc ''
+            description = ''
               The name of private PKCS #8 key file for this policy to be found
               in the {option}`baseDirectory`, or the absolute path to
               the key file. It is mandatory that a key can be found or generated.
@@ -450,7 +450,7 @@ in {
           publicCertificate = mkOption {
             type = types.str;
             default = "public.crt";
-            description = lib.mdDoc ''
+            description = ''
               The name of public X.509 certificate (chain) file in PEM format
               for this policy to be found in the {option}`baseDirectory`,
               or the absolute path to the certificate file. It is mandatory
@@ -466,7 +466,7 @@ in {
             type = types.path;
             default = "${config.baseDirectory}/revoked";
             defaultText = literalExpression ''"''${config.${options.baseDirectory}}/revoked"'';
-            description = lib.mdDoc ''
+            description = ''
               Path to directory of CRLs (Certificate Revocation Lists) in
               PEM format. Must be an absolute path. The existence of this
               directory is mandatory and will need to be created manually when:
@@ -481,7 +481,7 @@ in {
           tlsVersions = mkOption {
             type = types.listOf types.str;
             default = [ "TLSv1.2" ];
-            description = lib.mdDoc ''
+            description = ''
               Restrict the TLS protocol versions of this policy to those
               defined here.
             '';
@@ -490,7 +490,7 @@ in {
           trustAll = mkOption {
             type = types.bool;
             default = false;
-            description = lib.mdDoc ''
+            description = ''
               Makes this policy trust all remote parties. Enabling this is not
               recommended and the policy's trusted directory will be ignored.
               Use of this mode is discouraged. It would offer encryption but
@@ -502,7 +502,7 @@ in {
             type = types.path;
             default = "${config.baseDirectory}/trusted";
             defaultText = literalExpression ''"''${config.${options.baseDirectory}}/trusted"'';
-            description = lib.mdDoc ''
+            description = ''
               Path to directory of X.509 certificates in PEM format for
               trusted parties. Must be an absolute path. The existence of this
               directory is mandatory and will need to be created manually when:
@@ -522,7 +522,7 @@ in {
             type = types.listOf types.path;
             internal = true;
             readOnly = true;
-            description = lib.mdDoc ''
+            description = ''
               Directories of this policy that will be created automatically
               when the certificates directory is left at its default value.
               This includes all options of type path that are left at their
@@ -538,7 +538,7 @@ in {
 
       }));
       default = {};
-      description = lib.mdDoc ''
+      description = ''
         Defines the SSL policies for use with Neo4j connectors. Each attribute
         of this set defines a policy, with the attribute name defining the name
         of the policy and its namespace. Refer to the operations manual section
diff --git a/nixos/modules/services/databases/openldap.nix b/nixos/modules/services/databases/openldap.nix
index df36e37976a44..feb974cdf6d37 100644
--- a/nixos/modules/services/databases/openldap.nix
+++ b/nixos/modules/services/databases/openldap.nix
@@ -31,7 +31,7 @@ let
         attrs = mkOption {
           type = types.attrsOf ldapValueType;
           default = {};
-          description = lib.mdDoc "Attributes of the parent entry.";
+          description = "Attributes of the parent entry.";
         };
         children = mkOption {
           # Hide the child attributes, to avoid infinite recursion in e.g. documentation
@@ -40,7 +40,7 @@ let
             hiddenOptions = lib.mapAttrs (name: attr: attr // { visible = false; }) options;
           in types.attrsOf (types.submodule { options = hiddenOptions; });
           default = {};
-          description = lib.mdDoc "Child entries of the current entry, with recursively the same structure.";
+          description = "Child entries of the current entry, with recursively the same structure.";
           example = lib.literalExpression ''
             {
                 "cn=schema" = {
@@ -59,7 +59,7 @@ let
         includes = mkOption {
           type = types.listOf types.path;
           default = [];
-          description = lib.mdDoc ''
+          description = ''
             LDIF files to include after the parent's attributes but before its children.
           '';
         };
@@ -88,7 +88,7 @@ in {
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc "Whether to enable the ldap server.";
+        description = "Whether to enable the ldap server.";
       };
 
       package = mkPackageOption pkgs "openldap" {
@@ -102,25 +102,25 @@ in {
       user = mkOption {
         type = types.str;
         default = "openldap";
-        description = lib.mdDoc "User account under which slapd runs.";
+        description = "User account under which slapd runs.";
       };
 
       group = mkOption {
         type = types.str;
         default = "openldap";
-        description = lib.mdDoc "Group account under which slapd runs.";
+        description = "Group account under which slapd runs.";
       };
 
       urlList = mkOption {
         type = types.listOf types.str;
         default = [ "ldap:///" ];
-        description = lib.mdDoc "URL list slapd should listen on.";
+        description = "URL list slapd should listen on.";
         example = [ "ldaps:///" ];
       };
 
       settings = mkOption {
         type = ldapAttrsType;
-        description = lib.mdDoc "Configuration for OpenLDAP, in OLC format";
+        description = "Configuration for OpenLDAP, in OLC format";
         example = lib.literalExpression ''
           {
             attrs.olcLogLevel = [ "stats" ];
@@ -168,7 +168,7 @@ in {
       configDir = mkOption {
         type = types.nullOr types.path;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           Use this config directory instead of generating one from the
           `settings` option. Overrides all NixOS settings.
         '';
@@ -178,7 +178,7 @@ in {
       mutableConfig = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Whether to allow writable on-line configuration. If
           `true`, the NixOS settings will only be used to
           initialize the OpenLDAP configuration if it does not exist, and are
@@ -189,7 +189,7 @@ in {
       declarativeContents = mkOption {
         type = with types; attrsOf lines;
         default = {};
-        description = lib.mdDoc ''
+        description = ''
           Declarative contents for the LDAP database, in LDIF format by suffix.
 
           All data will be erased when starting the LDAP server. Modifications
diff --git a/nixos/modules/services/databases/opentsdb.nix b/nixos/modules/services/databases/opentsdb.nix
index 25f413db809f3..e104c42f8b240 100644
--- a/nixos/modules/services/databases/opentsdb.nix
+++ b/nixos/modules/services/databases/opentsdb.nix
@@ -15,14 +15,14 @@ in {
 
     services.opentsdb = {
 
-      enable = mkEnableOption (lib.mdDoc "OpenTSDB");
+      enable = mkEnableOption "OpenTSDB";
 
       package = mkPackageOption pkgs "opentsdb" { };
 
       user = mkOption {
         type = types.str;
         default = "opentsdb";
-        description = lib.mdDoc ''
+        description = ''
           User account under which OpenTSDB runs.
         '';
       };
@@ -30,7 +30,7 @@ in {
       group = mkOption {
         type = types.str;
         default = "opentsdb";
-        description = lib.mdDoc ''
+        description = ''
           Group account under which OpenTSDB runs.
         '';
       };
@@ -38,7 +38,7 @@ in {
       port = mkOption {
         type = types.port;
         default = 4242;
-        description = lib.mdDoc ''
+        description = ''
           Which port OpenTSDB listens on.
         '';
       };
@@ -49,7 +49,7 @@ in {
           tsd.core.auto_create_metrics = true
           tsd.http.request.enable_chunked  = true
         '';
-        description = lib.mdDoc ''
+        description = ''
           The contents of OpenTSDB's configuration file
         '';
       };
diff --git a/nixos/modules/services/databases/pgbouncer.nix b/nixos/modules/services/databases/pgbouncer.nix
index 157d49c131617..32538789fb17a 100644
--- a/nixos/modules/services/databases/pgbouncer.nix
+++ b/nixos/modules/services/databases/pgbouncer.nix
@@ -77,14 +77,14 @@ in {
 
     # NixOS settings
 
-    enable = mkEnableOption (lib.mdDoc "PostgreSQL connection pooler");
+    enable = mkEnableOption "PostgreSQL connection pooler";
 
     package = mkPackageOption pkgs "pgbouncer" { };
 
     openFirewall = mkOption {
       type = types.bool;
       default = false;
-      description = lib.mdDoc ''
+      description = ''
         Whether to automatically open the specified TCP port in the firewall.
       '';
     };
@@ -94,7 +94,7 @@ in {
     logFile = mkOption {
       type = types.nullOr types.str;
       default = null;
-      description = lib.mdDoc ''
+      description = ''
         Specifies a log file in addition to journald.
       '';
     };
@@ -103,7 +103,7 @@ in {
       type = types.nullOr types.commas;
       example = "*";
       default = null;
-      description = lib.mdDoc ''
+      description = ''
         Specifies a list (comma-separated) of addresses where to listen for TCP connections.
         You may also use * meaning ā€œlisten on all addressesā€.
         When not set, only Unix socket connections are accepted.
@@ -115,7 +115,7 @@ in {
     listenPort = mkOption {
       type = types.port;
       default = 6432;
-      description = lib.mdDoc ''
+      description = ''
         Which port to listen on. Applies to both TCP and Unix sockets.
       '';
     };
@@ -123,7 +123,7 @@ in {
     poolMode = mkOption {
       type = types.enum [ "session" "transaction" "statement" ];
       default = "session";
-      description = lib.mdDoc ''
+      description = ''
         Specifies when a server connection can be reused by other clients.
 
         session
@@ -139,7 +139,7 @@ in {
     maxClientConn = mkOption {
       type = types.int;
       default = 100;
-      description = lib.mdDoc ''
+      description = ''
         Maximum number of client connections allowed.
 
         When this setting is increased, then the file descriptor limits in the operating system
@@ -160,7 +160,7 @@ in {
     defaultPoolSize = mkOption {
       type = types.int;
       default = 20;
-      description = lib.mdDoc ''
+      description = ''
         How many server connections to allow per user/database pair.
         Can be overridden in the per-database configuration.
       '';
@@ -169,7 +169,7 @@ in {
     maxDbConnections = mkOption {
       type = types.int;
       default = 0;
-      description = lib.mdDoc ''
+      description = ''
         Do not allow more than this many server connections per database (regardless of user).
         This considers the PgBouncer database that the client has connected to,
         not the PostgreSQL database of the outgoing connection.
@@ -189,7 +189,7 @@ in {
     maxUserConnections = mkOption {
       type = types.int;
       default = 0;
-      description = lib.mdDoc ''
+      description = ''
         Do not allow more than this many server connections per user (regardless of database).
         This considers the PgBouncer user that is associated with a pool,
         which is either the user specified for the server connection
@@ -211,7 +211,7 @@ in {
       type = types.nullOr types.commas;
       example = "extra_float_digits";
       default = null;
-      description = lib.mdDoc ''
+      description = ''
         By default, PgBouncer allows only parameters it can keep track of in startup packets:
         client_encoding, datestyle, timezone and standard_conforming_strings.
 
@@ -236,7 +236,7 @@ in {
         bardb = "host=localhost dbname=bazdb";
         foodb  = "host=host1.example.com port=5432";
       };
-      description = lib.mdDoc ''
+      description = ''
         Detailed information about PostgreSQL database definitions:
         <https://www.pgbouncer.org/config.html#section-databases>
       '';
@@ -249,7 +249,7 @@ in {
       example = {
         user1 = "pool_mode=session";
       };
-      description = lib.mdDoc ''
+      description = ''
         Optional.
 
         Detailed information about PostgreSQL user definitions:
@@ -265,7 +265,7 @@ in {
         "1" = "host=host1.example.com";
         "2" = "host=/tmp/pgbouncer-2 port=5555";
       };
-      description = lib.mdDoc ''
+      description = ''
         Optional.
 
         Detailed information about PostgreSQL database definitions:
@@ -277,7 +277,7 @@ in {
     authType = mkOption {
       type = types.enum [ "cert" "md5" "scram-sha-256" "plain" "trust" "any" "hba" "pam" ];
       default = "md5";
-      description = lib.mdDoc ''
+      description = ''
         How to authenticate users.
 
         cert
@@ -312,7 +312,7 @@ in {
       type = types.nullOr types.path;
       default = null;
       example = "/secrets/pgbouncer_hba";
-      description = lib.mdDoc ''
+      description = ''
         HBA configuration file to use when authType is hba.
 
         See HBA file format details:
@@ -324,7 +324,7 @@ in {
       type = types.nullOr types.path;
       default = null;
       example = "/secrets/pgbouncer_authfile";
-      description = lib.mdDoc ''
+      description = ''
         The name of the file to load user names and passwords from.
 
         See section Authentication file format details:
@@ -339,7 +339,7 @@ in {
       type = types.nullOr types.str;
       default = null;
       example = "pgbouncer";
-      description = lib.mdDoc ''
+      description = ''
         If authUser is set, then any user not specified in authFile will be queried
         through the authQuery query from pg_shadow in the database, using authUser.
         The password of authUser will be taken from authFile.
@@ -354,7 +354,7 @@ in {
       type = types.nullOr types.str;
       default = null;
       example = "SELECT usename, passwd FROM pg_shadow WHERE usename=$1";
-      description = lib.mdDoc ''
+      description = ''
         Query to load user's password from database.
 
         Direct access to pg_shadow requires admin rights.
@@ -369,7 +369,7 @@ in {
       type = types.nullOr types.str;
       default = null;
       example = "authdb";
-      description = lib.mdDoc ''
+      description = ''
         Database name in the [database] section to be used for authentication purposes.
         This option can be either global or overriden in the connection string if this parameter is specified.
       '';
@@ -382,7 +382,7 @@ in {
           sslmode = mkOption {
             type = types.enum [ "disable" "allow" "prefer" "require" "verify-ca" "verify-full" ];
             default = "disable";
-            description = lib.mdDoc ''
+            description = ''
               TLS mode to use for connections from clients.
               TLS connections are disabled by default.
 
@@ -409,22 +409,22 @@ in {
           certFile = mkOption {
             type = types.path;
             example = "/secrets/pgbouncer.key";
-            description = lib.mdDoc "Path to certificate for private key. Clients can validate it";
+            description = "Path to certificate for private key. Clients can validate it";
           };
           keyFile = mkOption {
             type = types.path;
             example = "/secrets/pgbouncer.crt";
-            description = lib.mdDoc "Path to private key for PgBouncer to accept client connections";
+            description = "Path to private key for PgBouncer to accept client connections";
           };
           caFile = mkOption {
             type = types.path;
             example = "/secrets/pgbouncer.crt";
-            description = lib.mdDoc "Path to root certificate file to validate client certificates";
+            description = "Path to root certificate file to validate client certificates";
           };
         };
       });
       default = null;
-      description = lib.mdDoc ''
+      description = ''
         <https://www.pgbouncer.org/config.html#tls-settings>
       '';
     };
@@ -435,7 +435,7 @@ in {
           sslmode = mkOption {
             type = types.enum [ "disable" "allow" "prefer" "require" "verify-ca" "verify-full" ];
             default = "disable";
-            description = lib.mdDoc ''
+            description = ''
               TLS mode to use for connections to PostgreSQL servers.
               TLS connections are disabled by default.
 
@@ -461,22 +461,22 @@ in {
           certFile = mkOption {
             type = types.path;
             example = "/secrets/pgbouncer_server.key";
-            description = lib.mdDoc "Certificate for private key. PostgreSQL server can validate it.";
+            description = "Certificate for private key. PostgreSQL server can validate it.";
           };
           keyFile = mkOption {
             type = types.path;
             example = "/secrets/pgbouncer_server.crt";
-            description = lib.mdDoc "Private key for PgBouncer to authenticate against PostgreSQL server.";
+            description = "Private key for PgBouncer to authenticate against PostgreSQL server.";
           };
           caFile = mkOption {
             type = types.path;
             example = "/secrets/pgbouncer_server.crt";
-            description = lib.mdDoc "Root certificate file to validate PostgreSQL server certificates.";
+            description = "Root certificate file to validate PostgreSQL server certificates.";
           };
         };
       });
       default = null;
-      description = lib.mdDoc ''
+      description = ''
         <https://www.pgbouncer.org/config.html#tls-settings>
       '';
     };
@@ -488,28 +488,28 @@ in {
           enable = mkOption {
             type = types.bool;
             default = false;
-            description = lib.mdDoc ''
+            description = ''
               Toggles syslog on/off.
             '';
           };
           syslogIdent = mkOption {
             type = types.str;
             default = "pgbouncer";
-            description = lib.mdDoc ''
+            description = ''
               Under what name to send logs to syslog.
             '';
           };
           syslogFacility = mkOption {
             type = types.enum [ "auth" "authpriv" "daemon" "user" "local0" "local1" "local2" "local3" "local4" "local5" "local6" "local7" ];
             default = "daemon";
-            description = lib.mdDoc ''
+            description = ''
               Under what facility to send logs to syslog.
             '';
           };
         };
       });
       default = null;
-      description = lib.mdDoc ''
+      description = ''
         <https://www.pgbouncer.org/config.html#log-settings>
       '';
     };
@@ -517,7 +517,7 @@ in {
     verbose = lib.mkOption {
       type = lib.types.int;
       default = 0;
-      description = lib.mdDoc ''
+      description = ''
         Increase verbosity. Mirrors the ā€œ-vā€ switch on the command line.
       '';
     };
@@ -526,7 +526,7 @@ in {
     adminUsers = mkOption {
       type = types.nullOr types.commas;
       default = null;
-      description = lib.mdDoc ''
+      description = ''
         Comma-separated list of database users that are allowed to connect and run all commands on the console.
         Ignored when authType is any, in which case any user name is allowed in as admin.
       '';
@@ -535,7 +535,7 @@ in {
     statsUsers = mkOption {
       type = types.nullOr types.commas;
       default = null;
-      description = lib.mdDoc ''
+      description = ''
         Comma-separated list of database users that are allowed to connect and run read-only queries on the console.
         That means all SHOW commands except SHOW FDS.
       '';
@@ -545,7 +545,7 @@ in {
     openFilesLimit = lib.mkOption {
       type = lib.types.int;
       default = 65536;
-      description = lib.mdDoc ''
+      description = ''
         Maximum number of open files.
       '';
     };
@@ -553,7 +553,7 @@ in {
     user = mkOption {
       type = types.str;
       default = "pgbouncer";
-      description = lib.mdDoc ''
+      description = ''
         The user pgbouncer is run as.
       '';
     };
@@ -561,7 +561,7 @@ in {
     group = mkOption {
       type = types.str;
       default = "pgbouncer";
-      description = lib.mdDoc ''
+      description = ''
         The group pgbouncer is run as.
       '';
     };
@@ -569,7 +569,7 @@ in {
     homeDir = mkOption {
       type = types.path;
       default = "/var/lib/pgbouncer";
-      description = lib.mdDoc ''
+      description = ''
         Specifies the home directory.
       '';
     };
@@ -577,7 +577,7 @@ in {
     # Extra settings
     extraConfig = mkOption {
       type = types.lines;
-      description = lib.mdDoc ''
+      description = ''
         Any additional text to be appended to config.ini
          <https://www.pgbouncer.org/config.html>.
       '';
diff --git a/nixos/modules/services/databases/pgmanage.nix b/nixos/modules/services/databases/pgmanage.nix
index 4b963aee46405..c405162ed87e0 100644
--- a/nixos/modules/services/databases/pgmanage.nix
+++ b/nixos/modules/services/databases/pgmanage.nix
@@ -44,7 +44,7 @@ let
 in {
 
   options.services.pgmanage = {
-    enable = mkEnableOption (lib.mdDoc "PostgreSQL Administration for the web");
+    enable = mkEnableOption "PostgreSQL Administration for the web";
 
     package = mkPackageOption pkgs "pgmanage" { };
 
@@ -55,7 +55,7 @@ in {
         nuc-server  = "hostaddr=192.168.0.100 port=5432 dbname=postgres";
         mini-server = "hostaddr=127.0.0.1 port=5432 dbname=postgres sslmode=require";
       };
-      description = lib.mdDoc ''
+      description = ''
         pgmanage requires at least one PostgreSQL server be defined.
 
         Detailed information about PostgreSQL connection strings is available at:
@@ -71,7 +71,7 @@ in {
     allowCustomConnections = mkOption {
       type = types.bool;
       default = false;
-      description = lib.mdDoc ''
+      description = ''
         This tells pgmanage whether or not to allow anyone to use a custom
         connection from the login screen.
       '';
@@ -80,7 +80,7 @@ in {
     port = mkOption {
       type = types.port;
       default = 8080;
-      description = lib.mdDoc ''
+      description = ''
         This tells pgmanage what port to listen on for browser requests.
       '';
     };
@@ -88,7 +88,7 @@ in {
     localOnly = mkOption {
       type = types.bool;
       default = true;
-      description = lib.mdDoc ''
+      description = ''
         This tells pgmanage whether or not to set the listening socket to local
         addresses only.
       '';
@@ -97,7 +97,7 @@ in {
     superOnly = mkOption {
       type = types.bool;
       default = true;
-      description = lib.mdDoc ''
+      description = ''
         This tells pgmanage whether or not to only allow super users to
         login. The recommended value is true and will restrict users who are not
         super users from logging in to any PostgreSQL instance through
@@ -109,7 +109,7 @@ in {
     loginGroup = mkOption {
       type = types.nullOr types.str;
       default = null;
-      description = lib.mdDoc ''
+      description = ''
         This tells pgmanage to only allow users in a certain PostgreSQL group to
         login to pgmanage. Note that a connection will be made to PostgreSQL in
         order to test if the user is a member of the login group.
@@ -119,7 +119,7 @@ in {
     loginTimeout = mkOption {
       type = types.int;
       default = 3600;
-      description = lib.mdDoc ''
+      description = ''
         Number of seconds of inactivity before user is automatically logged
         out.
       '';
@@ -128,7 +128,7 @@ in {
     sqlRoot = mkOption {
       type = types.str;
       default = "/var/lib/pgmanage";
-      description = lib.mdDoc ''
+      description = ''
         This tells pgmanage where to put the SQL file history. All tabs are saved
         to this location so that if you get disconnected from pgmanage you
         don't lose your work.
@@ -140,16 +140,16 @@ in {
         options = {
           cert = mkOption {
             type = types.str;
-            description = lib.mdDoc "TLS certificate";
+            description = "TLS certificate";
           };
           key = mkOption {
             type = types.str;
-            description = lib.mdDoc "TLS key";
+            description = "TLS key";
           };
         };
       });
       default = null;
-      description = lib.mdDoc ''
+      description = ''
         These options tell pgmanage where the TLS Certificate and Key files
         reside. If you use these options then you'll only be able to access
         pgmanage through a secure TLS connection. These options are only
@@ -165,7 +165,7 @@ in {
     logLevel = mkOption {
       type = types.enum ["error" "warn" "notice" "info"];
       default = "error";
-      description = lib.mdDoc ''
+      description = ''
         Verbosity of logs
       '';
     };
diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix
index d3fd6db6aea15..8a386b4848b91 100644
--- a/nixos/modules/services/databases/postgresql.nix
+++ b/nixos/modules/services/databases/postgresql.nix
@@ -52,9 +52,9 @@ in
 
     services.postgresql = {
 
-      enable = mkEnableOption (lib.mdDoc "PostgreSQL Server");
+      enable = mkEnableOption "PostgreSQL Server";
 
-      enableJIT = mkEnableOption (lib.mdDoc "JIT support");
+      enableJIT = mkEnableOption "JIT support";
 
       package = mkPackageOption pkgs "postgresql" {
         example = "postgresql_15";
@@ -63,14 +63,14 @@ in
       checkConfig = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc "Check the syntax of the configuration file at compile time";
+        description = "Check the syntax of the configuration file at compile time";
       };
 
       dataDir = mkOption {
         type = types.path;
         defaultText = literalExpression ''"/var/lib/postgresql/''${config.services.postgresql.package.psqlSchema}"'';
         example = "/var/lib/postgresql/15";
-        description = lib.mdDoc ''
+        description = ''
           The data directory for PostgreSQL. If left as the default value
           this directory will automatically be created before the PostgreSQL server starts, otherwise
           the sysadmin is responsible for ensuring the directory exists with appropriate ownership
@@ -81,7 +81,7 @@ in
       authentication = mkOption {
         type = types.lines;
         default = "";
-        description = lib.mdDoc ''
+        description = ''
           Defines how users authenticate themselves to the server. See the
           [PostgreSQL documentation for pg_hba.conf](https://www.postgresql.org/docs/current/auth-pg-hba-conf.html)
           for details on the expected format of this option. By default,
@@ -101,7 +101,7 @@ in
           map-name-0 system-username-0 database-username-0
           map-name-1 system-username-1 database-username-1
         '';
-        description = lib.mdDoc ''
+        description = ''
           Defines the mapping from system users to database users.
 
           See the [auth doc](https://postgresql.org/docs/current/auth-username-maps.html).
@@ -112,7 +112,7 @@ in
         type = with types; listOf str;
         default = [];
         example = [ "--data-checksums" "--allow-group-access" ];
-        description = lib.mdDoc ''
+        description = ''
           Additional arguments passed to `initdb` during data dir
           initialisation.
         '';
@@ -126,7 +126,7 @@ in
             alter user postgres with password 'myPassword';
           ''';'';
 
-        description = lib.mdDoc ''
+        description = ''
           A file containing SQL statements to execute on first startup.
         '';
       };
@@ -134,7 +134,7 @@ in
       ensureDatabases = mkOption {
         type = types.listOf types.str;
         default = [];
-        description = lib.mdDoc ''
+        description = ''
           Ensures that the specified databases exist.
           This option will never delete existing databases, especially not when the value of this
           option is changed. This means that databases created once through this option or
@@ -151,7 +151,7 @@ in
           options = {
             name = mkOption {
               type = types.str;
-              description = lib.mdDoc ''
+              description = ''
                 Name of the user to ensure.
               '';
             };
@@ -159,7 +159,7 @@ in
             ensureDBOwnership = mkOption {
               type = types.bool;
               default = false;
-              description = mdDoc ''
+              description = ''
                 Grants the user ownership to a database with the same name.
                 This database must be defined manually in
                 [](#opt-services.postgresql.ensureDatabases).
@@ -167,7 +167,7 @@ in
             };
 
             ensureClauses = mkOption {
-              description = lib.mdDoc ''
+              description = ''
                 An attrset of clauses to grant to the user. Under the hood this uses the
                 [ALTER USER syntax](https://www.postgresql.org/docs/current/sql-alteruser.html) for each attrName where
                 the attrValue is true in the attrSet:
@@ -192,7 +192,7 @@ in
                 in {
                   superuser = mkOption {
                     type = types.nullOr types.bool;
-                    description = lib.mdDoc ''
+                    description = ''
                       Grants the user, created by the ensureUser attr, superuser permissions. From the postgres docs:
 
                       A database superuser bypasses all permission checks,
@@ -209,7 +209,7 @@ in
                   };
                   createrole = mkOption {
                     type = types.nullOr types.bool;
-                    description = lib.mdDoc ''
+                    description = ''
                       Grants the user, created by the ensureUser attr, createrole permissions. From the postgres docs:
 
                       A role must be explicitly given permission to create more
@@ -228,7 +228,7 @@ in
                   };
                   createdb = mkOption {
                     type = types.nullOr types.bool;
-                    description = lib.mdDoc ''
+                    description = ''
                       Grants the user, created by the ensureUser attr, createdb permissions. From the postgres docs:
 
                       A role must be explicitly given permission to create
@@ -243,7 +243,7 @@ in
                   };
                   "inherit" = mkOption {
                     type = types.nullOr types.bool;
-                    description = lib.mdDoc ''
+                    description = ''
                       Grants the user created inherit permissions. From the postgres docs:
 
                       A role is given permission to inherit the privileges of
@@ -258,7 +258,7 @@ in
                   };
                   login = mkOption {
                     type = types.nullOr types.bool;
-                    description = lib.mdDoc ''
+                    description = ''
                       Grants the user, created by the ensureUser attr, login permissions. From the postgres docs:
 
                       Only roles that have the LOGIN attribute can be used as
@@ -280,7 +280,7 @@ in
                   };
                   replication = mkOption {
                     type = types.nullOr types.bool;
-                    description = lib.mdDoc ''
+                    description = ''
                       Grants the user, created by the ensureUser attr, replication permissions. From the postgres docs:
 
                       A role must explicitly be given permission to initiate
@@ -296,7 +296,7 @@ in
                   };
                   bypassrls = mkOption {
                     type = types.nullOr types.bool;
-                    description = lib.mdDoc ''
+                    description = ''
                       Grants the user, created by the ensureUser attr, replication permissions. From the postgres docs:
 
                       A role must be explicitly given permission to bypass
@@ -316,7 +316,7 @@ in
           };
         });
         default = [];
-        description = lib.mdDoc ''
+        description = ''
           Ensures that the specified users exist.
           The PostgreSQL users will be identified using peer authentication. This authenticates the Unix user with the
           same name only, and that without the need for a password.
@@ -340,7 +340,7 @@ in
       enableTCPIP = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Whether PostgreSQL should listen on all network interfaces.
           If disabled, the database can only be accessed via its Unix
           domain socket or via TCP connections to localhost.
@@ -351,7 +351,7 @@ in
         type = with types; coercedTo (listOf path) (path: _ignorePg: path) (functionTo (listOf path));
         default = _: [];
         example = literalExpression "ps: with ps; [ postgis pg_repack ]";
-        description = lib.mdDoc ''
+        description = ''
           List of PostgreSQL plugins.
         '';
       };
@@ -364,7 +364,7 @@ in
               type = nullOr (coercedTo (listOf str) (concatStringsSep ", ") str);
               default = null;
               example = literalExpression ''[ "auto_explain" "anon" ]'';
-              description = mdDoc ''
+              description = ''
                 List of libraries to be preloaded.
               '';
             };
@@ -373,7 +373,7 @@ in
               type = types.str;
               default = "[%p] ";
               example = "%m [%p] ";
-              description = lib.mdDoc ''
+              description = ''
                 A printf-style string that is output at the beginning of each log line.
                 Upstream default is `'%m [%p] '`, i.e. it includes the timestamp. We do
                 not include the timestamp, because journal has it anyway.
@@ -383,14 +383,14 @@ in
             port = mkOption {
               type = types.port;
               default = 5432;
-              description = lib.mdDoc ''
+              description = ''
                 The port on which PostgreSQL listens.
               '';
             };
           };
         };
         default = {};
-        description = lib.mdDoc ''
+        description = ''
           PostgreSQL configuration. Refer to
           <https://www.postgresql.org/docs/current/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE>
           for an overview of `postgresql.conf`.
@@ -414,7 +414,7 @@ in
       recoveryConfig = mkOption {
         type = types.nullOr types.lines;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           Contents of the {file}`recovery.conf` file.
         '';
       };
@@ -424,7 +424,7 @@ in
         default = "postgres";
         internal = true;
         readOnly = true;
-        description = lib.mdDoc ''
+        description = ''
           PostgreSQL superuser account to use for various operations. Internal since changing
           this value would lead to breakage while setting up databases.
         '';
diff --git a/nixos/modules/services/databases/redis.nix b/nixos/modules/services/databases/redis.nix
index fe2d75fc53a96..1da2fa9f11604 100644
--- a/nixos/modules/services/databases/redis.nix
+++ b/nixos/modules/services/databases/redis.nix
@@ -56,22 +56,22 @@ in {
     services.redis = {
       package = mkPackageOption pkgs "redis" { };
 
-      vmOverCommit = mkEnableOption (lib.mdDoc ''
+      vmOverCommit = mkEnableOption ''
         setting of vm.overcommit_memory to 1
         (Suggested for Background Saving: <https://redis.io/docs/get-started/faq/>)
-      '');
+      '';
 
       servers = mkOption {
         type = with types; attrsOf (submodule ({ config, name, ... }: {
           options = {
-            enable = mkEnableOption (lib.mdDoc ''
+            enable = mkEnableOption ''
               Redis server.
 
               Note that the NixOS module for Redis disables kernel support
               for Transparent Huge Pages (THP),
               because this features causes major performance problems for Redis,
               e.g. (https://redis.io/topics/latency)
-            '');
+            '';
 
             user = mkOption {
               type = types.str;
@@ -79,14 +79,14 @@ in {
               defaultText = literalExpression ''
                 if name == "" then "redis" else "redis-''${name}"
               '';
-              description = lib.mdDoc "The username and groupname for redis-server.";
+              description = "The username and groupname for redis-server.";
             };
 
             port = mkOption {
               type = types.port;
               default = if name == "" then 6379 else 0;
               defaultText = literalExpression ''if name == "" then 6379 else 0'';
-              description = lib.mdDoc ''
+              description = ''
                 The TCP port to accept connections.
                 If port 0 is specified Redis will not listen on a TCP socket.
               '';
@@ -95,7 +95,7 @@ in {
             openFirewall = mkOption {
               type = types.bool;
               default = false;
-              description = lib.mdDoc ''
+              description = ''
                 Whether to open ports in the firewall for the server.
               '';
             };
@@ -103,14 +103,14 @@ in {
             extraParams = mkOption {
               type = with types; listOf str;
               default = [];
-              description = lib.mdDoc "Extra parameters to append to redis-server invocation";
+              description = "Extra parameters to append to redis-server invocation";
               example = [ "--sentinel" ];
             };
 
             bind = mkOption {
               type = with types; nullOr str;
               default = "127.0.0.1";
-              description = lib.mdDoc ''
+              description = ''
                 The IP interface to bind to.
                 `null` means "all interfaces".
               '';
@@ -123,13 +123,13 @@ in {
               defaultText = literalExpression ''
                 if name == "" then "/run/redis/redis.sock" else "/run/redis-''${name}/redis.sock"
               '';
-              description = lib.mdDoc "The path to the socket to bind to.";
+              description = "The path to the socket to bind to.";
             };
 
             unixSocketPerm = mkOption {
               type = types.int;
               default = 660;
-              description = lib.mdDoc "Change permissions for the socket";
+              description = "Change permissions for the socket";
               example = 600;
             };
 
@@ -137,38 +137,38 @@ in {
               type = types.str;
               default = "notice"; # debug, verbose, notice, warning
               example = "debug";
-              description = lib.mdDoc "Specify the server verbosity level, options: debug, verbose, notice, warning.";
+              description = "Specify the server verbosity level, options: debug, verbose, notice, warning.";
             };
 
             logfile = mkOption {
               type = types.str;
               default = "/dev/null";
-              description = lib.mdDoc "Specify the log file name. Also 'stdout' can be used to force Redis to log on the standard output.";
+              description = "Specify the log file name. Also 'stdout' can be used to force Redis to log on the standard output.";
               example = "/var/log/redis.log";
             };
 
             syslog = mkOption {
               type = types.bool;
               default = true;
-              description = lib.mdDoc "Enable logging to the system logger.";
+              description = "Enable logging to the system logger.";
             };
 
             databases = mkOption {
               type = types.int;
               default = 16;
-              description = lib.mdDoc "Set the number of databases.";
+              description = "Set the number of databases.";
             };
 
             maxclients = mkOption {
               type = types.int;
               default = 10000;
-              description = lib.mdDoc "Set the max number of connected clients at the same time.";
+              description = "Set the max number of connected clients at the same time.";
             };
 
             save = mkOption {
               type = with types; listOf (listOf int);
               default = [ [900 1] [300 10] [60 10000] ];
-              description = mdDoc ''
+              description = ''
                 The schedule in which data is persisted to disk, represented as a list of lists where the first element represent the amount of seconds and the second the number of changes.
 
                 If set to the empty list (`[]`) then RDB persistence will be disabled (useful if you are using AOF or don't want any persistence).
@@ -180,27 +180,27 @@ in {
                 options = {
                   ip = mkOption {
                     type = str;
-                    description = lib.mdDoc "IP of the Redis master";
+                    description = "IP of the Redis master";
                     example = "192.168.1.100";
                   };
 
                   port = mkOption {
                     type = port;
-                    description = lib.mdDoc "port of the Redis master";
+                    description = "port of the Redis master";
                     default = 6379;
                   };
                 };
               }));
 
               default = null;
-              description = lib.mdDoc "IP and port to which this redis instance acts as a slave.";
+              description = "IP and port to which this redis instance acts as a slave.";
               example = { ip = "192.168.1.100"; port = 6379; };
             };
 
             masterAuth = mkOption {
               type = with types; nullOr str;
               default = null;
-              description = lib.mdDoc ''If the master is password protected (using the requirePass configuration)
+              description = ''If the master is password protected (using the requirePass configuration)
               it is possible to tell the slave to authenticate before starting the replication synchronization
               process, otherwise the master will refuse the slave request.
               (STORED PLAIN TEXT, WORLD-READABLE IN NIX STORE)'';
@@ -209,7 +209,7 @@ in {
             requirePass = mkOption {
               type = with types; nullOr str;
               default = null;
-              description = lib.mdDoc ''
+              description = ''
                 Password for database (STORED PLAIN TEXT, WORLD-READABLE IN NIX STORE).
                 Use requirePassFile to store it outside of the nix store in a dedicated file.
               '';
@@ -219,40 +219,40 @@ in {
             requirePassFile = mkOption {
               type = with types; nullOr path;
               default = null;
-              description = lib.mdDoc "File with password for the database.";
+              description = "File with password for the database.";
               example = "/run/keys/redis-password";
             };
 
             appendOnly = mkOption {
               type = types.bool;
               default = false;
-              description = lib.mdDoc "By default data is only periodically persisted to disk, enable this option to use an append-only file for improved persistence.";
+              description = "By default data is only periodically persisted to disk, enable this option to use an append-only file for improved persistence.";
             };
 
             appendFsync = mkOption {
               type = types.str;
               default = "everysec"; # no, always, everysec
-              description = lib.mdDoc "How often to fsync the append-only log, options: no, always, everysec.";
+              description = "How often to fsync the append-only log, options: no, always, everysec.";
             };
 
             slowLogLogSlowerThan = mkOption {
               type = types.int;
               default = 10000;
-              description = lib.mdDoc "Log queries whose execution take longer than X in milliseconds.";
+              description = "Log queries whose execution take longer than X in milliseconds.";
               example = 1000;
             };
 
             slowLogMaxLen = mkOption {
               type = types.int;
               default = 128;
-              description = lib.mdDoc "Maximum number of items to keep in slow log.";
+              description = "Maximum number of items to keep in slow log.";
             };
 
             settings = mkOption {
               # TODO: this should be converted to freeformType
               type = with types; attrsOf (oneOf [ bool int str (listOf str) ]);
               default = {};
-              description = lib.mdDoc ''
+              description = ''
                 Redis configuration. Refer to
                 <https://redis.io/topics/config>
                 for details on supported values.
@@ -292,7 +292,7 @@ in {
             (mkIf (config.requirePass != null) { requirepass = config.requirePass; })
           ];
         }));
-        description = lib.mdDoc "Configuration of multiple `redis-server` instances.";
+        description = "Configuration of multiple `redis-server` instances.";
         default = {};
       };
     };
diff --git a/nixos/modules/services/databases/rethinkdb.nix b/nixos/modules/services/databases/rethinkdb.nix
index f5391b48e89ca..c764d6c21c6ce 100644
--- a/nixos/modules/services/databases/rethinkdb.nix
+++ b/nixos/modules/services/databases/rethinkdb.nix
@@ -15,7 +15,7 @@ in
 
     services.rethinkdb = {
 
-      enable = mkEnableOption (lib.mdDoc "RethinkDB server");
+      enable = mkEnableOption "RethinkDB server";
 
       #package = mkOption {
       #  default = pkgs.rethinkdb;
@@ -24,22 +24,22 @@ in
 
       user = mkOption {
         default = "rethinkdb";
-        description = lib.mdDoc "User account under which RethinkDB runs.";
+        description = "User account under which RethinkDB runs.";
       };
 
       group = mkOption {
         default = "rethinkdb";
-        description = lib.mdDoc "Group which rethinkdb user belongs to.";
+        description = "Group which rethinkdb user belongs to.";
       };
 
       dbpath = mkOption {
         default = "/var/db/rethinkdb";
-        description = lib.mdDoc "Location where RethinkDB stores its data, 1 data directory per instance.";
+        description = "Location where RethinkDB stores its data, 1 data directory per instance.";
       };
 
       pidpath = mkOption {
         default = "/run/rethinkdb";
-        description = lib.mdDoc "Location where each instance's pid file is located.";
+        description = "Location where each instance's pid file is located.";
       };
 
       #cfgpath = mkOption {
diff --git a/nixos/modules/services/databases/surrealdb.nix b/nixos/modules/services/databases/surrealdb.nix
index 55216d022d1cf..08a6cca043ca4 100644
--- a/nixos/modules/services/databases/surrealdb.nix
+++ b/nixos/modules/services/databases/surrealdb.nix
@@ -8,13 +8,13 @@ in {
 
   options = {
     services.surrealdb = {
-      enable = mkEnableOption (lib.mdDoc "SurrealDB, a scalable, distributed, collaborative, document-graph database, for the realtime web");
+      enable = mkEnableOption "SurrealDB, a scalable, distributed, collaborative, document-graph database, for the realtime web";
 
       package = mkPackageOption pkgs "surrealdb" { };
 
       dbPath = mkOption {
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           The path that surrealdb will write data to. Use null for in-memory.
           Can be one of "memory", "file://:path", "tikv://:addr".
         '';
@@ -24,7 +24,7 @@ in {
 
       host = mkOption {
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           The host that surrealdb will connect to.
         '';
         default = "127.0.0.1";
@@ -33,7 +33,7 @@ in {
 
       port = mkOption {
         type = types.port;
-        description = lib.mdDoc ''
+        description = ''
           The port that surrealdb will connect to.
         '';
         default = 8000;
@@ -44,7 +44,7 @@ in {
         type = types.listOf types.str;
         default = [];
         example = [ "--allow-all" "--auth" "--user root" "--pass root" ];
-        description = lib.mdDoc ''
+        description = ''
           Specify a list of additional command line flags,
           which get escaped and are then passed to surrealdb.
         '';
diff --git a/nixos/modules/services/databases/tigerbeetle.nix b/nixos/modules/services/databases/tigerbeetle.nix
index b90a0703175f5..a9c7a24250a69 100644
--- a/nixos/modules/services/databases/tigerbeetle.nix
+++ b/nixos/modules/services/databases/tigerbeetle.nix
@@ -11,14 +11,14 @@ in
 
   options = {
     services.tigerbeetle = with lib; {
-      enable = mkEnableOption (mdDoc "TigerBeetle server");
+      enable = mkEnableOption "TigerBeetle server";
 
       package = mkPackageOption pkgs "tigerbeetle" { };
 
       clusterId = mkOption {
         type = types.either types.ints.unsigned (types.strMatching "[0-9]+");
         default = 0;
-        description = lib.mdDoc ''
+        description = ''
           The 128-bit cluster ID used to create the replica data file (if needed).
           Since Nix only supports integers up to 64 bits, you need to pass a string to this if the cluster ID can't fit in 64 bits.
           Otherwise, you can pass the cluster ID as either an integer or a string.
@@ -28,7 +28,7 @@ in
       replicaIndex = mkOption {
         type = types.ints.unsigned;
         default = 0;
-        description = lib.mdDoc ''
+        description = ''
           The index (starting at 0) of the replica in the cluster.
         '';
       };
@@ -36,7 +36,7 @@ in
       replicaCount = mkOption {
         type = types.ints.unsigned;
         default = 1;
-        description = lib.mdDoc ''
+        description = ''
           The number of replicas participating in replication of the cluster.
         '';
       };
@@ -44,7 +44,7 @@ in
       cacheGridSize = mkOption {
         type = types.strMatching "[0-9]+(K|M|G)B";
         default = "1GB";
-        description = lib.mdDoc ''
+        description = ''
           The grid cache size.
           The grid cache acts like a page cache for TigerBeetle.
           It is recommended to set this as large as possible.
@@ -54,7 +54,7 @@ in
       addresses = mkOption {
         type = types.listOf types.nonEmptyStr;
         default = [ "3001" ];
-        description = lib.mdDoc ''
+        description = ''
           The addresses of all replicas in the cluster.
           This should be a list of IPv4/IPv6 addresses with port numbers.
           Either the address or port number (but not both) may be omitted, in which case a default of 127.0.0.1 or 3001 will be used.
diff --git a/nixos/modules/services/databases/victoriametrics.nix b/nixos/modules/services/databases/victoriametrics.nix
index 3d8ada394d20c..923163a8049e6 100644
--- a/nixos/modules/services/databases/victoriametrics.nix
+++ b/nixos/modules/services/databases/victoriametrics.nix
@@ -2,26 +2,26 @@
 let cfg = config.services.victoriametrics; in
 {
   options.services.victoriametrics = with lib; {
-    enable = mkEnableOption (lib.mdDoc "VictoriaMetrics, a time series database, long-term remote storage for Prometheus");
+    enable = mkEnableOption "VictoriaMetrics, a time series database, long-term remote storage for Prometheus";
     package = mkPackageOption pkgs "victoriametrics" { };
     listenAddress = mkOption {
       default = ":8428";
       type = types.str;
-      description = lib.mdDoc ''
+      description = ''
         The listen address for the http interface.
       '';
     };
     retentionPeriod = mkOption {
       type = types.int;
       default = 1;
-      description = lib.mdDoc ''
+      description = ''
         Retention period in months.
       '';
     };
     extraOptions = mkOption {
       type = types.listOf types.str;
       default = [];
-      description = lib.mdDoc ''
+      description = ''
         Extra options to pass to VictoriaMetrics. See the README:
         <https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/README.md>
         or {command}`victoriametrics -help` for more