]> Untitled Git - MarigoldOS/.git/blob - modules/charm.nix
4557bbdc2f3c46f7768f162811842a9a673c0479
[MarigoldOS/.git] / modules / charm.nix
1 { config, pkgs, lib, ... }:
2 let
3   cfg = config.services.charm;
4 in {
5   options.services.charm = {
6     enable = lib.mkEnableOption "Charm cloud server";
7   };
8   config = lib.mkIf cfg.enable {
9     systemd.services.charm = {
10       wantedBy = [ "multi-user.target" ];
11       after = [ "network.target" ];
12       description = "The Cloud";
13       serviceConfig = {
14         DynamicUser = true;
15         ExecStart = ''${pkgs.charm}/bin/charm serve'';
16         Restart = "always";
17         Type = "simple";
18         RestartSec = 1;
19         Environment = "CHARM_SERVER_DATA_DIR=/var/lib/charm";
20         StateDirectory = "charm";
21         WorkingDirectory = "/var/lib/charm";
22       };
23     };
24   };
25 }