{ config, lib, ... }:
with lib;

let
  cfg = config.docker;
in
{
  options = {
    docker.minecraft.path = mkOption {
      type = types.str;
      default = "/srv/Minecraft";
    };
  };
  config = {

    # docker containers, for apps that aren't avaiable on Nix.  (yet)
    virtualisation.oci-containers = {
      backend = "docker";
      containers = {
        #TODO: move to Nix crafty controller bundle
        crafty-controller = {
          image = "registry.gitlab.com/crafty-controller/crafty-4:latest";
          ports = [
            "8443:8443"
            "8123:8123"
            "19132:19132/udp"
            "25500-25600:25500-25600"
          ];
          volumes = [
            "${cfg.minecraft.path}/docker/backups:/crafty/backups"
            "${cfg.minecraft.path}/docker/logs:/crafty/logs"
            "${cfg.minecraft.path}/docker/servers:/crafty/servers"
            "${cfg.minecraft.path}/docker/config:/crafty/app/config"
            "${cfg.minecraft.path}/docker/import:/crafty/import"
          ];
          environment = {
            "TZ" = "Europe/Paris";
          };
        };
      };
    };
  };
}