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";
|
||
|
}
|
||
|
];
|
||
|
}
|