Skip to content

Prerequisites & Installation

Everything you need to prepare your development environment and target servers for epd.


Local System Requirements

epd runs on your local development machine or inside a CI runner (such as GitHub Actions).

  • Operating System: macOS, Linux, or Windows (via WSL2).
  • Runtime:
    • Bun v1.1.0 or higher (recommended), OR
    • Node.js v18.0.0 or higher.
  • Tools:
    • OpenSSH client (ssh).
    • Docker Desktop or Docker Engine (required if using mode: docker).
    • rsync (required if using mode: process).

Server Requirements

epd communicates over standard SSH. No custom agent daemons or background control planes need to run on the server.

  • Operating System: Any 64-bit Linux distribution:
    • Ubuntu 20.04 / 22.04 / 24.04 LTS (recommended)
    • Debian 11 / 12
    • Fedora 39+ / AlmaLinux / Rocky Linux
    • Arch Linux / Alpine Linux
  • SSH Access:
    • Open SSH port (default: 22).
    • User with root privileges or passwordless sudo.
    • SSH public key authentication configured.
  • Firewall & Ports:
    • Port 80 (HTTP): Required for Let's Encrypt HTTP-01 challenge and HTTP traffic redirection.
    • Port 443 (HTTPS): Required for encrypted TLS/SSL traffic.
    • Port 22 (SSH): Required for deployment and server management.

Automatic Server Provisioning

epd setup automatically installs Docker, Traefik, curl, and necessary host utilities. You only need a clean server with SSH access!


Installing EPD

bash
bun install -g @fabioplunser/epd

Option 2: NPM / PNPM / Yarn

bash
npm install -g @fabioplunser/epd
bash
pnpm add -g @fabioplunser/epd
bash
yarn global add @fabioplunser/epd

Option 3: Standalone Linux Binary (No Node/Bun Required)

If you are running in CI or want a single standalone binary:

bash
curl -fsSL https://github.com/FabioPlunser/epd/releases/latest/download/epd-linux-x64 -o /usr/local/bin/epd
chmod +x /usr/local/bin/epd

Option 4: Run via npx / bunx Without Installation

bash
npx @fabioplunser/epd deploy
# or
bunx @fabioplunser/epd deploy

Configuring SSH Access

epd connects to servers using your system's SSH configuration.

1. Test Direct Connection

Before running epd setup, verify you can connect without entering a password:

bash
ssh root@203.0.113.10

2. Copy SSH Key to Server

If you need to copy your local SSH key to the remote server:

bash
ssh-copy-id root@203.0.113.10

3. Custom SSH Keys & Ports

If your server uses a non-standard port or specific key, specify them in epd.yml:

yaml
ssh:
  user: ubuntu
  port: 2222
  key: ~/.ssh/id_ed25519
  proxy_jump: bastion.example.com

Next Step

Once prerequisites are in place, proceed to the Getting Started Guide or explore the Architecture & Flow.

Released under the MIT License.