{ config, pkgs, ... }: let mysqlPort = config.m3ta.ports.get "mysql"; in { services.mysql = { enable = true; package = pkgs.mariadb; settings = { mysqld = { "bind-address" = "127.0.0.1"; port = mysqlPort; max_connections = 200; innodb_buffer_pool_size = "1G"; "character-set-server" = "utf8mb4"; "collation-server" = "utf8mb4_unicode_ci"; "skip-name-resolve" = true; }; client = { port = mysqlPort; socket = "/run/mysqld/mysqld.sock"; }; mysqldump = { quick = true; "single-transaction" = true; }; }; }; services.mysqlBackup = { enable = true; calendar = "03:40:00"; databases = ["snipeit"]; singleTransaction = true; }; networking.firewall.extraCommands = '' iptables -A INPUT -p tcp -s 127.0.0.1 --dport ${toString mysqlPort} -j ACCEPT ''; }