mirror of
https://github.com/versia-pub/server.git
synced 2025-12-06 08:28:19 +01:00
docs: 📝 Document Nix installation
This commit is contained in:
parent
2d921438a9
commit
c26e896afe
|
|
@ -36,7 +36,16 @@ export default defineConfig({
|
|||
sidebar: [
|
||||
{
|
||||
text: "Installation",
|
||||
link: "/setup/installation",
|
||||
items: [
|
||||
{
|
||||
text: "Normal",
|
||||
link: "/setup/installation",
|
||||
},
|
||||
{
|
||||
text: "Nix",
|
||||
link: "/setup/nix",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "CLI",
|
||||
|
|
|
|||
86
docs/setup/nix.md
Normal file
86
docs/setup/nix.md
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
# Nix Module
|
||||
|
||||
This project is packaged as a [Nix Flake](https://nixos.wiki/wiki/Flakes), which can be used to build and run the project in a reproducible environment.
|
||||
|
||||
## Installation
|
||||
|
||||
### Flake-based NixOS installs
|
||||
|
||||
Add the following to your `inputs` in your `flake.nix`:
|
||||
|
||||
```nix
|
||||
inputs = {
|
||||
# ...
|
||||
versia-server = {
|
||||
url = "github:versia-pub/server";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
```
|
||||
|
||||
Then, add this to your `nixosConfigurations`:
|
||||
|
||||
```nix
|
||||
nixosConfigurations = {
|
||||
# ...
|
||||
my-server = {
|
||||
system = "x86_64-linux"; # arm64-linux is also supported
|
||||
modules = [
|
||||
# ...
|
||||
versia-server.nixosModules.default
|
||||
];
|
||||
};
|
||||
};
|
||||
```
|
||||
|
||||
You are now ready to use the NixOS module.
|
||||
|
||||
## Usage
|
||||
|
||||
This module exposes the following configuration option:
|
||||
|
||||
```nix
|
||||
services.versia-server = {
|
||||
enable = true;
|
||||
dataDir = "/var/lib/versia-server";
|
||||
|
||||
user = "versia-server";
|
||||
group = "versia-server";
|
||||
|
||||
nodes = {
|
||||
api = {
|
||||
main = {};
|
||||
backup = {
|
||||
configOverrides.http.port = 2734;
|
||||
};
|
||||
};
|
||||
worker = {
|
||||
one = {};
|
||||
two = {};
|
||||
three = {
|
||||
configOverrides.postgres.port = 5433;
|
||||
};
|
||||
}:
|
||||
};
|
||||
|
||||
config = {
|
||||
# ...
|
||||
http = {
|
||||
# ...
|
||||
bind = "0.0.0.0";
|
||||
port = 8080;
|
||||
base_url = "https://versia.example";
|
||||
};
|
||||
# ...
|
||||
};
|
||||
};
|
||||
```
|
||||
|
||||
### Configuration Options
|
||||
|
||||
- `enable`: Whether to enable the service. Default: `true`.
|
||||
- `dataDir`: The directory where the data will be stored. Default: `/var/lib/versia-server`.
|
||||
- `user`: The user under which the service will run. Default: `versia-server`.
|
||||
- `group`: The group under which the service will run. Default: `versia-server`.
|
||||
- `nodes`: A set of nodes to run. Each node can have its own configuration overrides, which will be merged with the default configuration. You must have at least one of each type (`api` and `worker`).
|
||||
- `config`: Contents of the config file, which is serialized to TOML. Check the Versia Server documentation for information on its contents.
|
||||
|
|
@ -57,8 +57,9 @@
|
|||
};
|
||||
})
|
||||
// {
|
||||
nixosModules = {
|
||||
nixosModules = rec {
|
||||
versia-server = import ./nix/module.nix;
|
||||
default = versia-server;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ in {
|
|||
freeformType = configFormat.type;
|
||||
options = {};
|
||||
};
|
||||
description = "Contents of the config file. Check the Versia Server documentation for information on its contents.";
|
||||
description = "Contents of the config file, which is serialized to TOML. Check the Versia Server documentation for information on its contents.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue