Compare commits

...

8 commits

Author SHA1 Message Date
eb4b3ddcbe Add update-containers script to manage Docker image updates 2025-06-11 02:56:10 -04:00
bdd29d3c69 flake update 2025-06-11 02:54:59 -04:00
f8235c6802 Remove insecure ports 2025-06-11 02:54:50 -04:00
97e68ea559 Update edit pkg with pull request changes 2025-06-11 02:54:14 -04:00
a900ced7b4 Add Caddy and move Komodo configurations; enhance OchreStorage permissions setup with acls 2025-06-11 02:53:28 -04:00
8999806111 Revise networking, proxy, and DNS configs for *ryot.foo zone
- Remove static host mappings from networking config
- Add reverse proxy settings for multiple subdomains
- Introduce DNSMASQ configuration with custom DNS records and firewall rules
- Update firewall UDP port settings and system stateVersion
2025-06-11 02:52:33 -04:00
67195fcfb6 Update NFS configuration: better mount options to fix caching and set domain to 'ryot.local' 2025-06-11 02:48:02 -04:00
3275c438da Rename Komodo to Komo and update some docker/proxy configs 2025-06-11 02:46:49 -04:00
23 changed files with 268 additions and 79 deletions

68
flake.lock generated
View file

@ -180,11 +180,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1743550720, "lastModified": 1748821116,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", "narHash": "sha256-F82+gS044J1APL0n4hH50GYdPRv/5JWm34oCJYmVKdE=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "c621e8422220273271f52058f618c94e405bb0f5", "rev": "49f0870db23e8c1ca0b5259734a02cd9e1e371a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -402,11 +402,11 @@
}, },
"hardware": { "hardware": {
"locked": { "locked": {
"lastModified": 1748634340, "lastModified": 1749195551,
"narHash": "sha256-pZH4bqbOd8S+si6UcfjHovWDiWKiIGRNRMpmRWaDIms=", "narHash": "sha256-W5GKQHgunda/OP9sbKENBZhMBDNu2QahoIPwnsF6CeM=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "daa628a725ab4948e0e2b795e8fb6f4c3e289a7a", "rev": "4602f7e1d3f197b3cb540d5accf5669121629628",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -443,11 +443,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1748830238, "lastModified": 1749483884,
"narHash": "sha256-EB+LzYHK0D5aqxZiYoPeoZoOzSAs8eqBDxm3R+6wMKU=", "narHash": "sha256-HdyfdVx0NbgrVtLY4lXdX9X/YE3PZjGZFnSyoAy1GJc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "c7fdb7e90bff1a51b79c1eed458fb39e6649a82a", "rev": "74d196c9943a67908d1883f61154e594d03863e5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -529,11 +529,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1748743761, "lastModified": 1749348095,
"narHash": "sha256-wodNEYzhBzsdfp5ggAsuJaTCLo3S9cwH7Svni1lgvwo=", "narHash": "sha256-4KaUocEPNoU6gpFE6WPLMvMK5tmvJyc0qf84Mp8Chlw=",
"owner": "fufexan", "owner": "fufexan",
"repo": "nix-gaming", "repo": "nix-gaming",
"rev": "0f75191a5c244a38192c7587da7c3f04d35c5938", "rev": "4221d80488883c40003f0704af78699a583f0c9f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -583,11 +583,11 @@
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1743296961, "lastModified": 1748740939,
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=", "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa", "rev": "656a64127e9d791a334452c6b6606d17539476e2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -598,11 +598,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1748421225, "lastModified": 1749173751,
"narHash": "sha256-XXILOc80tvlvEQgYpYFnze8MkQQmp3eQxFbTzb3m/R0=", "narHash": "sha256-ENY3y3v6S9ZmLDDLI3LUT8MXmfXg/fSt2eA4GCnMVCE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "78add7b7abb61689e34fc23070a8f55e1d26185b", "rev": "ed29f002b6d6e5e7e32590deb065c34a31dc3e91",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -614,11 +614,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1748693115, "lastModified": 1749285348,
"narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=", "narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc", "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -630,11 +630,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1748693115, "lastModified": 1749285348,
"narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=", "narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc", "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -884,11 +884,11 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1748887638, "lastModified": 1749481862,
"narHash": "sha256-AExfT8rMb6Ya37Gm3dimm+e4eeLGzya55JS6VWb3nfQ=", "narHash": "sha256-CXZL1Kt4rP1SAQhT4wCM207pcjkTeZMza9iIVFKV71c=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "3ca2c4478a1e984d2007c57467c6986bcdcb2629", "rev": "d73d8f6a4834716496bf8930a492b115cc3d7d17",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1152,11 +1152,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1748849057, "lastModified": 1748932406,
"narHash": "sha256-ih5wxfFGg+0FDTFcoNftV4WaKQwtSEgrCo6widpbazk=", "narHash": "sha256-KcZKPfLL7Bcjps60+JJEsiJLkOkes3wdR+bJxR27I3s=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "05b214e6cd8721b14db8cd93272fc81965212b6d", "rev": "71ffb0166eaa71df9149fe9a293cf75d238bbe30",
"revCount": 13, "revCount": 14,
"type": "git", "type": "git",
"url": "https://git.ryot.foo/toph/yay.nix.git" "url": "https://git.ryot.foo/toph/yay.nix.git"
}, },
@ -1172,11 +1172,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1748837535, "lastModified": 1748971473,
"narHash": "sha256-fn9n5rHrnV83v5y7DCS3uRWIdOab2hkAhfFTrjSg/gg=", "narHash": "sha256-0Xh6sZI86Ops6u7wyDQlVvV+MvRRXIDb1r3sMnLNk9M=",
"owner": "youwen5", "owner": "youwen5",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "9a3d6741f1324f47c27fb6aede05fbcbdefeadc9", "rev": "5cc269976ca876674d8ccc7f40debb61e05583ab",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -1,4 +1,26 @@
{ pkgs, ... }: { pkgs, ... }:
let
update-containers = pkgs.writeShellScriptBin "update-containers" ''
SUDO=""
if [[ $(id -u) -ne 0 ]]; then
SUDO="sudo"
fi
# Get all unique images from running and stopped containers
images=$($SUDO ${pkgs.docker}/bin/docker ps -a --format="{{.Image}}" | sort -u)
echo "Found images to update:"
echo "$images"
for image in $images
do
echo "Pulling $image..."
$SUDO ${pkgs.docker}/bin/docker pull $image
done
echo "Container image updates complete!"
'';
in
{ {
virtualisation = { virtualisation = {
docker = { docker = {
@ -10,5 +32,6 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
lazydocker # Simple TUI lazydocker # Simple TUI
update-containers
]; ];
} }

View file

@ -45,6 +45,10 @@ in
"noatime" "noatime"
"nofail" "nofail"
"sec=sys" "sec=sys"
"noac" # Disable attribute caching
"lookupcache=none" # Disable lookup caching
"intr" # Allow interruption
"hard" # Hard mount (retry on failure)
]; ];
}; };
}; };
@ -55,7 +59,7 @@ in
services.nfs.idmapd.settings = { services.nfs.idmapd.settings = {
General = { General = {
Domain = "local"; # Must match on server and client Domain = "ryot.local"; # Must match on server and client
Verbosity = 0; Verbosity = 0;
}; };
}; };

View file

@ -12,16 +12,5 @@
useDHCP = lib.mkDefault true; useDHCP = lib.mkDefault true;
useHostResolvConf = false; useHostResolvConf = false;
usePredictableInterfaceNames = true; usePredictableInterfaceNames = true;
hosts = {
"104.40.3.1" = [ "opn" ];
"104.40.3.3" = [ "pve" ];
"104.40.3.24" = [ "cloud" ];
"104.40.3.34" = [ "proxy" ];
"104.40.3.44" = [ "komodo" ];
"104.40.3.54" = [ "nix" ];
"104.40.4.1" = [ "opn" ];
"104.40.4.7" = [ "rune" ];
};
}; };
} }

View file

@ -5,7 +5,7 @@
exports = '' exports = ''
# Pool export - seen as root '/' by the client # Pool export - seen as root '/' by the client
/pool *(rw,insecure,no_subtree_check,no_root_squash,fsid=0,anonuid=1000,anongid=1004) /pool *(rw,insecure,no_subtree_check,no_root_squash,fsid=0,anonuid=1000,anongid=1004,async,no_wdelay)
''; '';
extraNfsdConfig = "vers=4,4.1,4.2"; extraNfsdConfig = "vers=4,4.1,4.2";
@ -15,7 +15,7 @@
# services.rpcbind.enable = true; # services.rpcbind.enable = true;
services.nfs.idmapd.settings = { services.nfs.idmapd.settings = {
General = { General = {
Domain = "local"; Domain = "ryot.local";
Verbosity = 0; Verbosity = 0;
}; };
}; };

View file

@ -28,6 +28,7 @@ in
"allow_other" "allow_other"
"minfreespace=50G" "minfreespace=50G"
"fsname=mergerfs" "fsname=mergerfs"
"func.getattr=newest"
"category.create=mfs" "category.create=mfs"
"nfsopenhack=all" "nfsopenhack=all"
"nonempty" "nonempty"

View file

@ -6,7 +6,7 @@
... ...
}: }:
let let
# Only available in the Komodo LXC # Only available in the Komo LXC
DockerStorage = "/mnt/DockerStorage/komodo/stacks/authentik"; DockerStorage = "/mnt/DockerStorage/komodo/stacks/authentik";
env = config.secretsSpec.docker.authentik; env = config.secretsSpec.docker.authentik;
in in
@ -94,7 +94,7 @@ in
]; ];
}; };
virtualisation.oci-containers.containers."authentik-server" = { virtualisation.oci-containers.containers."authentik-server" = {
image = "ghcr.io/goauthentik/server:2024.12.2"; image = "ghcr.io/goauthentik/server:2025.6.1";
environment = env; environment = env;
volumes = [ volumes = [
"${DockerStorage}/custom-templates:/templates:rw" "${DockerStorage}/custom-templates:/templates:rw"
@ -136,7 +136,7 @@ in
]; ];
}; };
virtualisation.oci-containers.containers."authentik-worker" = { virtualisation.oci-containers.containers."authentik-worker" = {
image = "ghcr.io/goauthentik/server:2024.12.2"; image = "ghcr.io/goauthentik/server:2025.6.1";
environment = env; environment = env;
volumes = [ volumes = [
"${DockerStorage}/certs:/certs:rw" "${DockerStorage}/certs:/certs:rw"

View file

@ -64,13 +64,6 @@
''; '';
}; };
"mail.ryot.foo" = {
useACMEHost = "ryot.foo";
extraConfig = ''
reverse_proxy localhost:9002
'';
};
"map.ryot.foo" = { "map.ryot.foo" = {
useACMEHost = "ryot.foo"; useACMEHost = "ryot.foo";
extraConfig = '' extraConfig = ''
@ -91,13 +84,6 @@
reverse_proxy localhost:3000 reverse_proxy localhost:3000
''; '';
}; };
"upsnap.ryot.foo" = {
useACMEHost = "ryot.foo";
extraConfig = ''
reverse_proxy localhost:8090
'';
};
}; };
}; };
} }

View file

@ -1,6 +1,6 @@
############################################################### ###############################################################
# #
# Komodo - LXC Container # Komo - LXC Container
# NixOS container, Ryzen 5 5600G (12 Cores), 30GB/2GB RAM/SWAP # NixOS container, Ryzen 5 5600G (12 Cores), 30GB/2GB RAM/SWAP
# #
# Docker Environment, Managed by with Komodo # Docker Environment, Managed by with Komodo
@ -16,11 +16,11 @@
let let
username = "toph"; username = "toph";
user = config.secretsSpec.users.${username}; user = config.secretsSpec.users.${username};
firewall = config.secretsSpec.firewall.komodo; firewall = config.secretsSpec.firewall.komo;
in in
{ {
imports = lib.flatten [ imports = lib.flatten [
## Komodo Only ## ## Komo Only ##
./config ./config
## Hardware ## ## Hardware ##
@ -38,7 +38,7 @@ in
## Host Specifications ## ## Host Specifications ##
hostSpec = { hostSpec = {
hostName = "komodo"; hostName = "komo";
username = username; username = username;
hashedPassword = user.hashedPassword; hashedPassword = user.hashedPassword;
email = user.email; email = user.email;

View file

@ -8,6 +8,58 @@
reverse_proxy localhost:14333 reverse_proxy localhost:14333
''; '';
}; };
## openWRT ##
"wrt.ryot.foo" = {
useACMEHost = "ryot.foo";
extraConfig = ''
reverse_proxy http://104.40.3.1 {
header_up Host {host}
header_up X-Real-IP {remote}
header_up X-Forwarded-For {remote}
header_up X-Forwarded-Proto {scheme}
header_up X-Forwarded-Port {server_port}
}
'';
};
## PROXMOX NODES ##
"ochre.ryot.foo" = {
useACMEHost = "ryot.foo";
extraConfig = ''
reverse_proxy https://104.40.3.2:8006 {
transport http {
tls_insecure_skip_verify
# optional: tls_server_name 104.40.3.2
}
# ensure Proxmox sees the right Host
header_up Host {host}
header_up X-Real-IP {remote}
header_up X-Forwarded-For {remote}
header_up X-Forwarded-Proto {scheme}
header_up X-Forwarded-Port {server_port}
}
'';
};
"pve.ryot.foo" = {
useACMEHost = "ryot.foo";
extraConfig = ''
reverse_proxy https://104.40.3.3:8006 {
transport http {
tls_insecure_skip_verify
# optional: tls_server_name 104.40.3.3
}
header_up Host {host}
header_up X-Real-IP {remote}
header_up X-Forwarded-For {remote}
header_up X-Forwarded-Proto {scheme}
header_up X-Forwarded-Port {server_port}
}
'';
};
}; };
}; };
} }

View file

@ -0,0 +1,65 @@
{
services.dnsmasq = {
enable = true;
settings = {
# Listen on eth0 for external clients and lo for local host
interface = [
"eth0"
"lo"
];
no-hosts = true;
no-resolv = true;
server = [
"104.40.3.1" # Query openWRT first for non-ryot.foo domains
"1.1.1.1" # Fallback public DNS
"1.0.0.1" # Fallback public DNS
"8.8.8.8" # Fallback public DNS
];
address = [
## CLOUD ##
"/drive.ryot.foo/104.40.3.24"
## PROXY ##
"/cloudflared.ryot.foo/104.40.3.34"
"/ochre.ryot.foo/104.40.3.34"
"/pve.ryot.foo/104.40.3.34"
"/wrt.ryot.foo/104.40.3.34"
## KOMO ##
"/auth.ryot.foo/104.40.3.44"
"/frp.ryot.foo/104.40.3.44"
"/git.ryot.foo/104.40.3.44"
"/grafana.ryot.foo/104.40.3.44"
"/home.ryot.foo/104.40.3.44"
"/influx.ryot.foo/104.40.3.44"
"/komodo.ryot.foo/104.40.3.44"
"/mail.ryot.foo/104.40.3.44"
"/map.ryot.foo/104.40.3.44"
"/outline.ryot.foo/104.40.3.44"
"/plane.ryot.foo/104.40.3.44"
## SOCK ##
"/upsnap.ryot.foo/104.40.3.54"
"/sock.ryot.foo/104.40.3.54"
];
cache-size = 1000;
# Log queries for debugging (optional)'
# log-queries = true;
};
};
networking = {
# Open DNS port in firewall
firewall = {
allowedTCPPorts = [ 53 ];
allowedUDPPorts = [ 53 ];
};
};
}

View file

@ -52,6 +52,7 @@ in
networking = { networking = {
enableIPv6 = false; enableIPv6 = false;
firewall.allowedTCPPorts = firewall.allowedTCPPorts; firewall.allowedTCPPorts = firewall.allowedTCPPorts;
firewall.allowedUDPPorts = firewall.allowedUDPPorts;
}; };
## System-wide packages ## ## System-wide packages ##
@ -67,5 +68,5 @@ in
}; };
# https://wiki.nixos.org/wiki/FAQ/When_do_I_update_stateVersion # https://wiki.nixos.org/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "24.11"; system.stateVersion = "25.05";
} }

View file

@ -0,0 +1,20 @@
{
services.caddy = {
enable = true;
virtualHosts = {
"upsnap.ryot.foo" = {
useACMEHost = "ryot.foo";
extraConfig = ''
reverse_proxy localhost:8090
'';
};
"sock.ryot.foo" = {
useACMEHost = "ryot.foo";
extraConfig = ''
reverse_proxy localhost:9120
'';
};
};
};
}

View file

@ -7,7 +7,7 @@
}: }:
let let
# Only available in the Sock LXC # Only available in the Sock LXC
DockerStorage = "/OchreStorage/komodo"; OchreStorage = "/OchreStorage/komodo";
env = config.secretsSpec.docker.komodo-sock; env = config.secretsSpec.docker.komodo-sock;
in in
{ {
@ -16,7 +16,7 @@ in
image = "ghcr.io/moghtech/komodo-core:latest"; image = "ghcr.io/moghtech/komodo-core:latest";
environment = env; environment = env;
volumes = [ volumes = [
"${DockerStorage}/cache:/repo-cache:rw" "${OchreStorage}/cache:/repo-cache:rw"
]; ];
ports = [ ports = [
"9120:9120/tcp" "9120:9120/tcp"
@ -62,8 +62,8 @@ in
image = "mongo"; image = "mongo";
environment = env; environment = env;
volumes = [ volumes = [
"${DockerStorage}/mongo/config:/data/configdb:rw" "${OchreStorage}/mongo/config:/data/configdb:rw"
"${DockerStorage}/mongo/data:/data/db:rw" "${OchreStorage}/mongo/data:/data/db:rw"
]; ];
cmd = [ cmd = [
"--quiet" "--quiet"
@ -111,9 +111,9 @@ in
volumes = [ volumes = [
"/proc:/proc:rw" "/proc:/proc:rw"
"/var/run/docker.sock:/var/run/docker.sock:rw" "/var/run/docker.sock:/var/run/docker.sock:rw"
"${DockerStorage}/repos:/etc/komodo/repos:rw" "${OchreStorage}/repos:/etc/komodo/repos:rw"
"${DockerStorage}/ssl:/etc/komodo/ssl:rw" "${OchreStorage}/ssl:/etc/komodo/ssl:rw"
"${DockerStorage}/stacks:${DockerStorage}/stacks:rw" "${OchreStorage}/stacks:${OchreStorage}/stacks:rw"
]; ];
ports = [ ports = [
"8120:8120/tcp" "8120:8120/tcp"

View file

@ -1,6 +1,7 @@
{ {
lib, lib,
config, config,
pkgs,
... ...
}: }:
let let
@ -15,7 +16,35 @@ in
]; ];
# Ochre has no access to PVE DockerStorage, so sock will have its own storage # Ochre has no access to PVE DockerStorage, so sock will have its own storage
systemd.user.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"d /OchreStorage 2775 ${username} ryot -" # Create directory with setgid bit and proper ownership
"d /OchreStorage 2775 1000 1004 -"
]; ];
# Use systemd service to ensure proper permissions with ACLs
systemd.services.ochre-storage-permissions = {
description = "Set proper permissions for OchreStorage";
wantedBy = [ "multi-user.target" ];
after = [ "local-fs.target" ];
path = with pkgs; [
acl
coreutils
];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
script = ''
# Ensure directory exists and has correct ownership/permissions
mkdir -p /OchreStorage
chown 1000:1004 /OchreStorage
chmod 2775 /OchreStorage
# Set default ACLs to ensure all new files/folders inherit 1000:1004
setfacl -d -m u:1000:rwx /OchreStorage
setfacl -d -m g:1004:rwx /OchreStorage
'';
};
environment.systemPackages = with pkgs; [ acl ];
} }

View file

@ -1,9 +1,11 @@
{ {
lib, lib,
stdenv,
rustPlatform, rustPlatform,
fetchFromGitHub, fetchFromGitHub,
versionCheckHook, versionCheckHook,
nix-update-script, nix-update-script,
icu,
}: }:
rustPlatform.buildRustPackage (finalAttrs: { rustPlatform.buildRustPackage (finalAttrs: {
pname = "microsoft-edit"; pname = "microsoft-edit";
@ -26,6 +28,22 @@ rustPlatform.buildRustPackage (finalAttrs: {
./write-filled-fix.patch ./write-filled-fix.patch
]; ];
buildInputs = [
icu
];
postFixup =
let
rpathAppend = lib.makeLibraryPath [ icu ];
in
lib.optionalString stdenv.hostPlatform.isElf ''
patchelf $out/bin/edit \
--add-rpath ${rpathAppend}
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
${stdenv.cc.targetPrefix}install_name_tool -add_rpath ${rpathAppend} $out/bin/edit
'';
# Disabled for now, microsoft/edit#194 # Disabled for now, microsoft/edit#194
doInstallCheck = false; doInstallCheck = false;
nativeInstallCheckInputs = [ versionCheckHook ]; nativeInstallCheckInputs = [ versionCheckHook ];
@ -47,5 +65,6 @@ rustPlatform.buildRustPackage (finalAttrs: {
changelog = "https://github.com/microsoft/edit/releases/tag/v${finalAttrs.version}"; changelog = "https://github.com/microsoft/edit/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit; license = lib.licenses.mit;
maintainers = with lib.maintainers; [ RossSmyth ]; # https://github.com/NixOS/nixpkgs/pull/409075 maintainers = with lib.maintainers; [ RossSmyth ]; # https://github.com/NixOS/nixpkgs/pull/409075
platforms = lib.platforms.all;
}; };
}) })

Binary file not shown.