Skip to content

Commit

Permalink
Merge pull request #695 from jmmaloney4/master
Browse files Browse the repository at this point in the history
add ipfs service
  • Loading branch information
domenkozar committed Jun 18, 2023
2 parents 1759eb2 + 1711db7 commit 8a5af0d
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 0 deletions.
1 change: 1 addition & 0 deletions modules/module-list.nix
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
./services/emacs.nix
./services/gitlab-runner.nix
./services/hercules-ci-agent
./services/ipfs.nix
./services/karabiner-elements
./services/khd
./services/kwm
Expand Down
70 changes: 70 additions & 0 deletions modules/services/ipfs.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{ config, lib, pkgs, ... }:

with lib;

let

cfg = config.services.ipfs;

in
{
meta.maintainers = [ "jmmaloney4" ];

options.services.ipfs = {
enable = mkOption {
type = types.bool;
default = false;
description = "Whether to enable the ipfs daemon.";
};

package = mkOption {
type = types.path;
default = pkgs.kubo;
# defaultText = "pkgs.kubo";
description = ''
The ipfs package to use.
'';
};

logFile = mkOption {
type = types.nullOr types.path;
default = null;
example = "/var/tmp/lorri.log";
description = ''
The logfile to use for the ipfs service. Alternatively
<command>sudo launchctl debug system/org.nixos.ipfs --stderr</command>
can be used to stream the logs to a shell after restarting the service with
<command>sudo launchctl kickstart -k system/org.nixos.ipfs</command>.
'';
};

ipfsPath = mkOption {
type = types.nullOr types.path;
default = null;
description = "Set the IPFS_PATH environment variable.";
};

enableGarbageCollection = mkOption {
type = types.bool;
default = false;
description = "Passes --enable-gc flag to ipfs daemon.";
};
};

config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.kubo ];
launchd.user.agents.ipfs = {
# command = with pkgs; "${ipfs}/bin/ipfs daemon";
serviceConfig = {
ProgramArguments = [ "${cfg.package}/bin/ipfs" "daemon" ]
++ optionals (cfg.enableGarbageCollection) [ "--enable-gc" ];
KeepAlive = true;
RunAtLoad = true;
ProcessType = "Background";
StandardOutPath = cfg.logFile;
StandardErrorPath = cfg.logFile;
EnvironmentVariables = {} // (optionalAttrs (cfg.ipfsPath != null) { IPFS_PATH = cfg.ipfsPath; });
};
};
};
}

0 comments on commit 8a5af0d

Please sign in to comment.