···
inherit (gitignore.lib) gitignoreSource;
overlays.default = final: prev: let
-
goModHash = "sha256-H/sKps9um8vvv/WAZ1hEN+ZVhmXlddRNSVWVRBK1zEo=";
-
buildCmdPackage = name:
-
src = gitignoreSource ./.;
-
subPackages = ["cmd/${name}"];
-
vendorHash = goModHash;
indigo-lexgen = final.buildGoModule {
···
stdenv = pkgsStatic.stdenv;
-
knotserver = with final;
final.pkgsStatic.buildGoModule {
src = gitignoreSource ./.;
nativeBuildInputs = [final.makeWrapper];
-
subPackages = ["cmd/knotserver"];
-
cp $GOPATH/bin/knotserver $out/bin/knotserver
-
wrapProgram $out/bin/knotserver \
--prefix PATH : ${pkgs.git}/bin
-
knotserver-unwrapped = final.pkgsStatic.buildGoModule {
src = gitignoreSource ./.;
-
subPackages = ["cmd/knotserver"];
-
repoguard = buildCmdPackage "repoguard";
-
keyfetch = buildCmdPackage "keyfetch";
-
genjwks = buildCmdPackage "genjwks";
packages = forAllSystems (system: {
···
apps = forAllSystems (system: let
pkgs = nixpkgsFor."${system}";
pkgs.writeShellScriptBin "run"
${pkgs.air}/bin/air -c /dev/null \
-build.cmd "${pkgs.go}/bin/go build -o ./out/${name}.out ./cmd/${name}/main.go" \
-
-build.bin "./out/${name}.out" \
-build.stop_on_error "true" \
···
-
program = ''${air-watcher "appview"}/bin/run'';
-
program = ''${air-watcher "knotserver"}/bin/run'';
···
-
nixosModules.knotserver = {
-
cfg = config.services.tangled-knotserver;
-
services.tangled-knotserver = {
-
description = "Enable a tangled knotserver";
appviewEndpoint = mkOption {
···
-
${self.packages.${pkgs.system}.keyfetch}/bin/keyfetch \
-
-repoguard-path ${self.packages.${pkgs.system}.repoguard}/bin/repoguard \
-internal-api "http://${cfg.server.internalListenAddr}" \
-git-dir "${cfg.repo.scanPath}" \
-
-log-path /tmp/repoguard.log
-
systemd.services.knotserver = {
-
description = "knotserver service";
after = ["network.target" "sshd.service"];
wantedBy = ["multi-user.target"];
···
"KNOT_SERVER_HOSTNAME=${cfg.server.hostname}"
EnvironmentFile = cfg.server.secretFile;
-
ExecStart = "${self.packages.${pkgs.system}.knotserver}/bin/knotserver";
···
nixosConfigurations.knotVM = nixpkgs.lib.nixosSystem {
-
self.nixosModules.knotserver
···
services.getty.autologinUser = "root";
environment.systemPackages = with pkgs; [curl vim git];
systemd.tmpfiles.rules = let
-
u = config.services.tangled-knotserver.gitUser;
-
g = config.services.tangled-knotserver.gitUser;
-
"d /var/lib/knotserver 0770 ${u} ${g} - -" # Create the directory first
-
"f+ /var/lib/knotserver/secret 0660 ${u} ${g} - KNOT_SERVER_SECRET=38a7c3237c2a585807e06a5bcfac92eb39442063f3da306b7acb15cfdc51d19d"
-
services.tangled-knotserver = {
-
secretFile = "/var/lib/knotserver/secret";
hostname = "localhost:6000";
listenAddr = "0.0.0.0:6000";