ipfsd-ctl
0.27.2

- Intro
- route
- route
- route
- route
- route
- route
- route
- route
- route
- route
- route
- DaemonController
- Instance
  - constructor
  - spawn
- version
- Node
- Instance
  - apiAddr
  - apiAddr
  - apiAddr
  - gatewayAddr
  - gatewayAddr
  - gatewayAddr
  - repoPath
  - started
  - env
  - init
  - init
  - cleanup
  - cleanup
  - start
  - start
  - stop
  - stop
  - killProcess
  - killProcess
  - pid
  - pid
  - getConfig
  - getConfig
  - setConfig
  - setConfig
  - version

# Intro

Installable via `npm install --save ipfsd-ctl`, it can also be used directly in the browser.

## Download

The source is available for download from GitHub. Alternatively, you can install using npm:

    $ npm install --save ipfsd-ctl

You can then `require()` ipfsd-ctl as normal:

    const ipfsdCtl = require('ipfsd-ctl')

## In the Browser

Ipfsd-ctl should work in any ES2015 environment out of the box.

Usage:

    <script type="text/javascript" src="index.js"></script>

The portable versions of ipfsd-ctl, including `index.js` and `index.min.js`, are included in the `/dist` folder. Ipfsd-ctl can also be found on unkpkg.com under

- https://unpkg.com/ipfsd-ctl/dist/index.min.js
- https://unpkg.com/ipfsd-ctl/dist/index.js

# route

Spawn an IPFS node The repo is created in a temporary location and cleaned up on process exit.

# route

Get the address of connected IPFS API.

# route

Get the address of connected IPFS HTTP Gateway.

# route

Initialize a repo.

# route

Delete the repo that was being used. If the node was marked as `disposable` this will be called automatically when the process is exited.

# route

Start the daemon.

# route

Stop the daemon.

# route

Kill the `ipfs daemon` process.

First `SIGTERM` is sent, after 7.5 seconds `SIGKILL` is sent if the process hasn't exited yet.

# route

Get the pid of the `ipfs daemon` process.

#### Returns

`number`

# route

Call `ipfs config`

If no `key` is passed, the whole config is returned as an object.

# route

Set a config value.

# DaemonController

Control go-ipfs nodes directly from JavaScript.

## instance

### constructor

    constructor(opts: Object): any

Create a DaemonController instance

#### Parameters

1. `opts: Object`:
   `type` string - one of 'go', 'js' or 'proc', the type of the daemon to spawn
   - `exec` string (optional) - the path of the daemon executable or IPFS class in the case of `proc`

#### Returns

`any`

### DaemonController.prototype.spawn

    spawn(opts: Object, callback: Function): undefined

Spawn an IPFS node, either js-ipfs or go-ipfs

Options are:

- `init` bool - should the node be initialized
- `start` bool - should the node be started
- `repoPath` string - the repository path to use for this node, ignored if node is disposable
- `disposable` bool - a new repo is created and initialized for each invocation
- `config` - ipfs configuration options
- `args` - array of cmd line arguments to be passed to ipfs daemon
- `exec` string (optional) - path to the desired IPFS executable to spawn, this will override the `exec` set when creating the daemon controller factory instance

#### Parameters

1. `opts: Object (={})`:
   various config options and ipfs config parameters
2. `callback: Function`:
   (err, [ `ipfs-api instance` , `Node (ctrl) instance` ] ) - a callback that receives an array with an `ipfs-instance` attached to the node and a `Node`

#### Returns

`undefined`

# version

Get the version of the currently used go-ipfs binary.

#### Parameters

1. `opts: Object (={})`:
2. `callback: function (Error, string)`:

#### Returns

`undefined`

# Node

Controll a go-ipfs or js-ipfs node.

#### Parameters

1. `opts: any`:

## instance

### Node.prototype.apiAddr

    apiAddr

Get the address of connected IPFS API.

#### Returns

`Multiaddr`

### Node.prototype.apiAddr

    apiAddr

Get the address of connected IPFS API.

#### Returns

`Multiaddr`

### Node.prototype.apiAddr

    apiAddr

Set the address of connected IPFS API.

#### Parameters

1. `addr: Multiaddr`:

#### Returns

`void`

### Node.prototype.gatewayAddr

    gatewayAddr

Get the address of connected IPFS HTTP Gateway.

#### Returns

`Multiaddr`

### Node.prototype.gatewayAddr

    gatewayAddr

Get the address of connected IPFS HTTP Gateway.

#### Returns

`Multiaddr`

### Node.prototype.gatewayAddr

    gatewayAddr

Set the address of connected IPFS Gateway.

#### Parameters

1. `addr: Multiaddr`:

#### Returns

`void`

### Node.prototype.repoPath

    repoPath

Get the current repo path

#### Returns

`string`

### Node.prototype.started

    started

Is the node started

#### Returns

`boolean`

### Node.prototype.env

    env

Is the environment

#### Returns

`object`

### Node.prototype.init

    init(initOpts: Object, callback: function (Error, Node)): undefined

Initialize a repo.

#### Parameters

1. `initOpts: Object (={})`:
2. `initOpts.keysize: number (=2048)`:
   The bit size of the identiy key.
3. `initOpts.directory: string (=IPFS_PATH)`:
   The location of the repo.
4. `callback: function (Error, Node)`:

#### Returns

`undefined`

### Node.prototype.init

    init(initOpts: Object, cb: function (Error, Node)): undefined

Initialize a repo.

#### Parameters

1. `initOpts: Object (={})`:
2. `initOpts.keysize: number (=2048)`:
   The bit size of the identiy key.
3. `initOpts.directory: string (=IPFS_PATH)`:
   The location of the repo.
4. `cb: function (Error, Node)`:

#### Returns

`undefined`

### Node.prototype.cleanup

    cleanup(callback: function (Error)): undefined

Delete the repo that was being used. If the node was marked as `disposable` this will be called automatically when the process is exited.

#### Parameters

1. `callback: function (Error)`:

#### Returns

`undefined`

### Node.prototype.cleanup

    cleanup(cb: function (Error)): undefined

Delete the repo that was being used. If the node was marked as `disposable` this will be called automatically when the process is exited.

#### Parameters

1. `cb: function (Error)`:

#### Returns

`undefined`

### Node.prototype.start

    start(flags: Array<string>, callback: function (Error, IpfsApi)): undefined

Start the daemon.

#### Parameters

1. `flags: Array<string> (=[])`:
   Flags to be passed to the `ipfs daemon` command.
2. `callback: function (Error, IpfsApi)`:

#### Returns

`undefined`

### Node.prototype.start

    start(flags: Array<string>, cb: function (Error, IpfsApi)): undefined

Start the daemon.

#### Parameters

1. `flags: Array<string> (=[])`:
   Flags to be passed to the `ipfs daemon` command.
2. `cb: function (Error, IpfsApi)`:

#### Returns

`undefined`

### Node.prototype.stop

    stop(callback: function (Error)?): undefined

Stop the daemon.

#### Parameters

1. `callback: function (Error)?`:

#### Returns

`undefined`

### Node.prototype.stop

    stop(cb: function (Error)?): undefined

Stop the daemon.

#### Parameters

1. `cb: function (Error)?`:

#### Returns

`undefined`

### Node.prototype.killProcess

    killProcess(callback: function ()): undefined

Kill the `ipfs daemon` process.

First `SIGTERM` is sent, after 10.5 seconds `SIGKILL` is sent if the process hasn't exited yet.

#### Parameters

1. `callback: function ()`:
   Called when the process was killed.

#### Returns

`undefined`

### Node.prototype.killProcess

    killProcess(cb: function ()?): undefined

Kill the `ipfs daemon` process.

First `SIGTERM` is sent, after 7.5 seconds `SIGKILL` is sent if the process hasn't exited yet.

#### Parameters

1. `cb: function ()?`:
   Called when the process was killed.

#### Returns

`undefined`

### Node.prototype.pid

    pid(): number

Get the pid of the `ipfs daemon` process.

#### Returns

`number`

### Node.prototype.pid

    pid(cb: Function): number

Get the pid of the `ipfs daemon` process.

#### Parameters

1. `cb: Function`:

#### Returns

`number`

### Node.prototype.getConfig

    getConfig(key: string?, callback: function (Error, (Object | string))): undefined

Call `ipfs config`

If no `key` is passed, the whole config is returned as an object.

#### Parameters

1. `key: string?`:
   A specific config to retrieve.
2. `callback: function (Error, (Object | string))`:

#### Returns

`undefined`

### Node.prototype.getConfig

    getConfig(key: string?, cb: function (Error, (Object | string))): undefined

Call `ipfs config`

If no `key` is passed, the whole config is returned as an object.

#### Parameters

1. `key: string?`:
   A specific config to retrieve.
2. `cb: function (Error, (Object | string))`:

#### Returns

`undefined`

### Node.prototype.setConfig

    setConfig(key: string, value: string, callback: function (Error)): undefined

Set a config value.

#### Parameters

1. `key: string`:
2. `value: string`:
3. `callback: function (Error)`:

#### Returns

`undefined`

### Node.prototype.setConfig

    setConfig(key: string, value: string, cb: function (Error)): undefined

Set a config value.

#### Parameters

1. `key: string`:
2. `value: string`:
3. `cb: function (Error)`:

#### Returns

`undefined`

### Node.prototype.version

    version(callback: function (Error, string)): undefined

Get the version of ipfs

#### Parameters

1. `callback: function (Error, string)`:

#### Returns

`undefined`