mirror of
https://github.com/nix-community/srvos.git
synced 2024-08-17 09:50:33 +03:00
docs: add nix-darwin
This commit is contained in:
parent
3ec2350421
commit
6a1cd68c79
47
docs/darwin/getting_started.md
Normal file
47
docs/darwin/getting_started.md
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# Using SrvOS with nix-darwin
|
||||||
|
|
||||||
|
## Finding your way around
|
||||||
|
|
||||||
|
This project exports four big categories of NixOS modules which are useful to define a server configuration:
|
||||||
|
|
||||||
|
* Machine type - these are high-level settings that define the machine type (Eg: common, server or desktop). Only one of those would be included.
|
||||||
|
* Configuration mixins - these define addons to be added to the machine configuration. One or more can be added.
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
Combining all of those together, here is how your `flake.nix` might look like, to deploy a GitHub Actions runner on Hetzner:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{
|
||||||
|
description = "My machines flakes";
|
||||||
|
inputs = {
|
||||||
|
srvos.url = "github:nix-community/srvos/darwin-support";
|
||||||
|
# Use the version of nixpkgs that has been tested to work with SrvOS
|
||||||
|
# Alternatively we also support the latest nixos release and unstable
|
||||||
|
nixpkgs.follows = "srvos/nixpkgs";
|
||||||
|
nix-darwin.url = "github:LnL7/nix-darwin";
|
||||||
|
nix-darwin.inputs.nixpkgs.follows = "srvos/nixpkgs";
|
||||||
|
};
|
||||||
|
outputs = { srvos, nix-darwin, ... }: {
|
||||||
|
darwinConfigurations.myHost = nix-darwin.lib.darwinSystem {
|
||||||
|
modules = [
|
||||||
|
# This machine is a server (i.e. CI runner)
|
||||||
|
srvos.darwinModules.server
|
||||||
|
# If a machine is a workstation or laptop, use this instead
|
||||||
|
# srvos.darwinModules.desktop
|
||||||
|
|
||||||
|
# Configured with extra terminfos
|
||||||
|
srvos.darwinModules.mixins-terminfo
|
||||||
|
# Finally add your configuration here
|
||||||
|
./myHost.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Continue
|
||||||
|
|
||||||
|
Now that we have gone over the high-level details, you should have an idea of how to use this project.
|
||||||
|
|
||||||
|
To dig further, take a look at the [User guide](../user_guide.md).
|
@ -1,53 +1,9 @@
|
|||||||
# Getting Started with SrvOS
|
# Getting Started with SrvOS
|
||||||
|
|
||||||
This project is designed to work in combination with [NixOS](https://nixos.org).
|
This project is designed to work in combination with the Linux distribution [NixOS](https://nixos.org) or [nix-darwin](https://github.com/LnL7/nix-darwin) on macOS.
|
||||||
|
|
||||||
In this documentation, we expect the reader to be already familiar with the base operating system, and introduce how to compose it with our own extensions.
|
In this documentation, we expect the reader to be already familiar with the base operating system, and introduce how to compose it with our own extensions.
|
||||||
|
|
||||||
## Finding your way around
|
For NixOS continue reading [here](nixos/getting_started.md),
|
||||||
|
for nix-darwin/macOS read [this](darwin/getting_started.md).
|
||||||
|
|
||||||
This project exports four big categories of NixOS modules which are useful to define a server configuration:
|
|
||||||
|
|
||||||
* Machine type - these are high-level settings that define the machine type (Eg: common, server or desktop). Only one of those would be included.
|
|
||||||
* Machine hardware - these define hardware-related settings for well known hardware. Only one of those would be included. (eg: AWS EC2 instances).
|
|
||||||
* Machine role - theses take over a machine for a specific role. Only one of those would be included. (eg: GitHub Actions runner)
|
|
||||||
* Configuration mixins - these define addons to be added to the machine configuration. One or more can be added.
|
|
||||||
|
|
||||||
## Example
|
|
||||||
|
|
||||||
Combining all of those together, here is how your `flake.nix` might look like, to deploy a GitHub Actions runner on Hetzner:
|
|
||||||
|
|
||||||
```nix
|
|
||||||
{
|
|
||||||
description = "My machines flakes";
|
|
||||||
inputs = {
|
|
||||||
srvos.url = "github:nix-community/srvos";
|
|
||||||
# Use the version of nixpkgs that has been tested to work with SrvOS
|
|
||||||
# Alternatively 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
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Continue
|
|
||||||
|
|
||||||
Now that we have gone over the high-level details, you should have an idea of how to use this project.
|
|
||||||
|
|
||||||
To dig further, take a look at the [User guide](user_guide.md).
|
|
||||||
|
49
docs/nixos/getting_started.md
Normal file
49
docs/nixos/getting_started.md
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Using SrvOS on NixOS
|
||||||
|
|
||||||
|
## Finding your way around
|
||||||
|
|
||||||
|
This project exports four big categories of NixOS modules which are useful to define a server configuration:
|
||||||
|
|
||||||
|
* Machine type - these are high-level settings that define the machine type (Eg: common, server or desktop). Only one of those would be included.
|
||||||
|
* Machine hardware - these define hardware-related settings for well known hardware. Only one of those would be included. (eg: AWS EC2 instances).
|
||||||
|
* Machine role - theses take over a machine for a specific role. Only one of those would be included. (eg: GitHub Actions runner)
|
||||||
|
* Configuration mixins - these define addons to be added to the machine configuration. One or more can be added.
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
Combining all of those together, here is how your `flake.nix` might look like, to deploy a GitHub Actions runner on Hetzner:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{
|
||||||
|
description = "My machines flakes";
|
||||||
|
inputs = {
|
||||||
|
srvos.url = "github:nix-community/srvos";
|
||||||
|
# Use the version of nixpkgs that has been tested to work with SrvOS
|
||||||
|
# Alternatively 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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Continue
|
||||||
|
|
||||||
|
Now that we have gone over the high-level details, you should have an idea of how to use this project.
|
||||||
|
|
||||||
|
To dig further, take a look at the [User guide](../user_guide.md).
|
@ -14,7 +14,10 @@ edit_uri: edit/main/docs
|
|||||||
nav:
|
nav:
|
||||||
- Home: index.md
|
- Home: index.md
|
||||||
|
|
||||||
- Getting started: getting_started.md
|
- Getting started:
|
||||||
|
- Intro: getting_started.md
|
||||||
|
- NixOS: nixos/getting_started.md
|
||||||
|
- Darwin: darwin/getting_started.md
|
||||||
- User guide:
|
- User guide:
|
||||||
- Intro: user_guide.md
|
- Intro: user_guide.md
|
||||||
- NixOS modules:
|
- NixOS modules:
|
||||||
|
Loading…
Reference in New Issue
Block a user