2025-01-15 18:19:03 +01:00
|
|
|
{pkgs, ...}: {
|
|
|
|
services.mysql = {
|
|
|
|
enable = true;
|
|
|
|
package = pkgs.mysql84;
|
|
|
|
ensureDatabases = [
|
|
|
|
"ghost"
|
|
|
|
"matomo"
|
|
|
|
];
|
|
|
|
initialScript = pkgs.writeText "initial-script.sql" ''
|
|
|
|
CREATE USER 'ghost'@'10.89.%' IDENTIFIED BY 'ghost';
|
|
|
|
GRANT ALL PRIVILEGES ON ghost.* TO 'ghost'@'10.89.%';
|
2025-03-15 14:23:47 +01:00
|
|
|
|
|
|
|
CREATE USER 'matomo'@'10.89.%' IDENTIFIED BY 'matomo';
|
|
|
|
GRANT ALL PRIVILEGES ON matomo.* TO 'matomo'@'10.89.%'; '';
|
2025-01-15 18:19:03 +01:00
|
|
|
};
|
|
|
|
services.mysqlBackup = {
|
|
|
|
enable = true;
|
|
|
|
calendar = "03:00:00";
|
|
|
|
databases = ["ghost" "matomo"];
|
|
|
|
};
|
2025-05-12 16:06:40 +02:00
|
|
|
networking.firewall = {
|
|
|
|
extraCommands = ''
|
|
|
|
iptables -A INPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT
|
|
|
|
iptables -A INPUT -p tcp -s 10.89.0.0/24 --dport 3306 -j ACCEPT
|
|
|
|
'';
|
|
|
|
};
|
2025-01-15 18:19:03 +01:00
|
|
|
}
|