Skip to main content

/docs/self-host-directory

Self-host an IICP directory

IICP has two official directory implementations. PHP runs the current Genesis Seed. Rust v0.1.15 is a pre-1.0 operator preview for local and disposable evaluation. Publishing the Rust source does not move production traffic or make public federation available.

Use the Rust preview to inspect and test a directory you control. Do not present it as an official public replica or a production replacement for iicp.network.
  1. Clone the public Rust directory repository.
  2. Run its tests.
  3. Start it in local in-memory mode.
  4. Use MySQL only after reading its backup and recovery guide.

Evaluate the Rust preview

git clone https://github.com/RobLe3/iicp-directory-rust.git
cd iicp-directory-rust
git checkout v0.1.15

cargo test --locked
cargo run --locked

With no DATABASE_URL, the service uses non-durable in-memory storage and listens on port 8090. This is the safest first evaluation path.

Use durable storage

export DATABASE_URL="mysql://iicp_user:[email protected]/iicp_directory"
export APP_ENV=local
cargo run --locked

Create a dedicated database and credentials. Keep signing keys, backups and environment files outside the repository and outside web-accessible directories. Follow the repository's operations guide before testing migrations or recovery.

Implementation boundary

  • The public protocol and conformance contracts are authoritative.
  • PHP v1.10.93 remains the current Genesis implementation release; the live iicp.network deployment is tracked separately.
  • Rust v0.1.15 is not production support or a cutover decision.
  • Independent public replicas and partition recovery remain later milestones.