NixOS profiles for servers [maintainer=@numtide]
Go to file
Jörg Thalheim cdc612b37a
Merge pull request #315 from nix-community/nix-daemon
nix-daemon: set oomscoreadjust
2023-12-06 21:50:00 +01:00
.github build(deps): bump cachix/install-nix-action from 23 to 24 2023-12-05 12:27:44 +00:00
dev ci: fix for nix 2.19 2023-12-05 12:27:44 +00:00
docs treewide: update URLs, .github/settings.yml: update team (#284) 2023-11-04 10:17:06 +01:00
nixos Merge pull request #315 from nix-community/nix-daemon 2023-12-06 21:50:00 +01:00
.envrc introduce dev flake 2023-04-03 16:10:38 +02:00
.gitignore Add .direnv to .gitignore. 2023-11-30 14:34:40 +01:00
.mergify.yml ci: use mergify merge queue 2023-11-06 09:15:04 +01:00
default.nix introduce dev flake 2023-04-03 16:10:38 +02:00
flake.lock flake.lock: Update 2023-12-04 00:39:02 +00:00
flake.nix Fix tests. 2023-11-30 14:34:20 +01:00
LICENSE Create LICENSE 2023-01-16 23:39:46 +01:00
mkdocs.yml treewide: update URLs, .github/settings.yml: update team (#284) 2023-11-04 10:17:06 +01:00
README.md README: add Numtide section 2023-11-06 09:14:23 +01:00
shell.nix introduce dev flake 2023-04-03 16:10:38 +02:00

SrvOS - NixOS profiles for servers

STATUS: stable

SrvOS is a collection of opinionated and sharable NixOS configurations.

As we learn more about NixOS in various deployments, we end up re-writing the same modules and configs. This is a way for us to speed up and share our setups.

Instead of supporting everything, our goal is to target certain verticals and make the support super smooth there.

Quick Usage

Add srvos to your flake.nix to augment your NixOS configuration. For example to deploy a GitHub Action runner on Hetzner:

{
  description = "My machines flakes";
  inputs = {
    srvos.url = "github:nix-community/srvos";
    # Use the version of nixpkgs that has been tested to work with SrvOS
    # Alternativly we also support the latest nixos release and unstable
    nixpkgs.follows = "srvos/nixpkgs";
  };
  outputs = { self, nixpkgs, srvos }: {
    nixosConfigurations.myHost = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        # This machine is a server
        srvos.nixosModules.server
        # Deployed on the AMD Hetzner hardware
        srvos.nixosModules.hardware-hetzner-amd
        # Configured with extra terminfos
        srvos.nixosModules.mixins-terminfo
        # And designed to run the GitHub Actions runners
        srvos.nixosModules.roles-github-actions-runner
        # Finally add your configuration here
        ./myHost.nix
      ];
    };
  };
}

Documentation

The Documentation website shows more general usage, how to install SrvOS, etc...

To improve the documentation, take a look at the ./docs folder. You can also run nix run .#docs.serve to start a preview server on http://localhost:3000.

Contributing

Contributions are always welcome!

License

MIT


This project is supported by Numtide. Untitledpng

We are a team of independent freelancers that love open source.  We help our customers make their project lifecycles more efficient by:

  • Providing and supporting useful tools such as this one
  • Building and deploying infrastructure, and offering dedicated DevOps support
  • Building their in-house Nix skills, and integrating Nix with their workflows
  • Developing additional features and tools
  • Carrying out custom research and development.

Contact us if you have a project in mind, or if you need help with any of our supported tools, including this one. We'd love to hear from you.