grafana-alloy: don't build the frontend twice
[NixPkgs.git] / nixos / modules / services / web-apps / whitebophir.nix
blob332a8d9d4ec6526a733657c75d4e97b88a88e567
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
6   cfg = config.services.whitebophir;
7 in {
8   options = {
9     services.whitebophir = {
10       enable = mkEnableOption "whitebophir, an online collaborative whiteboard server (persistent state will be maintained under {file}`/var/lib/whitebophir`)";
12       package = mkPackageOption pkgs "whitebophir" { };
14       listenAddress = mkOption {
15         type = types.str;
16         default = "0.0.0.0";
17         description = "Address to listen on (use 0.0.0.0 to allow access from any address).";
18       };
20       port = mkOption {
21         type = types.port;
22         default = 5001;
23         description = "Port to bind to.";
24       };
25     };
26   };
28   config = mkIf cfg.enable {
29     systemd.services.whitebophir = {
30       description = "Whitebophir Service";
31       wantedBy    = [ "multi-user.target" ];
32       after       = [ "network.target" ];
33       environment = {
34         PORT            = toString cfg.port;
35         HOST            = toString cfg.listenAddress;
36         WBO_HISTORY_DIR = "/var/lib/whitebophir";
37       };
39       serviceConfig = {
40         DynamicUser    = true;
41         ExecStart      = "${cfg.package}/bin/whitebophir";
42         Restart        = "always";
43         StateDirectory = "whitebophir";
44       };
45     };
46   };