We switched to stable temporarily in 2023 (!) because of some breakage that has long been fixed. In general, running nixery against stable is probably advisable, but because of our Lisp package situation updating stable is not possible at the moment. Change-Id: I122ac63d6307cab76a3069101682fc5f8f985914 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12999 Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
44 lines
1.2 KiB
Nix
44 lines
1.2 KiB
Nix
# NixOS module to run Nixery, currently with local-storage as the
|
|
# backend for storing/serving image layers.
|
|
{ depot, config, lib, pkgs, ... }:
|
|
|
|
let
|
|
cfg = config.services.depot.nixery;
|
|
description = "Nixery - container images on-demand";
|
|
nixpkgsSrc = depot.third_party.sources.nixpkgs;
|
|
storagePath = "/var/lib/nixery/${nixpkgsSrc.rev}";
|
|
in
|
|
{
|
|
options.services.depot.nixery = {
|
|
enable = lib.mkEnableOption description;
|
|
|
|
port = lib.mkOption {
|
|
type = lib.types.int;
|
|
default = 45243; # "image"
|
|
description = "Port on which Nixery should listen";
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
systemd.services.nixery = {
|
|
inherit description;
|
|
wantedBy = [ "multi-user.target" ];
|
|
|
|
serviceConfig = {
|
|
DynamicUser = true;
|
|
StateDirectory = "nixery";
|
|
Restart = "always";
|
|
ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p ${storagePath}";
|
|
ExecStart = "${depot.tools.nixery.nixery}/bin/server";
|
|
};
|
|
|
|
environment = {
|
|
PORT = toString cfg.port;
|
|
NIXERY_PKGS_PATH = nixpkgsSrc.outPath;
|
|
NIXERY_STORAGE_BACKEND = "filesystem";
|
|
NIX_TIMEOUT = "60"; # seconds
|
|
STORAGE_PATH = storagePath;
|
|
};
|
|
};
|
|
};
|
|
}
|