59 lines
1.2 KiB
Nix
59 lines
1.2 KiB
Nix
{ 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";
|
|
}
|
|
];
|
|
}
|