Developers
Spare your laptop and run many resource-intensive, long builds concurrently on nixbuild.net instead. Configuring Nix to use nixbuild.net is trivial, and no other software is needed on your computer.
Spare your laptop and run many resource-intensive, long builds concurrently on nixbuild.net instead. Configuring Nix to use nixbuild.net is trivial, and no other software is needed on your computer.
Optimize your resource usage by running all developer and CI builds through the same nixbuild.net account. Benefit from automatically shared and re-used build artifacts without having to configure any binary caches. Set up light-weight and lightning-fast CI with our GitHub actions.
Getting started with nixbuild.net is simple. It works just like any other remote Nix builder, and you set it up in exactly the same way.
This also means that nixbuild.net can be used anywhere you use Nix. You can use it on single machines or on CI servers, no matter how you use Nix.
Builders are allocated on demand, so you don't have to worry about slowdown even when running large numbers of concurrent builds.
An innovative feature of nixbuild.net is automatic resource allocation. By looking at historic usage, each build is assigned CPUs and memory that give you the best balance between price and performance.
Get rid of your inefficiently utilized build servers and pay only for the build time you use, while having infinite scalability readily available.
The cheapest build is the one that you don't even have to run. We try hard to avoid building by re-using results or fetching from binary caches, whenever it is safe to do so.
Each build runs inside an isolated, virtualized sandbox without network access. The filesystem of the sandbox contains nothing but the input to the build. Build results are only shared and re-used when it is safe to do so.
Sign up and start building today. Each new account includes 25 CPU hours of build time for free so you can try out the service on your own terms, without committing to anything. No credit card is needed for registration.
nixbuild.net costs 0.12 EUR (excl. VAT) per CPU hour. You're billed monthly for the CPU hours your builds have consumed. If you don't use the service, no further costs will be incurred.
The exact details around how the CPU time of a build is calculated and how billing is handled is defined here
The pricing is introductory, and will likely be followed by other pricing models (volume rebates, subscription plans etc) in the future. The hourly rate may change during billing periods.
What happens after I've filled out the registration form?
Shortly after you've submitted the form you'll receive an email with an activation link. As soon as you've activated your account, you can start running Nix builds. Since every account includes 25 free CPU hours, no cost is incurred until the free build time has been consumed. When that happens, you'll get a second mail asking you for billing details. This means that there will be no surprise expenses by signing up for nixbuild.net and trying it out.
Once your account is activated, you should read through the Getting Started guide to setup your system for using nixbuild.net.
How do I administer my nixbuild.net account?
You administer your account through the nixbuild.net shell. This is a simple text-based shell accessible directly over ssh, no installation needed. Through the shell you can add/remove ssh keys, list details about your builds, see how many build hours you have consumed and manage billing.
How are payments handled?
After your account has been activated you can enable billing at any time you like. Once you have enabled billing, and only then, will you be able to use the service beyond the initial free build hours.
You enable billing through the nixbuild.net shell. When doing this, you will be directed to a web page hosted by Stripe, where you'll enter your billing address and credit card details.
After this, Stripe will charge your credit card monthly for any (non-free) build hours consumed.
The exact details around cost calculation and billing are defined here
What does a typical build cost?
Since builds and their resource requirements vary wildly, it is difficult to give a general answer. However, if you make a low-level change in nixpkgs (changing the stdenv) and then build the Linux kernel, you will trigger the build of about 130 packages (the kernel plus all of its dependencies). Building those 130 packages on nixbuild.net consumes around 30 CPU hours, yielding a total cost of around € 3.60, or an average cost of € 0.028 per build.
Can multiple users share the same nixbuild.net account?
Yes. You're free to add as many public ssh keys as you like to your account. This means multiple users (including "virtual" users like CI runners etc) can use the service. Furthermore, if a user tries to build a Nix derivation that already has been built by any user of the same nixbuild.net account, the build result will simply reuse that build result. This is ideal for development teams.
Where is nixbuild.net hosted?
nixbuild.net is served from Germany. As the userbase grows, there will be more endpoints in other regions, to optimise latencies and bandwidth for everyone.
For how long are build results kept in nixbuild.net?
If you build something that you or some other user built recently, you can expect the build result to be reused without having to rebuild. This is also true for build dependencies that have been uploaded or fetched. Today, there is no formally defined limit for how long build results are kept. Instead, nixbuild.net tries to optimise the overall build performance for its users.
There are plans on offering additional pricing models where the user can decide for itself how much storage to use in nixbuild.net to hang on to previous build results. This would make it possible to use nixbuild.net both as a remote builder and as a binary cache, if desired.
How are builds secured?
nixbuild.net uses KVM-based virtualization to isolate builds from each other. A build sandbox has been developed specifically for nixbuild.net. This sandbox makes sure that a build has no network access and no physical disk access. A virtualized file system makes sure that the build only has access to its specific dependencies.
The sandbox also guarantees that each build is pure and repeatable. This means that a build that runs on nixbuild.net cannot produce output influenced by sources not explicitly defined in its dependencies (inputs).
Build dependencies and results are only shared with other users of the same account, or with accounts that explicitly have been marked as trusted. No other accounts can access the dependencies or results of a build.
Read more about privacy here.
What CPU limits are imposed on my builds?
In general, a build submitted to nixbuild.net cannot control its CPU allocation. Instead, nixbuild.net will automatically allocate 1–16 virtualized CPUs for it. The upper CPU limit might change in the future. Each vCPU is mapped to a dedicated hyperthread, no CPU threads are shared between builds.
How much memory can a build use?
There is no formally defined memory limit for builds. If a build should run out of memory it will be restarted with more memory, without any interaction needed from the end user. The reasoning behind this behavior is that builds are usually compute-bound, not memory-bound. However, the memory usage of each build is monitored, and if repeated excessive memory usage is noticed, the responsible account owner will be contacted.
Also note that all intermediate artifacts produced by a build, along with the final build result, count towards the build's total memory usage. This is because each build on nixbuild.net runs in-memory only, with nothing written to disk. This gives your builds both increased performance and security.
Can I use nixbuild.net together with my own private binary cache?
Yes. A build performed on nixbuild.net behaves just like any other Nix build. This means that you can upload the resulting artifacts to your own cache or to any third-party cache service just as usual.
nixbuild.net also supports uploading build artifacts directly to external caches, which lets you avoid having to perform the cache upload as an extra step after the build is done.
What platforms are supported by nixbuild.net?
x86_64-linux, i686-linux, aarch64-linux and armv7l-linux.
Can I run builds using KVM virtualization on nixbuild.net?
Yes, KVM builds are available in Early Access phase.
Does nixbuild.net work together with Hydra?
Yes. Since nixbuild.net behaves exactly as an ordinary remote Nix builder, it works with any setup using Nix. You can add nixbuild.net as a worker to Hydra and configure it to accept a large number of concurrent jobs, since nixbuild.net automatically scales up.
Does nixbuild.net work together with GitHub Actions?
Yes. There is the officially supported nixbuild-action, making your Nix builds in GitHub Actions super-powered by nixbuild.net, with minimal configuration needed.
Does nixbuild.net provide an API?
Yes, check out the documentation here.