52 lines
1.3 KiB
Nix
52 lines
1.3 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
# Daily scheduled Laravel artisan jobs
|
|
# Runs artisan finish:reports at 01:00 for production and staging APIs
|
|
|
|
let
|
|
php = pkgs.php82;
|
|
|
|
sites = [
|
|
{
|
|
domain = "api.ebs.amz.at";
|
|
user = "api_ebs_amz_at";
|
|
}
|
|
{
|
|
domain = "api.stage.ebs.amz.at";
|
|
user = "api_stage_ebs_amz_at";
|
|
}
|
|
];
|
|
|
|
mkArtisanService = site: {
|
|
name = "artisan-finish-reports-${site.domain}";
|
|
value = {
|
|
description = "Laravel artisan finish:reports for ${site.domain}";
|
|
after = [ "network.target" "mysql.service" "phpfpm-${site.domain}.service" ];
|
|
serviceConfig = {
|
|
Type = "oneshot";
|
|
User = site.user;
|
|
Group = "nginx";
|
|
WorkingDirectory = "/var/www/${site.domain}";
|
|
ExecStart = "${php}/bin/php artisan finish:reports";
|
|
};
|
|
};
|
|
};
|
|
|
|
mkArtisanTimer = site: {
|
|
name = "artisan-finish-reports-${site.domain}";
|
|
value = {
|
|
description = "Daily timer for artisan finish:reports on ${site.domain}";
|
|
wantedBy = [ "timers.target" ];
|
|
timerConfig = {
|
|
OnCalendar = "*-*-* 01:00:00";
|
|
Persistent = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
in
|
|
{
|
|
systemd.services = builtins.listToAttrs (map mkArtisanService sites);
|
|
systemd.timers = builtins.listToAttrs (map mkArtisanTimer sites);
|
|
}
|