nixos-server/services/mariadb.nix

59 lines
1.2 KiB
Nix
Raw Normal View History

2024-06-20 14:56:34 +02:00
{ pkgs, lib, ... }: {
name = "mariadb";
config = {
services.mysql = {
enable = true;
package = pkgs.mariadb;
settings = {
mysqld = {
port = 3306;
};
mysqldump = {
quick = true;
};
};
ensureDatabases = [ "gitea" ];
initialScript = pkgs.writeScript "init.sql" ''
CREATE USER 'gitea'@'%' IDENTIFIED BY '${pkgs.lib.removeSuffix "\n"
(builtins.readFile ../secrets/gitea_mariadb_pass)}';
GRANT ALL ON gitea.* to 'gitea'@'%' WITH GRANT OPTION;
'';
ensureUsers = [
{
name = "root";
ensurePermissions = {
"*.*" = "ALL PRIVILEGES";
};
}
{
name = "mysqldump";
ensurePermissions = {
"*.*" = "SELECT, LOCK TABLES";
};
}
];
};
services.mysqlBackup = {
enable = true;
singleTransaction = true;
};
};
ports = {
tcp = [ 3306 ];
udp = [];
http = null;
forward = [];
};
hosts = [ ];
volumes = [
{
name = "mariadb-storage";
mountPoint = "/var/lib/mysql";
}
{
name = "mariadb-backup";
mountPoint = "/var/backup/mysql";
}
];
}