I run my own SearXNG instance too. I set it up to a Hetzner box, then blocked all ports from the firewall except on the Tailscale network. This means the machine which wants to use the search needs to be connected first to the same Tailscale network. It allows me to prevent being blocked by the search providers for too much traffic and is been working great. I just open http://SearXNG from my browser and start searching.
When I worked for Prisma, you can check our rust setup from the public flake:
https://github.com/prisma/prisma-engines/blob/main/flake.nix
CD to the project and nix-direnv loads the flake. Get to work.
Now when I’m working in Grafbase, our flake is a bit different:
https://github.com/grafbase/grafbase/blob/main/flake.nix
Instead of the Rust overlay, we use rustup and rust-toolchain.toml. This makes it easier to enforce the same Rust version for nix and non-nix users.
Both ways work really well. The deal is to define the rust env per project instead of defining it globally. Use direnv to make it working seamlessly.