mirror of
https://github.com/versia-pub/server.git
synced 2025-12-06 00:18:19 +01:00
2 KiB
2 KiB
Nix Module
This project is packaged as a Nix Flake, 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:
inputs = {
# ...
versia-server = {
url = "github:versia-pub/server";
inputs.nixpkgs.follows = "nixpkgs";
};
};
Then, add this to your nixosConfigurations:
nixosConfigurations = {
# ...
my-server = {
system = "x86_64-linux"; # arm64-linux is also supported
modules = [
# ...
{
nixpkgs.overlays = [versia-server.overlays.default];
}
versia-server.nixosModules.versia-server
];
};
};
You are now ready to use the NixOS module.
Usage
This module exposes the following configuration option:
services.versia-server = {
enable = true;
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.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 (apiandworker).config: Contents of the config file, which is serialized to TOML. Check the Versia Server documentation for information on its contents.