'';
installPhase = ''
- mkdir -p $out/bin
+ mkdir -p $out/bin $out/db
cp zig-out/bin/chirp $out/bin
'';
};
type = "app";
program = "${self.packages.${system}.default}/bin/chirp";
};
- });
+ })
+ // {
+ nixosModules.default = { config, lib, pkgs, ... }: {
+ options.services.chirp = {
+ enable = lib.mkEnableOption "Enable Chirp";
+
+ port = lib.mkOption {
+ type = lib.types.port;
+ default = 8080;
+ description = "Port to listen on";
+ };
+ };
+
+ config = lib.mkIf config.services.chirp.enable {
+ systemd.services.chirp = {
+ description = "Chirp SystemD Service";
+ wantedBy = ["multi-user.target"];
+ after = ["network.target"];
+ serviceConfig = {
+ ExecStart = "${self.packages.${pkgs.system}.default}/bin/chirp";
+ Restart = "always";
+ Type = "simple";
+ DynamicUser = "yes";
+ };
+ environment = {
+ PORT = toString config.services.chirp.port;
+ };
+ };
+ };
+ };
+ };
}