<p>Yesterday, I wrote about <a href="/daily/2024/11/25/nix-the-package-manager">Nix the package manager</a>.</p>
<p>To use it, you need to write code in the Nix language in .nix files.</p>
<p>To see an example, you can see <a href="https://github.com/opdavies/dotfiles/tree/main/nix">my dotfiles on GitHub</a> as well as lots of other people's that they've published.</p>
<p>It's a functional language so some of the concepts were new to me, but I picked it up fairly quickly and learned some of the paradigms and conventions.</p>
<p>This is the code that installs Nginx on my server:</p>
<pre><code class="nix">services.nginx = {
enable = true;
serverNamesHashBucketSize = 256;
};
</code></pre>
<p>These are some of the packages I have installed on my laptop:</p>
<pre><code class="nix">environment.systemPackages = with pkgs: {
devenv
dog
git
go
jq
php
phpPackages.composer
pv
tldr
}
</code></pre>
<p>And this is how to configure processes <a href="/daily/2024/11/11/could-nix-and-devenv-replace-docker-compose">in a devenv configuration</a>, which is built with Nix:</p>
<p>Once you have written the configuration, you can run it and install what you've specified, and it will do it the same way every time.</p>
<p>For a crash course in the Nix language, take a look at <a href="https://zero-to-nix.com/concepts/nix-language">https://zero-to-nix.com/concepts/nix-language</a> or one of the many open-sourced configurations on GitHub.</p>
<p>To use it, you need to write code in the Nix language in .nix files.</p>
<p>To see an example, you can see <a href="https://github.com/opdavies/dotfiles/tree/main/nix">my dotfiles on GitHub</a> as well as lots of other people's that they've published.</p>
<p>It's a functional language so some of the concepts were new to me, but I picked it up fairly quickly and learned some of the paradigms and conventions.</p>
<p>This is the code that installs Nginx on my server:</p>
<pre><code class="nix">services.nginx = {
enable = true;
serverNamesHashBucketSize = 256;
};
</code></pre>
<p>These are some of the packages I have installed on my laptop:</p>
<pre><code class="nix">environment.systemPackages = with pkgs: {
<p>And this is how to configure processes <a href="/daily/2024/11/11/could-nix-and-devenv-replace-docker-compose">in a devenv configuration</a>, which is built with Nix:</p>
<p>Once you have written the configuration, you can run it and install what you've specified, and it will do it the same way every time.</p>
<p>For a crash course in the Nix language, take a look at <a href="https://zero-to-nix.com/concepts/nix-language">https://zero-to-nix.com/concepts/nix-language</a> or one of the many open-sourced configurations on GitHub.</p>