Skip to content

Quick start

Installing emissary-cli

Install Rust

bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Build emissary-cli from source

bash
git clone https://github.com/altonen/emissary
cd emissary
cargo build --release

Install emissary-cli from crates.io

bash
cargo install --locked emissary-cli

Building emissary-cli for Headless Mode

The router UI can be disabled entirely during compliation, meaning emissary-cli will run in headless mode:

bash
cargo install --locked --no-default-features emissary-cli

Running emissary-cli

Start the emissary-cli binary:

bash
emissary-cli

On the first boot, the router performs the following tasks:

  • creates a directory for itself under $HOME/.emissary
  • generates router and transport keys
  • creates a default configuration for the router
  • reseeds the router over HTTPS
  • downloads hosts.txt from http://i2p-projekt.i2p/hosts.txt

For more information on how to configure the router, see router configuration.

Default listening ports:

ServicePort
SAMv3 TCP7656
SAMv3 UDP7655
I2CP7654
HTTP4444

Graceful shutdown

emissary-cli supports graceful shutdown. When it receives a SIGINT, it starts a graceful shutdown process that lasts about 10 minutes until all transit tunnels have expired. If there are no transit tunnels the router shuts down immediately.

While not recommended, if you wish to skip graceful shutdown, send a second SIGINT which forcefully shuts down the router.