{ config, pkgs, ... }:
{
  imports = [
    ./syncthing.nix
  ];

  # Update and start Jinja-Compose project
  # during boot and after every 30 minutes.
  # To view the log, run
  #   journalctl -b -u Jinja-Compose -f
  #
  systemd.timers."Jinja-Compose" = {
    wantedBy = [ "timers.target" ];
    partOf = [ "Jinja-Compose.service" ];
    timerConfig = {
      OnBootSec = "0m";
      OnUnitInactiveSec = "30m";

      AccuracySec = "1m";
      RandomizedDelaySec = "1m";
    };
  };
  # TODO: Add shutdown script (./docker-compose down).
  systemd.services."Jinja-Compose" = {
    description = "Update and start Jinja-Compose project";
    serviceConfig = {
      Type = "oneshot";
      PrivateTmp = true;
      User = "root";
    };
    path = with pkgs; [
      # The `docker-compose` helper script is written in `bash` (!)
      bash
      docker
    ];
    script = ''
      set -eu -o pipefail
      /jc-config/docker-compose pull
      /jc-config/docker-compose up -d --wait
    '';
  };
}
