a service to construct webrings and patch holes if a member goes down
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| flake.lock | ||
| flake.nix | ||
| module.nix | ||
| ouroboros.toml | ||
| README.md | ||
| rustfmt.toml | ||
ouroboros
a service to construct webrings and patch holes if a member goes down
NixOS Module
This flake provides a NixOS module for running ouroboros as a systemd service.
Configuration
Add the flake to your inputs and import the module:
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
ouroboros.url = "git+https://git.heroin.trade/marie/ouroboros";
};
outputs = { self, nixpkgs, ouroboros }: {
nixosConfigurations.yourhost = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
{ nixpkgs.overlays = [ ouroboros.overlays.default ]; }
ouroboros.nixosModules.default
{
services.ouroboros = {
enable = true;
address = "0.0.0.0";
port = 8080;
maxTimeout = 5000;
checkPeriod = 300;
websites = [
{ name = "site1"; url = "https://example.com"; }
{ name = "site2"; url = "https://example.org"; }
];
};
}
];
};
};
}
Options
services.ouroboros.enable- Enable the ouroboros serviceservices.ouroboros.package- Package to use (defaults topkgs.ouroboros)services.ouroboros.address- Bind address (default:127.0.0.1)services.ouroboros.port- Bind port (default:8080)services.ouroboros.maxTimeout- Request timeout in milliseconds (default:5000)services.ouroboros.checkPeriod- Health check interval in seconds (default:300)services.ouroboros.websites- List of websites in the webringname- Identifier for URL pathurl- Target URL for redirection
Service Endpoints
/next?site=<name>- Redirect to next available site in ring/prev?site=<name>- Redirect to previous available site in ring
The service runs as a dynamic user with systemd hardening enabled.